123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php namespace App\Http\Controllers\Admin;
- use App\Http\Requests\Admin\Video\VideoVip as Request;
- use App\Models\Custom;
- use App\Models\Video\VideoVip as Model;
- /**
- * 课程会员
- *
- * @author huanglei
- *
- */
- class VideoVip extends Auth{
-
- protected function _initialize(){
- parent::_initialize();
- $this->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', '<tr><td colspan="20">~~暂无数据</td></tr>');
- $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'=>'']);
- }
- }
|