getUserByPer('crm', 'market', $a); $authMap['market.create_user_id'] = ['in', $auth_user_ids]; $list=db('crm_market') ->alias('market') ->join('__CRM_MARKET_CATEGORY__ market_category','market_category.r_id=market.market_field_id') ->where($where) ->where($authMap) ->page($param['page'],$param['limit']) ->order() ->select(); return $list; } /** * * @author alvin guogaobo * @version 1.0 版本号 * @since 2021/4/27 0027 09:46 */ public function marketList(){ $list=db('admin_market')->where('status',1)->field('types,name')->select(); $data=[ 0=>[ 'name'=>'客户', 'types'=>'crm_customer' ], 1=>[ 'name'=>'线索', 'types'=>'crm_leads' ] ]; $data=array_merge($data,$list); return $data; } public function createData($param){ $fieldModel = new \app\admin\model\Field(); $dataInfo = db('crm_market')->where(['name' => $param['name']])->find(); if (isset($dataInfo)) { // 自动验证 $validateArr = $fieldModel->validateField($this->name); //获取自定义字段验证规则 $validate = new Validate($validateArr['rule'], $validateArr['message']); $result = $validate->check($param); if (!$result) { $this->error = $validate->getError(); return false; } } if (db('crm_market')->data($param)->allowField(true)->isUpdate(false)->save()) { updateActionLog($param['create_user_id'], 'crm_market', $this->product_id, '', '', '创建了市场活动'); RecordActionLog($param['create_user_id'], 'crm_market', 'save', $param['name'], '', '', '新增了市场活动' . $param['name']); $data = []; $data['product_id'] = $this->product_id; return $data; } else { $this->error = '添加失败'; return false; } } /** * 修改 * @param $param * @param string $market_id * * @author alvin guogaobo * @version 1.0 版本号 * @since 2021/4/27 0027 15:57 */ public function updateDataById($param,$market_id = ''){ $fieldModel = new \app\admin\model\Field(); $dataInfo = db('crm_market')->where(['market_id' => $market_id])->find(); if (isset($dataInfo)) { // 自动验证 $validateArr = $fieldModel->validateField($this->name); //获取自定义字段验证规则 $validate = new Validate($validateArr['rule'], $validateArr['message']); $result = $validate->check($param); if (!$result) { $this->error = $validate->getError(); return false; } } $param['market_id'] = $market_id; if (db('crm_market')->update($param, ['market_id' => $market_id], true)) { updateActionLog($param['create_user_id'], 'crm_market', $this->market_id, '', '', '编辑了市场活动'); RecordActionLog($param['create_user_id'], 'crm_market', 'update', $param['name'], '', '', '编辑了市场活动' . $param['name']); $data = []; $data['market_id'] = $this->market_id; return $data; } else { $this->error = '添加失败'; return false; } } /** * 删除 * @param $id_list * * @author alvin guogaobo * @version 1.0 版本号 * @since 2021/4/28 0028 10:48 */ public function delete($id_list){ $marketModel = model('Market'); // 错误信息 $delIds = []; $error_message = []; // 过滤后的ID $id_list_filter = db('crm_market')->where(['market_id' => ['IN', $id_list]])->column('market_id'); $diff = array_diff($id_list, $id_list_filter); if (!empty($diff)) { foreach ($diff as $key => $val) { $error_message[] = sprintf('ID为 %d 的活动删除失败,错误原因:数据不存在或已删除。', $val); } array_unshift($error_message, '数据已更新,刷新页面后重试!'); return resultArray(['error' => $error_message]); } //数据权限判断 $userModel = new \app\admin\model\User(); $auth_user_ids = $userModel->getUserByPer('crm', 'market', 'delete'); foreach ($id_list as $k => $v) { $isDel = true; //数据详情 $data = $this->getDataById($v); if (!in_array($data['create_user_id'], $auth_user_ids)) { $isDel = false; $errorMessage[] = '名称为' . $data['name'] . '的活动删除失败,错误原因:无权操作'; } if ($isDel) { $delIds[] = $v; } } $dataInfo = db('crm_market')->where('market_id',['in',$delIds])->select(); if ($delIds) { // 软删除数据 $res = $marketModel::destroy(['market_id' => ['IN', $delIds]]); if ($res == count($delIds)) { // 添加删除记录 $userInfo = $this->userInfo; foreach ($dataInfo as $k => $v) { RecordActionLog($id_list['user_id'], 'crm_market', 'delete', $v['name'], '', '', '删除了活动:' . $v['name']); } return resultArray(['data' => '删除成功']); } else { return resultArray(['error' => '删除失败']); } } if ($errorMessage) { return resultArray(['error' => $errorMessage]); } else { return resultArray(['data' => '删除成功']); } } /** * 基本信息 * @param string $id * @param int $userId * * @author alvin guogaobo * @version 1.0 版本号 * @since 2021/4/27 0027 18:03 */ public function getDataById($id = '', $userId = 0) { $map['market_id'] = $id; $dataInfo = db('crm_market')->where($map)->find(); if (!$dataInfo) { $this->error = '暂无此数据'; return false; } # 获取封面图片 $dataInfo['cover_images'] = $this->getMarketImages($dataInfo['cover_images']); # 获取详情图片 $dataInfo['details_images'] = $this->getMarketImages($dataInfo['details_images']); $userModel = new \app\admin\model\User(); $dataInfo['create_user_id_info'] = $userModel->getUserById($dataInfo['create_user_id']); $dataInfo['create_time'] = !empty($dataInfo['create_time']) ? date('Y-m-d H:i:s', $dataInfo['create_time']) : null; $dataInfo['update_time'] = !empty($dataInfo['update_time']) ? date('Y-m-d H:i:s', $dataInfo['update_time']) : null; // 字段授权 if (!empty($userId)) { $grantData = getFieldGrantData($userId); $userLevel = isSuperAdministrators($userId); foreach ($dataInfo as $key => $value) { if (!$userLevel && !empty($grantData['crm_market'])) { $status = getFieldGrantStatus($key, $grantData['crm_market']); # 查看权限 if ($status['read'] == 0) unset($dataInfo[$key]); } } } return $dataInfo; } /** * 获取活动图片 * @param $fileIds * * @author alvin guogaobo * @version 1.0 版本号 * @since 2021/4/28 0028 10:36 */ private function getMarketImages($fileIds) { $files = Db::name('admin_file')->whereIn('file_id', $fileIds)->select(); foreach ($files as $key => $value) { $files[$key]['file_path'] = getFullPath($value['file_path']); $files[$key]['file_path_thumb'] = getFullPath($value['file_path_thumb']); $files[$key]['size'] = format_bytes($value['size']); } return $files; } }