isAjax()){ return View::fetch(); }else{ $request = request(); $data=$request->only(['name','switch_type','is_poster','poster_img','sign_type','zima_list']); if(empty($data['poster_img'])) return json(['code' => 1, 'msg' => '请上传活动海报']); $zima=json_decode(strip_tags($data['zima_list']),true); $add['root_id']=$request->employee->root_id; $add['name'] = $data['name']; $add['addtime'] = date('Y-m-d',time()); $add['switch_type'] = $data['switch_type']; $add['is_poster'] = !empty($data['is_poster'])?$data['is_poster']:2; $add['poster_img'] = !empty($data['poster_img'])?$data['poster_img']:null; $add['employee_id'] = request()->employee->id; //$add['sign_type'] = $data['sign_type']; Db::startTrans(); try { $ms=HuomaModel::insertGetId($add); $xin=null; $allpr=0; foreach($zima as $key=>$val){ $parr[]=$val['validity_date']; $gd=array( 'stort'=>$val['priority'], 'qrcode_img' =>$val['qrcode_img'], 'max_visit'=>$val['limit'], 'file_name'=>$val['file_name'], 'code_invalid_time'=>$val['validity_date'], 'mid'=>$ms ); $xin[]=$gd; $code_invalid_time=$val['validity_date']; } array_multisort($parr, SORT_DESC, $zima); $tm=HuomaZima::insertAll($xin); if($tm){ $url=$this->produce_url($ms); HuomaModel::where('id',$ms)->update(array('code_url'=>$url,'invalid_time'=>$zima[0]['validity_date'])); } Db::commit(); }catch (\Exception $e) { Db::rollback(); //var_dump($e->getMessage()); return json(['code' => 1, 'msg' => '提交数据失败.']); } return json(['code' => 0, 'msg' => '添加成功']); } } public function add_qrcode() { return View::fetch(); } //生成分享链接 public function produce_url($id) { $request = request(); $notify=Miniprogram::where('root_id',$request->employee->root_id)->value('notify'); $param=array( 'query'=>'id='.$id.'&ctp='.$notify, 'path'=>'/share/pages/channelsignup/channelsignup', 'env_version'=>'', 'id'=>$id, 'type'=>'huoma', 'user_id'=>'', 'client_type'=>$notify ); // 存储参数 $data = [ 'content' => json_encode($param), 'type' => 'share' ]; $shortUrl = ShortUrl::create($data); // 将ID进行 $uri = dec52($shortUrl->id); $shortUrl->uri = $uri; $shortUrl->save(); $domain = $request->domain(); return $domain . '/' . $uri; } //添加图片 public function add_img() { $request = request(); $data=$request->only(['qrcode_img']); $ali_oss_bindurl='http://'.config('app.ali_oss_bindurl').'/'; $data['link_qrcode_img']=$ali_oss_bindurl.$data['qrcode_img']; $data['name_qrcode_img']=str_replace('Huoma/','',$data['qrcode_img']); return json(['code' => 0, 'data' => $data, 'msg' => '获取成功']); } //修改活码 public function edit_code() { $request = request(); $data=$request->only(['name','switch_type','is_poster','poster_img','sign_type','zima_list','id']); if (!request()->isAjax()){ $data=$request->only(['id']); $code_data=HuomaModel::with(['zima']) ->where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]]) ->find(); foreach($code_data['zima'] as $key=>$val){ $code_data['zima'][$key]['qrcode_name']=str_replace('http://'.config('app.ali_oss_bindurl').'/Huoma/','',$val['qrcode_img']); } View::assign('data',$code_data); return View::fetch(); }else{ $ali_oss_bindurl='http://' .config('app.ali_oss_bindurl').'/'; $add['name'] = $data['name']; $add['switch_type'] = $data['switch_type']; $add['is_poster'] = !empty($data['is_poster'])?$data['is_poster']:2; if(!empty($data['poster_img'])){ $add['poster_img'] = str_replace($ali_oss_bindurl,'',$data['poster_img']); } $zima=json_decode(strip_tags($data['zima_list']),true); $gen=$in=null; foreach($zima as $key=>$val){ $parr[]=$val['validity_date']; if($val['id']){ $gd=array( 'id'=>$val['id'], 'stort'=>$val['priority'], 'qrcode_img' =>str_replace($ali_oss_bindurl,'',$val['qrcode_img']), 'max_visit'=>$val['limit'], 'file_name'=>$val['file_name'], 'code_invalid_time'=>$val['validity_date'] ); $gen[]=$gd; }else{ $pd=array( 'stort'=>$val['priority'], 'qrcode_img' =>$val['qrcode_img'], 'max_visit'=>$val['limit'], 'code_invalid_time'=>$val['validity_date'], 'file_name'=>$val['file_name'], 'mid'=>$data['id'] ); $in[]=$pd; } } array_multisort($parr, SORT_DESC, $zima); $add['invalid_time']=$zima[0]['validity_date']; $ms=HuomaModel::where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])->update($add); $ltg = new HuomaZima(); if(!empty($gen)){ $ltg->saveAll($gen); } if(!empty($in)){ $ltg->insertAll($in); } return json(['code' => 0, 'msg' => '修改成功']); } } //编辑活 public function edit_qrcode() { return View::fetch(); $request = request(); $data=$request->only(['id','max_visit','stort','code_invalid_time','qrcode_img']); if (!request()->isAjax()){ $code_data=HuomaZima::where('id',$data['id'])->find(); View::assign('code_data',$code_data); return View::fetch(); }else{ $ali_oss_bindurl='http://' .config('app.ali_oss_bindurl').'/'; $save=array( 'max_visit'=>$data['max_visit'], 'stort'=>$data['stort'], 'qrcode_img'=>str_replace($ali_oss_bindurl,'',$data['qrcode_img']), ); $ms=HuomaZima::where('id',$data['id'])->update($save); if($ms){ return json(['code' => 0, 'msg' => '修改成功']); }else{ return json(['code' => 0, 'msg' => '修改失败']); } } } //删除二维码 public function del_qrcode() { $request = request(); $data=$request->only(['id']); HuomaUser::where('bind_code',$data['id'])->delete(); $ms=HuomaZima::where('id',$data['id'])->delete(); if($ms){ return json(['code' => 0, 'msg' => '修改成功']); }else{ return json(['code' => 0, 'msg' => '修改失败']); } } //删除活码 public function del_code() { $request = request(); $data=$request->only(['id']); $ms=HuomaModel::where('id',$data['id'])->delete(); if($ms){ return json(['code' => 0, 'msg' => '删除成功']); }else{ return json(['code' => 0, 'msg' => '删除失败']); } } //活码列表 public function code_list() { if (!request()->isAjax()){ $eid = HuomaModel::where([['root_id','=',request()->employee->root_id],['employee_id','>',0]])->group('employee_id')->column('employee_id'); $where = [ ['id','in',$eid], ['grant_id', '>', 0], ['root_id', '=', request()->employee->root_id] ]; // 运营人员列表 $employee = Employee::where($where)->field(['id', 'opt_name as name'])->select()->toArray(); View::assign('employee', $employee); return View::fetch(); }else{ $request = request(); $data=$request->only(['page','limit','keyword','employee_id','date']); //条件 $condition = [ ['root_id','=',$request->employee->root_id] ]; if(!empty($data['keyword'])){ $condition[] = ['name', 'like', '%' . $data['keyword'] . '%']; } if (!empty($data['employee_id'])) { $condition[] = ['employee_id', '=', $data['employee_id']]; } if (!empty($data['date'])) { $arr = explode(' - ',$data['date']); $condition[] = ['addtime','<=', "$arr[0]"]; $condition[] = ['invalid_time','>=',"$arr[1]"]; } $list=HuomaModel::with(['employee']) ->where($condition) ->page($data['page'], $data['limit']) ->order(['addtime' => 'desc','id' => 'desc']) ->select() ->toArray(); $time=date('Y-m-d',time()); foreach($list as $key=>$val){ $num=HuomaUser::where([['addtime','>=',$time.' 00:00:00'],['addtime','<=',$time.' 23:59:59'],['mid','=',$val['id']]])->count(); $list[$key]['num']=$num; } $count=HuomaModel::where($condition)->count(); return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } } //扫码统计 public function visit_list() { $request = request(); $data=$request->only(['page','limit','id']); if (!request()->isAjax()){ View::assign('id',$data['id']); return View::fetch(); }else{ $list=HuomaZima::where('mid','=',$data['id']) ->page($data['page'], $data['limit']) //->order(['stort'=>'desc']) ->select() ->toArray(); foreach($list as $key=>$val){ $list[$key]['qrcode_img']=str_replace('http://'.config('app.ali_oss_bindurl').'/Huoma/','',$val['qrcode_img']); } $count=HuomaZima::where('mid','=',$data['id'])->count(); return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } } //修改活码状态 public function up_status() { $request = request(); $data=$request->only(['id']); $ms=HuomaModel::find($data['id']); $ms->status = $ms->status == 1 ? 2 : 1; $ms->save(); if($ms){ return json(['code' => 0, 'msg' => '修改成功']); }else{ return json(['code' => 0, 'msg' => '修改失败']); } } //扫码详情 public function user_list() { $request = request(); $data=$request->only(['page','limit','id']); $list=HuomaUser::with(['user'=>function($query){ $query->field('id,nickname,headimgurl,phone'); }])->where('bind_code','=',$data['id']) //->page($data['page'], $data['limit']) ->order(['addtime'=>'desc']) ->select() ->toArray(); $count=HuomaUser::where('bind_code','=',$data['id'])->count(); return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } } ?>