| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- <?php
- namespace app\index\controller;
- use think\Controller;
- use \app\index\controller\Common;
- use think\Request;
- class Index extends Common
- {
- public function index(){
- $userinfo = cookie('user');
- var_dump($userinfo);die;
- }
- //注册界面
- public function register(Request $request){
-
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
- $data =input(); //得到传递过来的信息
- $data['addtime']= time(); //添加时间
- $data['is_register']=1; //标记为已经注册
- $data['identity']='0'; //所有用户标记为报修者
-
- //判断是否有邀请码,是否过期。以及邀请码的有效期
- $code = isset($data['code'])?$data['code']:null; //获取二维码
- $config = db('admin')->where(['id'=>1])->find(); //获取管理员的配置信息
- if($code){
- $code_data = db('share')->where(['code'=>$code])->find();
- if(!$code_data){
- return json(['code'=>'01','msg'=>'无效验证码']);
- }
- $total_time = $code_data['addtime']+$config['code_time']*60;
- $time = time();
- if($time>$total_time){
- return json(['code'=>'01','msg'=>'验证码已过期']);
- }
- $data['is_check'] =1; //已经审核(通过就设置为已经审核)
- }
- unset($data['code']);
- $result = db('user')->where("openid","=",$user_data['openid'])->update($data);
- if($result){
- return json(['code'=>'00','msg'=>'成功']);
- }else{
- return json(['code'=>'01','msg'=>'失败']);
- }
- }else{
- $data = input(); //获取是否有参数
- $code = isset($data['num'])?$data['num']:null; //获取二维码
- $config = db('admin')->where(['id'=>1])->find(); //获取管理员的配置信息
- $this->assign('overdue',1);
- if($code){
- $code_data = db('share')->where(['code'=>$code])->find();
- $total_time = $code_data['addtime']+$config['code_time']*60;
- $time = time();
- if($time>$total_time){
- $this->assign('overdue',0);
- }
- }
- $result = db('user')->where("openid","=",$user_data['openid'])->find();
- $group_data = db('group')->select();
- $this->assign('status',$result['is_register']);
- $this->assign('code',$code); //code的显示
- $this->assign('group_data',$group_data); //分组数据
- return view();
- }
- }
- // 个人中心
- public function myinfo(){
- $user_data = cookie('user'); //拿到用户的信息
-
- $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
- $repair_num = db('repair_order')->where("openid","=",$user_data['openid'])->count(); //报修记录的条数
-
- $poli_num = db('repair_order')->where("repuser","=",$user_data['openid'])->count(); //维修记录的条数
-
-
-
- $result['addtime'] = date("Y-m-d H:i",$result['addtime']);//对注册时间格式化
- $this->assign('userinfo',$result); //用户信息
- $this->assign('repair_num',$repair_num); //报修记录的条数
- $this->assign('poli_num',$poli_num); //维修记录的条数
- return view();
- }
- //编辑信息
- public function editMyinfo(Request $request){
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
- $data = input(); //获取过来的信息
- $result = db('user')->where("openid","=",$user_data['openid'])->update($data);
- if($result){
- return json(['code'=>'00','msg'=>'成功']);
- }else{
- return json(['code'=>'01','msg'=>'失败']);
- }
- }else{
-
- $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
- $this->assign('userinfo',$result);
- return view();
- }
- }
- // 报修订单(提交)
- public function repairs(Request $request){
-
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
- $data =input(); //获取用户提交的数据
- // 需要组装一下信息
- $data['order_id'] = date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); //创建订单号码
- $data['type'] =''; //订单类别(暂时没有)
- $data['create_time'] = time(); //订单创建时间
- $data['update_time'] = time(); //订单更新时间
- $data['openid'] = $user_data['openid']; //获得openid
-
- // =======================第一种情况
- //这里分为两种情况(如果没有注册让其去注册)
- // $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
- // if($result){
- // $add_data = db('repair_order')->insert($data); //插入数据
- // if($add_data){
- // return json(['code'=>'00','msg'=>'成功']);
- // }
- // }else{
- // return json(['code'=>'01','msg'=>'失败','url'=>'__URL__/register']); //到注册界面
- // }
- // ========================第二种情况(暂时取第二种情况)
-
-
-
- $data['openid'] = $user_data['openid']; //获得openid,直接插入
- $add_data = db('repair_order')->insert($data); //插入数据
-
- //此时需要发送模板消息
- //var_dump($this->accessToken); 获取accesstoken
-
- $where =[
- 'identity'=>"1", //维修者
- "is_register"=>"1" //审核通过的
- ];
- $openid_result = db('user')->where($where)->field('openid')->select();
-
-
- foreach ($openid_result as $key => $value) {
-
- $message_result = $this->sendMessage($value['openid'],$data['order_id'],$data['linkman'],$data['linktel'],'订单状态:接单中','gOvnYBvbCHwxpCq7tPsNgSgqIiSO25n-C9DPexZBr-w'); //调用模板消息
- }
- if($add_data){
- return json(['code'=>'00','msg'=>'成功']);
- }else{
- return json(['code'=>'01','msg'=>'失败']);
- }
- }else{
-
- $user_data = cookie('user'); //拿到用户的信息
- $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
-
- $this->assign('result',$result); //获取用户的信息
-
- return view(); //展示页面
- }
- }
- // 报修记录
- public function repairsList(){
- $user_data = cookie('user'); //拿到用户的信息
- $userinfo = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
-
- $result = db('repair_order')->where("openid","=",$user_data['openid'])->select(); //获取当前用户的订单信息
- $this->assign('order_list',$result); //订单的信息列表
- $this->assign('userinfo',$userinfo); //当前用户的信息
-
- return view();
- }
- // 报修单详情况(展示信息)
- public function repairsDetail(Request $request){
- $data = input(); //获取传递过来的数据
- $orderid = $data['orderid']; //获取到订单的id号码
- $user_data = cookie('user'); //拿到用户的信息
-
- $where=[
- 'order_id'=>$orderid,
- "openid"=>$user_data['openid']
- ];
- $result = db('repair_order')->where($where)->find(); //获取订单信息
-
- $this->assign('result',$result);
- return view();
- }
-
- // 报修者对订单的评论
- public function linkman_message(Request $request){
-
- if($request->isPost()){
- $data =input(); //获取传递过来的参数
- $result = db('repair_order')->where("order_id","=",$data['order_id'])->update($data); //更新订单的数据
- if($result){
- return json(['code'=>'00','msg'=>'成功']);
- }else{
-
- return json(['code'=>'01','msg'=>'失败']);
- }
- }else{
- $data = input();
- $order_id = $data['orderid']; //订单id
- $result = db('repair_order')->where("order_id","=",$order_id)->find();
- $this->assign('result',$result); //订单的信息
- return view();
- }
- }
- // 维修记录
- public function polist(){
- $user_data = cookie('user'); //拿到用户的信息
-
- $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息(获取的是维修者的信息)
- if(!$result){
- $notice = "无法查看维修记录";
- $this->assign('notice',$notice);
- }else{
- $order_list = db('repair_order')->where("repuser","=",$user_data['openid'])->select(); //获取维修者 订单的信息
- $this->assign('userinfo',$result); //用户的信息
- $this->assign('order_list',$order_list); //维修订单的信息
- return view();
- }
- }
- //维修记录详情单
- public function polistDetail(Request $request){
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
-
- $data =input(); //获取传递过来的参数
- $add_data['repuser'] = $user_data['openid']; //获取维修人
- $add_data['update_time'] = time(); //更新时间为当前时间
- $add_data['status'] = 2; //订单状态更改为 接单中
- $result = db('repair_order')->where("order_id","=",$data['orderid'])->update($add_data); //更新订单的数据
-
- $order_info = db('repair_order')->where("order_id","=",$data['orderid'])->find(); //重新获取订单
- $userinfo = db('user')->where("openid","=",$order_info['repuser'])->find(); //获取报修者的信息
-
- if($result && $order_info){
-
- $message_result = $this->sendMessage($order_info['openid'],$data['orderid'],$userinfo['username'],$userinfo['telephone'],'订单状态:已完成','DEl-qHFKobOPEUw8PfF8OB4wWlk8M2ty4DxaieMXHFU'); //调用模板
- if($message_result['errcode']=='0'){
- return json(['code'=>'00','msg'=>'成功']);
- }
- }else{
-
- return json(['code'=>'01','msg'=>'失败']);
- }
-
-
-
- }else{
-
- $data = input(); //获取传递过来的数据
- $orderid = $data['orderid']; //获取到订单的id号码
- $where=[
- 'order_id'=>$orderid,
- "repuser"=>$user_data['openid']
- ];
- $userinfo = db('user')->where("openid","=",$user_data['openid'])->find(); //获取用户的信息
- $result = db('repair_order')->where($where)->find(); //获取当前维修订单的信息
- $this->assign('userinfo',$userinfo); //维修者的信息
- $this->assign('result',$result); //订单的信息
- return view();
- }
- }
-
-
-
-
- //模板消息的调用函数 (openid 订单号 报修人 联系电话 订单的状态 模板id)
- function sendMessage($openid,$keyword1,$keyword2,$keyword3,$remark,$templateId) {
- $url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$this->accessToken; //获取到accesstoken
- $templateId = $templateId; // 模板id
- $post_data = array(
- "touser"=>$openid,
- "template_id"=>$templateId,
- "url"=>"http://ceshi.kamihu.com/index/index/qiaodan?order_id=".$keyword1,
-
- "data"=> array(
- "first" => array(
- "value"=>"报修订单的实时跟踪",
- "color"=>"#173177"
- ),
- "keyword1"=>array(
- "value"=>$keyword1,
- "color"=>"#173177",
- ),
- "keyword2"=>array(
- "value"=>$keyword2,
- "color"=>"#173177"
- ),
- "keyword3"=> array(
- "value"=>$keyword3,
- "color"=>"#173177"
- ),
- "keyword4"=> array(
- "value"=>date('Y-m-d H:i:s'),
- "color"=>"#173177"
- ),
- "remark"=> array(
- "value"=>$remark,
- "color"=>"#173177"
- ),
- )
- );
-
-
- //将上面的数组数据转为json格式
- $post_data = json_encode($post_data);
- //发起请求
- $result = http_curl($url,$post_data,'post');
-
- return $result;
- }
-
-
- public function qiaodan(Request $request){
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
- $data =input(); //获取传递过来的参数
- $add_data['repuser'] = $user_data['openid']; //获取维修人
- $add_data['update_time'] = time(); //更新时间为当前时间
- $add_data['status'] = 1; //订单状态更改为 接单中
- $result = db('repair_order')->where("order_id","=",$data['orderid'])->update($add_data); //更新订单的数据
- $order_info = db('repair_order')->where("order_id","=",$data['orderid'])->find();//重新获取订单
- $userinfo = db('user')->where("openid","=",$order_info['repuser'])->find();//获取报修者的信息
-
- if($result && $order_info){
-
- $message_result = $this->sendMessage($order_info['openid'],$data['orderid'],$userinfo['username'],$userinfo['telephone'],'订单状态:已接单','DEl-qHFKobOPEUw8PfF8OB4wWlk8M2ty4DxaieMXHFU'); //调用模板
- if($message_result['errcode']=='0'){
- return json(['code'=>'00','msg'=>'成功']);
- }
- }else{
-
- return json(['code'=>'01','msg'=>'失败']);
- }
-
- }else{
- $data = input();
- $order_id = $data['order_id']; //订单id
- $result = db('repair_order')->where("order_id","=",$order_id)->find();
-
- if($result['repuser']){
- $repuserinfo = db('user')->where("openid","=",$result['repuser'])->find();
- $result['repuser'] = $repuserinfo['username'];
- }
- $this->assign('result',$result); //订单的信息
- return view();
- }
-
- }
- //分享页面的生成
- public function sharepage(){
- $user_data = cookie('user'); //拿到用户的信息
- $result = db('user')->where("openid","=",$user_data['openid'])->find(); //获取到用户的信息
- if($result['identity']==2 || $result['identity']==99){
- $num = $this->get_rand_number(); //随机生成的六位数字(邀请码)
- vendor("phpqrcode.phpqrcode");
- $code = new \QRcode();
- $errorLevel = "L"; //定义生成图片宽度和高度;默认为3
- $size = "4"; //定义尺寸
- $content='http://'.$_SERVER['HTTP_HOST']."/index/index/register?num=".$num; //生成的网址(含有邀请码的)
- $data = [
- "author"=>$user_data['openid'], //邀请人
- "url" =>$content, //url
- "code"=>$num, //邀请码
- "addtime"=>time(), //生成时间
- ];
- $share_data = db('share')->insert($data); //插入到数据库中去
- if($share_data){
- $filename = './static/images/'.date("Ymd").$num.'.png';
- $tt = $code->png($content,$filename, $errorLevel, $size);
- $this->assign('imgurl',date("Ymd").$num.'.png'); //图片信息传递给前端
- // exit;
- return view();
- }
- }else{
- $this->assign('imgurl',null); //没有信息传递
- return view();
- }
-
- }
- //随机生成数字(作为邀请码来使用)
- public static function get_rand_number($start = 1, $end = 9, $length = 6){
- $connt = 0;
- $temp = [];
- while($connt < $length){
- $temp[] = mt_rand($start, $end);
- $data = array_unique($temp);
- $connt = count($data);
- }
- sort($data);
- $data = implode("",$data);
- return $data;
- }
-
-
-
-
- }
|