| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- // +----------------------------------------------------------------------
- // | Description: 系统基础公共
- // +----------------------------------------------------------------------
- // | Author: Michael_xu | gengxiaoxu@5kcrm.com
- // +----------------------------------------------------------------------
-
- namespace app\admin\model;
-
- use app\admin\controller\ApiCommon;
- use app\admin\model\Common;
- use think\Db;
-
- class Admin extends Common
- {
- /**
- * 统计筛选条件
- * @param $merge 1 user,structure 合并查询,0 user_id 优先级高 $is_last 昨天、上周、、、
- * @param $perUserIds 权限范围
- * @return
- * @author Michael_xu
- */
- public function getWhere($param, $merge = '', $perUserIds = [], $filter = true, $is_last = false)
- {
- $apiCommon = new ApiCommon();
- $userModel = new \app\admin\model\User();
- $user_id = $apiCommon->userInfo['id'];
- $structure_id = $apiCommon->userInfo['structure_id'];
- //员工IDS
- $user_ids = [];
- if ($param['user_id']) {
- $user_ids = array($param['user_id']);
- }
- if ($param['structure_id']) {
- $userModel->getSubUserByStr($param['structure_id'], 2);
- }
- if ($param['dataType']) {
- switch ($param['dataType']) {
- case 1 : $user_ids = [$user_id];
- break;
- case 2 : $user_ids = getSubUserId(true, 0, $apiCommon->userInfo['id']);
- break;
- case 3 : $user_ids = $userModel->getSubUserByStr($structure_id, 1);
- break;
- case 4 : $user_ids = $userModel->getSubUserByStr($structure_id, 2);
- break;
- default : $user_ids = [$user_id];
- break;
- }
- } else {
- if ($merge == 1) {
- if ($param['structure_id']) {
- $str_user_ids = $userModel->getSubUserByStr($param['structure_id'], 2);
- }
- //合并
- if ($user_ids && $str_user_ids) {
- $user_ids = array_unique(array_merge($user_ids, $str_user_ids));
- } elseif ($str_user_ids) {
- $user_ids = $str_user_ids;
- }
- } else {
- if (!$user_ids) {
- if ($param['structure_id']) {
- $user_ids = $userModel->getSubUserByStr($param['structure_id'], 2);
- }
- }
- }
- }
- if (!$user_ids) $user_ids = getSubUserId(true,0, $apiCommon->userInfo['id']);
- $perUserIds = $perUserIds ? : getSubUserId(); //权限范围内userIds
- $userIds = [];
- if ($user_ids) {
- $userIds = $perUserIds ? array_intersect($user_ids, $perUserIds) : $perUserIds; //数组交集
- }
- $where['userIds'] = array_map('intval', $userIds);
- if ($param['type']) {
- $between_time = getTimeByType($param['type'], $is_last);
- } else {
- //自定义时间
- if ($param['start_time']) {
- $between_time = array(strtotime($param['start_time']), strtotime($param['end_time']));
- }
- //自定义时间
- if ($param['startTime']) {
- $between_time = array(strtotime($param['startTime']), strtotime($param['endTime']));
- }
- }
- $where['between_time'] = $between_time;
- return $where ?: [];
- }
- }
|