assign('breadcrumb1','用户管理');
$this->assign('breadcrumb2','客户管理');
}
/**
* 列表页
*
* */
public function index(Model $Model,Custom $Custom){
// 接受参数
$code = request('custom_code','');
$status = request('status','0');
// 编码转ID
$uid = $Custom->codeToId($code);
// 查询条件
$map = [['status','=',$status]];
// 编码ID
if( $uid ) $map[] = ['custom_uid','=',$uid];
// 查询数据
$list = $Model->query()->where($map)->orderByDesc('insert_time')->paginate(config('page_num',10));
// 循环处理数据
foreach ($list as $key => $value) {
// 客户编码
$value['custom_code'] = $Custom->idToCode($value['custom_uid']);
// 客户编码
$value['custom_name'] = $Custom->getValue($value['custom_uid'],'username');
// 重组
$list[$key] = $value;
}
// 分配数据
$this->assign('empty', '
~~暂无数据 |
');
$this->assign('list',$list);
// 加载模板
return $this->fetch();
}
/**
* 修改状态
*
* */
public function set_status(Request $request,Model $Model,Custom $Custom,WorkUser $WorkUser, WorkTag $WorkTag){
// 指定客服
$id = request('id',0);
// 查询用户
$oldData = $Model->where(['id'=>$id])->first();
// 查询用户的外部联系人
$custom = $Custom->getOne($oldData['custom_uid']);
// 返回结果
if( request()->isMethod('post') ){
// 验证参数
$request->scene('set_status')->validate();
// 接收参数
$status = request('status',0);
$userids = request('user',[]);
// 如果用户不存在
if( !$oldData ) return json_send(['code'=>'error','msg'=>'查无数据']);
// 如果用户不存在
if( !$custom ) return json_send(['code'=>'error','msg'=>'用户不存在']);
// 通过才更新
if( $status == 8 ) {
// 如果存在指定客服
if( $userids ) {
// 查询客服信息
$followUsers = $WorkUser->query()->whereIn('work_userid',$userids)->where([['external_userid','=',$custom['external_userid']]])->get(['id','work_userid','external_userid','remark','remark_company','description'])->toArray();
// 如果用户不存在
if( !$followUsers ) return json_send(['code'=>'error','msg'=>'没有指定的客服']);
// 返回结果
$area = explode('/',$oldData['license_area']);
// 处理地区
$province = empty($area[0]) ? '' : $area[0];
$city = empty($area[1]) ? '' : $area[1];
// 循环处理
foreach ($followUsers as $key => $value) {
// 备注修改
$value['remark'] = $oldData['remark'];
$value['remark_company'] = $oldData['remark_company'];
// 打上城市标签
$WorkTag->markCityTag($value['work_userid'],$value['external_userid'],$province,$city);
// 客户备注
ExternalContact::remark($value['external_userid'],$value['work_userid'],['remark'=>$oldData['remark'],'remark_company'=>$oldData['remark_company']]);
// 更新客服备注
$result = $WorkUser->edit($value['id'],$value);
// 提示新增失败
if( !$result ) return json_send(['code'=>'error','msg'=>'备注修改失败']);
}
}
// 执行修改
$result = $Custom->edit($oldData['custom_uid'],['company_id'=>$id]);
// 提示修改失败
if( !$result ) return json_send(['code'=>'error','msg'=>'资质设置失败']);
}
// 执行修改
$result = $Model->edit($id,['status'=>$status,'admin_uid'=>admin('uid')]);
// 提示新增失败
if( !$result ) return json_send(['code'=>'error','msg'=>'审核失败']);
// 记录行为
$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,['status'=>$status]);
// 告知结果
return json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
}
// 错误告知
if( !$oldData ) return $this->error('查无数据');
// 如果没有客户
if( !$custom ) return $this->error('用户不存在');
// 默认不需要客服
$partUserList = [];
// 如果没有的外部联系人ID话
if( $custom['external_userid'] ) {
// 查询客服信息
$followUsers = $WorkUser->query()->where([['external_userid','=',$custom['external_userid']]])->pluck('work_userid')->toArray();
// 获取部门数据
$partUserList = WorkUserServer::getListDepart();
// 循环部门成员
foreach ($partUserList as $key=>$part) {
// 用户列表
foreach ($part['user_list'] as $k=>$user){
// 不存在跟进列表的删除
if( !in_array($user['userid'],$followUsers) ) unset($part['user_list'][$k]);
}
// 重组
$partUserList[$key] = $part;
// 删除没有跟进人员的部门
if( !$part['user_list'] ) unset($partUserList[$key]);
}
}
// 分配数据
$this->assign('partUserList',$partUserList);
$this->assign('oldData',$oldData);
$this->assign('crumbs','新增');
// 加载模板
return $this->fetch();
}
}