Browse Source

商家端短信方法

zhangxiaobin 1 year ago
parent
commit
bc8786a591

+ 1 - 0
application/api/controller/PreOrder.php

@@ -4,6 +4,7 @@ namespace app\api\controller;
 
 use app\common\controller\Api;
 use app\common\service\PreOrderService;
+use app\common\service\SmsService;
 use app\common\service\UserService;
 use think\Db;
 use think\Exception;

+ 19 - 0
application/common/model/CompanyStaff.php

@@ -17,4 +17,23 @@ class CompanyStaff extends Model
     {
         return $this->hasOne('Company', 'id', 'company_id',[],'LEFT');
     }
+
+    /**
+     * 获取员工列表
+     * @param $params
+     * @return array|bool|\PDOStatement|string|\think\Collection
+     */
+    public static function getStaffList($params=[])
+    {
+        $companyId = isset($params['company_id']) ? $params['company_id'] : 0;
+        $type = isset($params['type']) ? $params['type'] : 0;
+        $company = [];
+        if (!empty($companyId)) {
+            $field = 'id,truename,mobile';
+            !empty($type) && $where['type'] = $type;
+            $where['company_id'] = $companyId;
+            $company = self::field($field)->where($where)->select();
+        }
+        return $company;
+    }
 }

+ 100 - 0
application/common/service/SmsService.php

@@ -3,8 +3,10 @@
 namespace app\common\service;
 
 use app\common\library\Alisms;
+use app\common\model\CompanyStaff;
 use think\Db;
 use think\Exception;
+use think\Log;
 
 class SmsService
 {
@@ -108,4 +110,102 @@ class SmsService
         }
         return $result;
     }
+
+    /**
+     * 预约通知商家
+     * @return void
+     */
+    public function preOrderToShop($params=[])
+    {
+        $result = [
+            'status' => 1,
+            'msg' => '操作成功',
+            'data' => [],
+        ];
+        try {
+            $companyId  = isset($params['company_id']) ? $params['company_id'] : 0;
+            $preOrderId = isset($params['id']) ? $params['id'] : 0;
+
+            $templatePreorder = config('ali_sms_template');
+            $template = isset($templatePreorder['order_to_c']) ? $templatePreorder['order_to_c'] : '';
+            if (!empty($template)) {
+                //商家店长
+                $companyStaffParams = ['type'=>1,'company_id'=>$companyId];
+                $companyStaff = CompanyStaff::getStaffList($companyStaffParams);
+                $mobile = isset($companyStaff[0]) ? $companyStaff[0]['mobile'] : '';
+                //预约信息
+                $preOrderWhere['id'] = $preOrderId;
+                $preOrder = model('PreOrder')->where($preOrderWhere)->find();
+                $name = isset($preOrder['name']) ? $preOrder['name'] : '';
+                $orderNo = isset($preOrder['pre_order_no']) ? $preOrder['pre_order_no'] : '';
+                $preTime = !empty($preOrder['pre_time']) ? date('Y-m-d H:i:s',$preOrder['pre_time']) : '';
+                $params = [
+                    'template'    => $template,//短息模版
+                    'mobile'      => $mobile,  //手机号
+                    'data_params' => [
+                        'name'    => $name,     //联系人
+                        'order_no' => $orderNo, //单号
+                        'time'    => date('Y-m-d H:i:s',$preTime),//预约时间
+                    ],//短信参数
+                ];
+                $smsRes = $this->send($params);
+                if (!$smsRes['status']) {
+                    Log::error('预约通知商家短信发送失败:params:'.json_encode($params));
+                }
+            }
+        } catch (Exception $e) {
+            $result['status'] = 0;
+            $result['msg'] = $e->getMessage();
+        }
+        return $result;
+    }
+
+    /**
+     * 订单通知商家
+     * @return void
+     */
+    public function orderToShop($params=[])
+    {
+        $result = [
+            'status' => 1,
+            'msg' => '操作成功',
+            'data' => [],
+        ];
+        try {
+            $companyId  = isset($params['company_id']) ? $params['company_id'] : 0;
+            $orderId = isset($params['id']) ? $params['id'] : 0;
+
+            $templatePreorder = config('ali_sms_template');
+            $template = isset($templatePreorder['order_to_c']) ? $templatePreorder['order_to_c'] : '';
+            if (!empty($template)) {
+                //商家店长
+                $companyStaffParams = ['type'=>1,'company_id'=>$companyId];
+                $companyStaff = CompanyStaff::getStaffList($companyStaffParams);
+                $mobile = isset($companyStaff[0]) ? $companyStaff[0]['mobile'] : '';
+                //预约信息
+                $preOrderWhere['id'] = $orderId;
+                $preOrder = model('Order')->where($preOrderWhere)->find();
+                $name = isset($preOrder['user_name']) ? $preOrder['user_name'] : '';
+                $orderNo = isset($preOrder['orderno']) ? $preOrder['orderno'] : '';
+                $orderTime = !empty($preOrder['createtime']) ? date('Y-m-d H:i:s',$preOrder['createtime']) : '';
+                $params = [
+                    'template'    => $template,//短息模版
+                    'mobile'      => $mobile,  //手机号
+                    'data_params' => [
+                        'name'    => $name,     //联系人
+                        'order_no' => $orderNo,//单号
+                        'time'    => date('Y-m-d H:i:s',$orderTime),//时间
+                    ],//短信参数
+                ];
+                $smsRes = $this->send($params);
+                if (!$smsRes['status']) {
+                    Log::error('预约通知商家短信发送失败:params:'.json_encode($params));
+                }
+            }
+        } catch (Exception $e) {
+            $result['status'] = 0;
+            $result['msg'] = $e->getMessage();
+        }
+        return $result;
+    }
 }

+ 1 - 0
application/config.php

@@ -334,5 +334,6 @@ return [
     'ali_sms_template' => [
         'pro_order_u'    => 'SMS_461410697', //用户预约通知
         'service_expire' => 'SMS_461325805', //保养到期提醒用户
+        'order_to_c'     => '', //预约和购买套餐通知商家
     ],
 ];