Browse Source

预约单调整消息调整

zhangxiaobin 1 year ago
parent
commit
4c7cdee1df

+ 5 - 2
application/api/controller/PreOrder.php

@@ -105,7 +105,10 @@ class PreOrder extends Api
             if (!$res) {
                 throw new Exception('操作失败');
             }
-            $this->success('操作成功');
+            $result = [
+                'template_ids' => config('param.wechat_template_ids'),//微信消息模版ID
+            ];
+            $this->success('操作成功',$result);
         } catch (Exception $e) {
             $this->error($e->getMessage());
         }
@@ -144,7 +147,7 @@ class PreOrder extends Api
             $where[$po.'.user_id'] = $this->auth->id;
             $where[$po.'.id'] = $id;
             $field = $po.'.id,name,mobile,address,remark,car_number,pre_time,order_time,cancel_time,cancel_reason,'.
-            $po.'.createtime,'.$st.'.title,pre_order_status';
+            $po.'.createtime,servicetype_id,'.$st.'.title as `servicetype_title`,pre_order_status';
             $result = $this->model->alias($po)->field($field)
                 ->join($st,$st.'.id = '.$po.'.servicetype_id','LEFT')
                 ->where($where)->order($po.'.createtime desc')->find();

+ 4 - 1
application/api/controller/company/Preorder.php

@@ -3,6 +3,7 @@
 namespace app\api\controller\company;
 
 use app\common\controller\Apic;
+use app\common\service\UserService;
 use think\Db;
 
 /**
@@ -31,7 +32,9 @@ class Preorder extends Apic
     public function cancel(){
         $id = input('pre_order_id',0);
         $cancel_reason = input('cancel_reason','');
-
+        $userService = new UserService();
+        $params['pre_order_id'] = $id;
+        $preOrderRes = $userService->msgPreOrder($params);
         $update = [
             'cancel_reason' => $cancel_reason,
             'cancel_time'   => time(),

+ 1 - 0
application/common/service/OrderService.php

@@ -150,6 +150,7 @@ class OrderService
             }
             $resData['order_id'] = isset($orderRes['data']['order_id']) ? $orderRes['data']['order_id'] : 0;
             $resData['pay_order_id'] = $payOrderId;
+            $resData['template_ids'] = config('param.wechat_template_ids');//微信消息模版ID
             $result['data'] = $resData;
         } catch (Exception $e) {
             $result['status'] = 0;

+ 41 - 15
application/common/service/UserService.php

@@ -95,10 +95,10 @@ class UserService
     }
 
     /**
-     * 微信消息发送
+     * 预约消息
      * @return void
      */
-    public function wechatMessageSend($params=[])
+    public function msgPreOrder($params=[])
     {
         $result = [
             'status' => 1,
@@ -122,29 +122,55 @@ class UserService
             if (empty($preOrder)) {
                 throw new Exception('未找到预约信息');
             }
-            $client = new Client();
-            $tk = getAccessToken();
+            $wechatTemplate = config('param.wechat_template');
+            $preOrderMsg = isset($wechatTemplate['pre_order']) ? $wechatTemplate['pre_order'] : [];
             /*预约日期 {{time1.DATA}}
               场地{{thing8.DATA}}
               预约类型{{thing7.DATA}}
               顾客称号{{thing3.DATA}}*/
-            $uri = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$tk;
-            $openId = $preOrder['mini_openid'];
-            $wechatTemplate = config('param.wechat_template');
-            $preOrderMsg = isset($wechatTemplate['pre_order']) ? $wechatTemplate['pre_order'] : [];
             $data = [//数据内容
                 "time1"  => ["value" => date('Y年m月d日 H:i:s',$preOrder['pre_time'])],
-                "thing8" => ["value" => $preOrder['company_name']],
+                "thing8" => ["value" => $preOrder['company_name'] .'的预约'.$preOrder['pre_order_status_text']],
                 "thing7" => ["value" => $preOrder['service_title']],
                 "thing3" => ["value" => $preOrder['name']],
             ];
+            $paramsData = $preOrderMsg;
+            $paramsData['mini_openid'] = $preOrder['mini_openid'];
+            $paramsData['data'] = $data;
+            $msgRes = $this->wechatMessageSend($paramsData);
+            if (!$msgRes['status']) {
+                throw new Exception($msgRes['msg']);
+            }
+        } catch (Exception $e) {
+            $result['status'] = 0;
+            $result['msg'] = $e->getMessage();
+        }
+        return $result;
+    }
+
+    /**
+     * 微信消息发送
+     * @return void
+     */
+    public function wechatMessageSend($params=[])
+    {
+        $result = [
+            'status' => 1,
+            'msg' => '操作成功',
+            'data' => [],
+        ];
+        try {
+            $client = new Client();
+            $tk = getAccessToken();
+            $uri = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$tk;
+
             $jsonData = [
-                "touser"            => $openId,                          //openid
-                "template_id"       => $preOrderMsg['template_id'],      //模版ID
-                "page"              => $preOrderMsg['page'],             //跳转地址
-                "miniprogram_state" => $preOrderMsg['miniprogram_state'],//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
-                "lang"              => $preOrderMsg['lang'],             //支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
-                "data"              => $data,                            //数据
+                "touser"            => isset($params['mini_openid']) ? $params['mini_openid'] : '',                          //openid
+                "template_id"       => isset($params['template_id']) ? $params['template_id'] : '',      //模版ID
+                "page"              => isset($params['page']) ? $params['page'] : '',             //跳转地址
+                "miniprogram_state" => isset($params['miniprogram_state']) ? $params['miniprogram_state'] : '',//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
+                "lang"              => isset($params['lang']) ? $params['lang'] : '',             //支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
+                "data"              => isset($params['data']) ? $params['data'] : [],                            //数据
             ];
             $res = $client->request('POST', $uri, ['json' => $jsonData]);
             $returnResJson = $res->getBody()->getContents();

+ 12 - 1
application/extra/param.php

@@ -1,7 +1,7 @@
 <?php
 
 return [
-    //微信消息模版
+    //微信消息模版 (注:模版ID需要写到下面消息模版ID参数中)
     'wechat_template' => [
         'pre_order' => [  //预约模版
             'template_id'       => 'are5ILn3yVsSo1mgDmvrsruFSFDZ599Qf7j4BRf8TIU',//模版ID
@@ -9,6 +9,17 @@ return [
             'miniprogram_state' => 'trial',//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
             'lang'              => 'zh_CN',//支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
         ],
+        'order' => [  //订单模版
+            'template_id'       => 'tMSenoMJundYGJHx6JyotRepbN8d80whfobs_EvS_lY',//模版ID
+            'page'              => 'page/home/index',//跳转地址
+            'miniprogram_state' => 'trial',//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
+            'lang'              => 'zh_CN',//支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
+        ],
+    ],
+    //微信消息模版ID
+    'wechat_template_ids' => [
+        'are5ILn3yVsSo1mgDmvrsruFSFDZ599Qf7j4BRf8TIU',
+        'tMSenoMJundYGJHx6JyotRepbN8d80whfobs_EvS_lY',
     ],
     'pay_test' => 1,//支付测试  1=测试,0正常
 ];