getUserByPer('crm', 'contacts', 'index'); $authMapData['auth_user_ids'] = $authUserIds; $authMapData['user_id'] = $userId; return $this->getSearchAuthWhere($authMapData); } /** * 商机tab列表查询条件(权限) * * @param $userId 当前登录ID * @author fanqi * @date 2021-03-09 * @return \Closure */ public function getBusinessSearchWhere($userId) { $userModel = new \app\admin\model\User(); $authUserIds = $userModel->getUserByPer('crm', 'business', 'index'); $authMapData['auth_user_ids'] = $authUserIds; $authMapData['user_id'] = $userId; return $this->getSearchAuthWhere($authMapData); } /** * 合同tab列表查询条件(权限) * * @param $userId 当前登录ID * @author fanqi * @date 2021-03-09 * @return \Closure */ public function getContractSearchWhere($userId) { $userModel = new \app\admin\model\User(); $authUserIds = $userModel->getUserByPer('crm', 'contract', 'index'); $authMapData['auth_user_ids'] = $authUserIds; $authMapData['user_id'] = $userId; return $this->getSearchAuthWhere($authMapData); } /** * 回访tab列表查询条件(权限) * * @param $userId * @author fanqi * @date 2021-03-09 * @return \Closure */ public function getVisitSearchWhere($userId) { $userModel = new \app\admin\model\User(); $authUserIds = $userModel->getUserByPer('crm', 'visit', 'index'); $authMapData['auth_user_ids'] = $authUserIds; $authMapData['user_id'] = $userId; return $this->getSearchAuthWhere($authMapData); } /** * 回款tab列表查询条件(权限) * * @author fanqi * @date 2021-03-10 * @return array[] */ public function getReceivablesSearchWhere() { $userModel = new \app\admin\model\User(); return $userModel->getUserByPer('crm', 'receivables', 'index'); } /** * 发票tab列表查询条件 * * @author fanqi * @date 2021-03-11 * @return array|false|string */ public function getInvoiceSearchWhere() { $userModel = new \app\admin\model\User(); return $userModel->getUserByPer('crm', 'invoice', 'index'); } /** * 产品tab列表查询条件 * * @author fanqi * @date 2021-03-11 * @return array|false|string */ public function getProductSearchWhere() { $userModel = new \app\admin\model\User(); return $userModel->getUserByPer('crm', 'product', 'index'); } /** * 查询权限条件 * * @param $authMapData 权限范围内的ID * @return \Closure */ private function getSearchAuthWhere($authMapData) { return function($query) use ($authMapData) { $query->where(['owner_user_id' => ['in', $authMapData['auth_user_ids']]]) ->whereOr(function ($query) use ($authMapData) { $query->where('FIND_IN_SET("'.$authMapData['user_id'].'", ro_user_id)')->where(['owner_user_id' => ['neq', '']]); }) ->whereOr(function ($query) use ($authMapData) { $query->where('FIND_IN_SET("'.$authMapData['user_id'].'", rw_user_id)')->where(['owner_user_id' => ['neq', '']]); }); }; } }