assign('breadcrumb1','用户管理'); $this->assign('breadcrumb2','客户管理'); } /** * 列表页 * * */ public function index(Model $Model,CustomScore $CustomScore,WeiBanFollow $WeiBanFollow,City $City){ // 接受参数 $code = request('custom_code',''); $phone = request('phone',''); $username = request('username',''); $weibanId = request('weiban_extid',''); $cityId = request('city_id',0); $status = request('status'); $startTime = request('start_time',''); // 编码转ID $uid = $Model->codeToId($code); // 查询条件 $map = []; // 编码ID if( $uid ) $map[] = ['uid','=',$uid]; if( $phone ) $map[] = ['phone','=',$phone]; if( $username ) $map[] = ['username','=',$username]; if( $cityId ) $map[] = ['city_id','=',$cityId]; if( $weibanId ) $map[] = ['weiban_extid','=',$weibanId]; if( $startTime ) $map[] = ['insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()]; if( $startTime ) $map[] = ['insert_time','<=',Carbon::createFromFormat('Y-m-d',$startTime)->endOfDay()->getTimestamp()]; if( !is_null($status) ) $map[] = ['status','=',$status]; // 查询数据 $list = $Model->query()->where($map)->orderByDesc('uid')->paginate(config('page_num',10))->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // 城市名 $value['city_name'] = $value['city_id'] ? $City->getOne($value['city_id'],'name') : ''; // id转编号 $value['custom_code'] = $Model->idToCode($value['uid']); // id转编号 $value['custom_score'] = $CustomScore->getCustomScore($value['uid']); // 如果不存在微伴ID if( !$value['weiban_extid'] ) { // 通过手机号查询注册的账号 $value['weiban_extid'] = (string) $WeiBanFollow->query()->where([['phone_number','=',$value['phone']]])->value('weiban_extid'); // 如果存在的话,修正 if( $value['weiban_extid'] ) $Model->edit($value['uid'],['weiban_extid'=>$value['weiban_extid']]); } // 重组 $list[$key] = $value; } // 获取列表 $cityList = $City->getCityList(); // 分配数据 $this->assign('cityList',$cityList); // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('list',$list); // 加载模板 return $this->fetch(); } /** * 添加 * * */ public function add(Request $request,Model $Model){ if( request()->isMethod('post') ){ // 验证参数 $request->scene('add')->validate(); // 接收数据 // 接收数据 $data['username'] = request('username',''); $data['phone'] = request('phone',''); // 写入数据表 $uid = $Model->add($data); // 如果操作失败 if( !$uid ) return json_send(['code'=>'error','msg'=>'新增失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,1,[],$data); // 告知结果 return json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']); } // 分配数据 $this->assign('crumbs','新增'); // 加载模板 return $this->fetch(); } /** * 修改 * * */ public function edit(Request $request,Model $Model,City $City){ // 接收参数 $uid = request('uid',0); // 查询用户 $oldData = $Model->where(['uid'=>$uid])->first(); // 修改 if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 如果用户不存在 if( !$oldData ) return json_send(['code'=>'error','msg'=>'用户不存在']); // 转数组 $oldData = $oldData->toArray(); // 接收数据 $data['username'] = request('username',''); $data['phone'] = request('phone',''); $data['city_id'] = request('city_id',0); $data['weiban_extid'] = request('weiban_extid',''); // 写入数据表 $result = $Model->edit($uid,$data); // 如果操作失败 if( !$result ) return json_send(['code'=>'error','msg'=>'新增失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,2,$oldData,$data); // 告知结果 return json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']); } // 错误告知 if( !$oldData ) return $this->error('查无数据'); // 获取列表 $cityList = $City->getCityList(); // 分配数据 $this->assign('cityList',$cityList); $this->assign('oldData',$oldData); $this->assign('crumbs','修改'); // 加载模板 return $this->fetch(); } /** * 修改状态 * * */ public function set_status(Request $request,Model $Model){ // 验证参数 $request->scene('set_status')->validate(); // 设置状态 $uid = request('uid',0); $status = request('status',0); // 查询用户 $oldData = $Model->where(['uid'=>$uid])->first(); // 如果用户不存在 if( !$oldData ) return json_send(['code'=>'error','msg'=>'用户不存在']); // 执行修改 $result = $Model->edit($uid,['status'=>$status]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'设置失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,2,$oldData,['status'=>$status]); // 告知结果 return json_send(['code'=>'success','msg'=>'设置成功','path'=>'']); } /** * 表格导入 * * */ public function import_execl( Request $request,Model $Model,FilesManager $FilesManager,City $City,CustomAddr $CustomAddr,WeiBanExternal $WeiBanExternal){ // 验证参数 $request->scene('import_execl')->validate(); // 获取表格信息 $file = request()->file('custom_file'); // 返回结果 $sheetList = $FilesManager->excelToCustom($file); // 如果不存在结果 if( isset($sheetList['error']) ) return json_send(['code'=>'error','msg'=>$sheetList['error']]); // 循环表格数据 foreach ($sheetList as $value) { // 获取城市ID $value['city_id'] = 0; // 存在城市名称,查询城市ID if( $value['contact_city'] ) { // 获取城市ID $value['city_id'] = (int) $City->getIdByName($value['contact_city']); // 如果城市不存在的话 if ( !$value['city_id'] ) return json_send(['code'=>'error','msg'=>$value['contact_city'].' => 未找到匹配的城市,请核对城市全称']); } // 获取手机号,查询是否用客户 $custom = $Model->getOneByPhone($value['phone']); // 组装数据 $data = ['weiban_extid'=>$value['weiban_extid'],'username'=>$value['username']]; // 如果客户不存在 if( !$custom ) $data['phone'] = $value['phone']; // 如果存在城市ID,才修改城市 if( $value['city_id'] ) $data['city_id'] = $value['city_id']; // 如果存在手机号 $uid = $custom ? $Model->edit($custom['uid'],$data) : $Model->add($data); // 如果客户存在 if( !$uid ) return json_send(['code'=>'error','msg'=>$value['username'].'【'.$value['phone'].'】'.'用户创建或者更新失败']); // 存在详细地址,才创建地址库 if( $value['contact_name'] && $value['contact_phone'] && $value['contact_province'] && $value['contact_city'] && $value['contact_area'] && $value['contact_addr'] ) { // 收件地址是否存在 $oldAddr = $CustomAddr->query()->where([['custom_uid','=',$uid]])->first(); // 如果不存在地址 if( !$oldAddr ) $CustomAddr->add(['custom_uid'=>$uid,'contact_name'=>$value['contact_name'],'contact_shop'=>$value['contact_shop'],'contact_phone'=>$value['contact_phone'],'contact_province'=>$value['contact_province'],'contact_city'=>$value['contact_city'],'contact_area'=>$value['contact_area'],'contact_addr'=>$value['contact_addr']]); } } // 提示成功 return json_send(['code'=>'success','msg'=>'批量导入成功','path'=>'']); } }