assign('breadcrumb1','课程管理'); $this->assign('breadcrumb2','课程会员'); } /** * 首页列表 * * */ public function index(Model $Model,Custom $Custom){ // 接受参数 $code = request('custom_code',''); $customName = request('custom_name',0); $customPhone = request('custom_phone',0); $status = request('status'); // 编码转ID $uid = $Custom->codeToId($code); // 查询条件 $map = []; // 编码ID if( $uid ) $map[] = ['custom_uid','=',$uid]; if( $customName ) $map[] = ['custom.username','LIKE','%'.$customName.'%']; if( $customPhone ) $map[] = ['custom.phone','=',$customPhone]; if( !is_null($status) ) $map[] = ['video_vip.status','=',$status]; // 查询数据 $list = $Model->query()->join('custom','video_vip.custom_uid','=','custom.uid')->where($map)->orderByDesc('id')->select(['video_vip.*','custom.username as custom_name','custom.phone as custom_phone'])->paginate(request('limit',config('page_num',10)))->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // 编码 $value['custom_code'] = $Custom->idToCode($value['custom_uid']); // 重组 $list[$key] = $value; } // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('list', $list); // 加载模板 return $this->fetch(); } /** * 添加 * * */ public function add(Request $request,Model $Model,Custom $Custom){ if( request()->isMethod('post') ){ // 验证参数 $request->scene('add')->validate(); // 接收数据 $startTime = request('start_time',''); $endTime = request('end_time',''); $customPhone = request('custom_phones',''); $startTime = $startTime ? strtotime($startTime) : 0; $endTime = $endTime ? strtotime($endTime) : 0; // 兼容逗号问题 $customPhone = str_ireplace(',',',',$customPhone); $customPhone = str_ireplace("\r\n",',',$customPhone); $customPhone = str_ireplace("\n",',',$customPhone); // 转数组处理 $customPhone = explode(',',$customPhone); // 去重 $customPhone = array_unique($customPhone); // 数量 if( count($customPhone) > 1000 ) return json_send(['code'=>'error','msg'=>'请勿超过1000条']); // 循环处理 foreach ($customPhone as $key=>$phone) { // 兼容空格 $phone = trim($phone); // 正则判断是不是手机号 if( !preg_match("/^1[345789]{1}\d{9}$/",$phone) ) return json_send(['code'=>'error','msg'=> $phone . '不是手机号']); // 转ID $custom = $Custom->getOneByPhone($phone); // 如果不存在,新增客户 $customUid = $custom ? $custom['uid'] : $Custom->add(['phone'=>$phone,'username'=>hide_phone($phone)]); // id有问题 if( !$customUid ) return json_send(['code'=>'error','msg'=> $phone.'创建用户失败']); // 重组 $customPhone[$key] = $customUid; } // 客户列表 $customPhone = is_array($customPhone) ? $customPhone : []; // 查询已经存在的会员 $oldVip = $Model->query()->whereIn('custom_uid',$customPhone)->pluck('id','custom_uid')->toArray(); // 不在存在的会员中的客户即新会员 $newVip = array_diff($customPhone,array_keys($oldVip)); // 存在的的用户修改 $result = $oldVip ? $Model->query()->whereIn('id',$oldVip)->update(['start_time'=>$startTime,'end_time'=>$endTime,'status'=>0,'update_time'=>time()]) : true; // 更新失败 if( !$result ) return json_send(['code'=>'error','msg'=>'修改失败']); // 重组数据 foreach ($newVip as $key => $value) { // 重组 $newVip[$key] = ['custom_uid'=>$value,'start_time'=>$startTime,'end_time'=>$endTime,'status'=>0,'insert_time'=>time(),'update_time'=>time()]; } // 不存在的用户添加 $result = $newVip ? $Model->query()->insert($newVip) : true; // 更新失败 if( !$result ) return json_send(['code'=>'error','msg'=>'新增失败']); // 修改缓存 $Model->getList(true); // 告知结果 return json_send(['code'=>'success','msg'=>'新增成功','action'=>'add','path'=>url('admin/video_vip/index')]); } // 分配数据 $this->assign('crumbs','新增会员'); // 加载模板 return $this->fetch(); } /** * 编辑 * * */ public function edit( Request $request, Model $Model,Custom $Custom ){ // 接收参数 $id = request('id',0); // 查询数据 $oldData = $Model->where(['id'=>$id])->first(); $oldData = $oldData ? $oldData->toArray() : []; // 修改 if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 组合数据 $data['start_time'] = request('start_time',''); $data['end_time'] = request('end_time',''); $data['start_time'] = $data['start_time'] ? strtotime($data['start_time']) : 0; $data['end_time'] = $data['end_time'] ? strtotime($data['end_time']) : 0; // 写入 $result = $Model->edit($id,$data); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'修改失败']); // 删除结果 unset($oldData['content']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,$data); // 告知结果 return json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']); } // 如果是没有数据 if( !$oldData ) return $this->error('查无数据'); // 查询用户信息 $oldData['custom_name'] = $Custom->getValue($oldData['custom_uid'],'username'); $oldData['custom_code'] = $Custom->idToCode($oldData['custom_uid']); // 分配数据 $this->assign('oldData',$oldData); $this->assign('crumbs','修改'); // 加载模板 return $this->fetch(); } /** * 状态 * * */ public function set_status( Request $request, Model $Model){ // 验证参数 $request->scene('set_status')->validate(); // 接收参数 $id = request('id',0); $status = request('status',0); // 查询数据 $result = $Model->edit($id,['status'=>$status]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'设置失败']); // 告知结果 return json_send(['code'=>'success','msg'=>'设置成功','path'=>'']); } }