| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- <?php
- namespace app\index\controller;
- use think\Controller;
- use think\Db;
- use \app\index\controller\Common;
- use think\Request;
- class Index extends Common
- {
- public function index(){
-
- echo "test";die;
- $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']);
- $find = db('user')->where("openid","=",$user_data['openid'])->find();
- if(!$find){
- $data['nickname'] = $user_data['nickname'];
- $data['openid'] = $user_data['openid'];
- $data['headimgurl'] = $user_data['headimgurl'];
- $data['addtime'] = time();
- $datas = db('user')->insert($data);
- if($datas){
- return json(['code'=>'00','msg'=>'成功']);
- }else{
- return json(['code'=>'01','msg'=>'失败']);
- }
- }else{
- $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();
- if(!$result['is_register']){
- $this->assign('status',"0");
- }else{
- $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
- $group = Db::name('user')->where('openid', $data['openid'])->field('group')->find();
- $data['group'] = $group['group'];
- $add_data = db('repair_order')->insert($data); //插入数据
- $openid_result = db('user')->where('identity','in', '1,2')->where(['is_check'=>'1'])->field('openid')->select();
- array_push($openid_result,['openid'=>$user_data['openid']]);
- $time = time();
- $openid_result = array_unique($openid_result, SORT_REGULAR);
- foreach ($openid_result as $key => $value) {
-
- $message_result = $this->sendMessage($value['openid'],$data['order_id'],$data['linkman'],$data['linktel'],'订单状态:接单中','yb20xT_XekDUYJ8WpqbtU8mWFmnzmGo19j8HARQPTj0',$time); //调用模板消息
- }
- 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(); //展示页面
- }
- }
- /**
- * 转单
- * @param Request $request
- * @return \think\response\Json
- */
- public function transferOrder(Request $request)
- {
- $user_data = cookie('user'); //拿到用户的信息
- if($request->isPost()){
- $data = input();
- $add_data['update_time'] = time(); //更新时间为当前时间
- $add_data['status'] = 3; //订单状态更改为 转单
- $result = db('repair_order')->where("order_id","=",$data['orderid'])->update($add_data); //更新订单的数据
- if(!$result){
- return json(['code'=>'01','msg'=>'失败']);
- }
- $order_info = db('repair_order')->where("order_id","=",$data['orderid'])->find(); //重新获取订单
- $userinfo = db('user')->where("openid","=",$order_info['openid'])->find(); //获取报修者的信息
- if($data['openid'] == $userinfo['openid']){
- $this->sendMessage($data['openid'],$order_info['order_id'],$order_info['linkman'],$order_info['linktel'],'订单状态:转单','yb20xT_XekDUYJ8WpqbtU8mWFmnzmGo19j8HARQPTj0',$order_info['create_time']); //调用模板消息
- }else{
- $this->sendMessage($data['openid'],$order_info['order_id'],$order_info['linkman'],$order_info['linktel'],'订单状态:转单','yb20xT_XekDUYJ8WpqbtU8mWFmnzmGo19j8HARQPTj0',$order_info['create_time']); //调用模板消息
- $this->sendMessage($userinfo['openid'],$order_info['order_id'],$order_info['linkman'],$order_info['linktel'],'订单状态:转单','yb20xT_XekDUYJ8WpqbtU8mWFmnzmGo19j8HARQPTj0',$order_info['create_time']); //调用模板消息
-
- }
- return json(['code'=>'00','msg'=>'成功']);
-
- }
- }
- // 报修记录
- 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();
- }
- }
- /**
- * 全部维修记录
- * @param Request $request
- * @return \think\response\View
- */
- public function allList(Request $request)
- {
-
- $user_data = cookie('user');
- $result = db('user')->where('openid','=',$user_data['openid'])->find();
- $order_list = db('repair_order')->select();
- if(!empty($request->param('status'))){
- $status = $request->param('status');//根据订单状态查询
- switch ($status)
- {
- case '4':
- $order_list = db('repair_order')->where('status','0')->select();
- break;
- case '1':
- $order_list = db('repair_order')->where('status','1')->select();
- break;
- case '2':
- $order_list = db('repair_order')->where('status','2')->select();
- break;
- case '3':
- $order_list = db('repair_order')->where('status','3')->select();
- break;
- }
- }
- $this->assign('userinfo',$result);
- $this->assign('order_list',$order_list);
- 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; //订单状态更改为 接单中
- $add_data['handle'] = $data['handle'];
- $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(); //获取报修者的信息
- $time = time();
- if($result && $order_info){
-
- $message_result = $this->sendMessage($order_info['openid'],$data['orderid'],$userinfo['username'],$userinfo['telephone'],'订单状态:已完成','haRLoUPGKx-JFYPtK6k9VAnCntI9B9cWBSQRTqt_KyI',$time); //调用模板
- 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(); //获取当前维修订单的信息
- $maintain = db('user')->where('identity','in','1,2')->where('is_check','1')->where('is_register','1')->select();
- $this->assign('maintain',$maintain);
- $this->assign('userinfo',$userinfo); //维修者的信息
- $this->assign('result',$result); //订单的信息
- return view();
- }
- }
-
-
-
-
- //模板消息的调用函数 (openid 订单号 报修人 联系电话 订单的状态 模板id)
- function sendMessage($openid,$keyword1,$keyword2,$keyword3,$remark,$templateId,$time) {
- $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"=>HOSTNAME."/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',$time),
- "color"=>"#173177"
- ),
- "remark"=> array(
- "value"=>$remark,
- "color"=>"#173177"
- ),
- )
- );
-
-
- //将上面的数组数据转为json格式
- $post_data = json_encode($post_data);
- //发起请求
- $result = http_curl($url,$post_data,'post');
- file_put_contents("moban.txt",$result);
- 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();//获取报修者的信息
- $time = time();
- if($result && $order_info){
-
- $message_result = $this->sendMessage($order_info['openid'],$data['orderid'],$userinfo['username'],$userinfo['telephone'],'订单状态:已接单','haRLoUPGKx-JFYPtK6k9VAnCntI9B9cWBSQRTqt_KyI',$time); //调用模板
- 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();
- $identity = db('user')->where("openid","=",$user_data['openid'])->find();
- if($result['repuser']){
- $repuserinfo = db('user')->where("openid","=",$result['repuser'])->find();
- $result['repuser'] = $repuserinfo['username'];
- }
- $result['identify'] = $identity['identity'];
- $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("code",$num);
- $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;
- }
-
-
-
-
- }
|