From 49710a0dbb71bbe891e5ffb7442a2dc702b315f3 Mon Sep 17 00:00:00 2001 From: weigang Date: Fri, 30 Oct 2020 15:50:32 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/MiniSubscribeMsgController.php | 26 ++++++++++ app/Model/v3/SubscribeMessageTemplate.php | 22 ++++++++ .../v3/Implementations/MiniprogramService.php | 51 +++++++++++++++++++ .../MiniprogramServiceInterface.php | 18 +++++++ config/routes.php | 1 + 5 files changed, 118 insertions(+) create mode 100644 app/Controller/v3/MiniSubscribeMsgController.php create mode 100644 app/Model/v3/SubscribeMessageTemplate.php diff --git a/app/Controller/v3/MiniSubscribeMsgController.php b/app/Controller/v3/MiniSubscribeMsgController.php new file mode 100644 index 0000000..9fd4deb --- /dev/null +++ b/app/Controller/v3/MiniSubscribeMsgController.php @@ -0,0 +1,26 @@ +request->input('for_user_type'); + + $templates = $this->miniprogramService->getSubscribeMessageTempList($forUserType); + return $this->success(['templates' => $templates]); + } + +} \ No newline at end of file diff --git a/app/Model/v3/SubscribeMessageTemplate.php b/app/Model/v3/SubscribeMessageTemplate.php new file mode 100644 index 0000000..c83de8e --- /dev/null +++ b/app/Model/v3/SubscribeMessageTemplate.php @@ -0,0 +1,22 @@ +where([$this->getTable().'.is_active' => 1]); + }); + } + +} \ No newline at end of file diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index 4996a93..f9fd11f 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -6,6 +6,7 @@ use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; use App\Model\v3\Store; +use App\Model\v3\SubscribeMessageTemplate; use App\Model\v3\User; use App\Service\v3\Interfaces\MiniprogramServiceInterface; use EasyWeChat\Factory; @@ -209,4 +210,54 @@ class MiniprogramService implements MiniprogramServiceInterface $app->uniform_message->send($template); } + public function sendSubscribeMessage($openid, $template_id, $data, $page = '') + { + if (empty($openid) || empty($template_id) || empty($data)) { + return ; + } + + $app = Factory::miniProgram(config('wechat.applet')); + $app['guzzle_handler'] = CoroutineHandler::class; + + $msgData = [ + 'touser' => $openid, + 'template_id' => $template_id, + 'page' => $page, + 'miniprogram_state' => env('APP_ENV')=='prod' ? 'formal' : 'developer', + 'data' => $data + ]; + + return $app->subscribe_message->send($msgData); + } + + public function getSubscribeMessageTempList($forUserType) + { + + if ($forUserType == '') { + $app = Factory::miniProgram(config('wechat.applet')); + $app['guzzle_handler'] = CoroutineHandler::class; + $result = $app->subscribe_message->getTemplates()['data']; + + $res = []; + foreach ($result as $key => &$tmpl) { + $res[] = [ + 'template_id' => $tmpl['priTmplId'] ?? '', + 'title' => $tmpl['title'] ?? '', + ]; + } + + return $res; + + } else { + + $builder = SubscribeMessageTemplate::query()->select('pri_tmpl_id as template_id', 'title'); + if ($forUserType != 'all') { + $builder = $builder->where(['for_user_type' => $forUserType]); + } + return $builder->get()->toArray(); + + } + + } + } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php index 9112b83..0ae8ef1 100644 --- a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php +++ b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php @@ -38,4 +38,22 @@ interface MiniprogramServiceInterface * @return mixed */ public function sendTempMsg($openid, $template_id, $data, $redirect_url = '', $applet_config = ['appid' => '', 'pagepath' => '']); + + /** + * 发送小程序订阅消息 + * @param $openid + * @param $template_id + * @param $data + * @param string $page + * @return mixed + */ + public function sendSubscribeMessage($openid, $template_id, $data, $page = ''); + + /** + * 获取订阅消息模板 + * 为空时,从微信服务器获取全部,否则从本地服务器获取 + * @param $forUserType + * @return mixed + */ + public function getSubscribeMessageTempList($forUserType); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index fbb8832..205fa30 100644 --- a/config/routes.php +++ b/config/routes.php @@ -100,6 +100,7 @@ Router::addGroup('/v3/', function () { Router::post('home/market', 'App\Controller\v3\HomeController@marketInfo'); Router::post('location/addrSuggestion', 'App\Controller\v3\LocationController@addrSuggestion'); Router::post('userAddress/deliveryDistance', 'App\Controller\v3\UserAddressController@deliveryDistance'); + Router::post('subscribeMsg/getTemplates', 'App\Controller\v3\MiniSubscribeMsgController@getTemplates'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class]]); // 需要登录的路由 From 6b3db38b768d503f164a964c5352f511d7334c79 Mon Sep 17 00:00:00 2001 From: weigang Date: Fri, 30 Oct 2020 17:34:15 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E5=95=86=E6=88=B7=E5=8F=91=E9=80=81?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF=EF=BC=8C=E9=80=80=E6=AC=BE?= =?UTF-8?q?=EF=BC=8C=E4=B8=8B=E5=8D=95=EF=BC=8C=E5=BD=93=E9=9D=A2=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/JsonRpc/OrdersService.php | 13 ++++ app/Model/v3/Order.php | 6 ++ .../v3/Implementations/MiniprogramService.php | 73 +++++++++++++++++++ .../MiniprogramServiceInterface.php | 9 +++ 4 files changed, 101 insertions(+) diff --git a/app/JsonRpc/OrdersService.php b/app/JsonRpc/OrdersService.php index 47945e3..d5cef5d 100644 --- a/app/JsonRpc/OrdersService.php +++ b/app/JsonRpc/OrdersService.php @@ -10,7 +10,9 @@ use App\Exception\ErrorCodeException; use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; +use App\Model\v3\User; use App\Service\v3\Interfaces\FinancialRecordServiceInterface; +use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; use App\Service\v3\Interfaces\SeparateAccountsServiceInterface; use EasyWeChat\Factory; @@ -56,6 +58,12 @@ class OrdersService implements OrdersServiceInterface */ protected $badgeService; + /** + * @Inject + * @var MiniprogramServiceInterface + */ + protected $miniprogramService; + /** * 订单完成 * @param $global_order_id @@ -309,11 +317,16 @@ class OrdersService implements OrdersServiceInterface // 计算本次退款实际退款金额 $refundStoreAmount = bcsub($order->money, $couponMoney, 2); $this->financialRecordService->storeRefundDirect($order->store->user_id, $order->id, $refundStoreAmount); + + $this->miniprogramService->subscribeMsgForSingleRefund($order->id, $refundStoreAmount); } } elseif ($refundType == 'sub'||$refundType == 'goods') { # 退子订单或者退单品的话,商户只有一个 $orderChildren = Order::query()->with('store:user_id')->where(['id' => $order_child_id])->get(); $this->financialRecordService->storeRefundDirect($orderChild->store->user_id, $orderChild->id, $refundAmount); + + $orderGoodsId = $order_goods_id ?? ''; + $this->miniprogramService->subscribeMsgForSingleRefund($order_child_id, $refundAmount, $orderGoodsId); } $this->financialRecordService->userRefundDirect($orderMain->user_id, $orderMain->global_order_id, $refundAmount); diff --git a/app/Model/v3/Order.php b/app/Model/v3/Order.php index 44eae8e..4b89015 100644 --- a/app/Model/v3/Order.php +++ b/app/Model/v3/Order.php @@ -10,6 +10,7 @@ class Order extends Model protected $appends = [ 'created_at_text', + 'updated_at_text', ]; protected $fillable = [ @@ -34,6 +35,11 @@ class Order extends Model return date('Y-m-d H:i:s', $this->attributes['created_at']); } + public function getUpdatedAtTextAttribute() + { + return date('Y-m-d H:i:s', $this->attributes['updated_at']); + } + public function orderGoods() { return $this->hasMany(OrderGoods::class, 'order_id', 'id'); diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index f9fd11f..56ebcd4 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -2,6 +2,7 @@ namespace App\Service\v3\Implementations; +use App\Constants\v3\Payment; use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; @@ -71,6 +72,23 @@ class MiniprogramService implements MiniprogramServiceInterface ]; $ret_store = $this->sendTempMsg($store['openid'], '-M7DG_ACwJxqdAvyvJuAnPpx4xaLf3VkkN0fckno71c',$data_store); + + // 小程序订阅消息发给商户 + // 支付金额:{{amount1.DATA}}\n订单编号:{{character_string2.DATA}}\n支付时间:{{date3.DATA}}\n商品详情:{{thing4.DATA}}\n备注:{{thing7.DATA}}\n + $tmplId = 'UfCON4Dj_7aH_Q5k_HvDgzUb3gu67TokPITsJuvCMxc'; + $page = 'pages/shopOrders/shopOrders?status=paid&store_id='.$store['id']; + $this->sendSubscribeMessage( + $store['openid'], + $tmplId, + [ + 'amount1' => $item->money, + 'character_string2' => $item->order_num, + 'date3' => $item->created_at_text??'', + 'thing4' => implode(";", $goods_temp_all), + 'thing7' => $item->note, + ], + $page + ); } // 模板数据发送消息给用户 @@ -98,6 +116,9 @@ class MiniprogramService implements MiniprogramServiceInterface public function sendTemMsgForOfflineOrder($globalOrderId) { + // 主订单信息 + $orderMain = OrderMain::query()->where(['global_order_id' => $globalOrderId])->first(); + // 查询子订单,用于发消息给商户 $order_children = Order::query() ->where(['order_main_id' => $globalOrderId]) @@ -126,6 +147,23 @@ class MiniprogramService implements MiniprogramServiceInterface ]; $ret_store = $this->sendTempMsg($store['openid'], 'lxVbC6PVpKbiO44bYqLmacl-BaME70D47Q0jn2Link0',$data_store); + + // 小程序订阅消息发给商户 + // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n + $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; + $page = 'pages/faceOrderList/faceOrderList?store_id='.$store['id']; + $this->sendSubscribeMessage( + $store['openid'], + $tmplId, + [ + 'amount1' => $item['money'], + 'thing2' => $store['name'], + 'thing3' => Payment::getMessage($orderMain->pay_type), + 'character_string4' => $item['order_num'], + 'time5' => $item['created_at_text']??'', + ], + $page + ); } } @@ -150,6 +188,41 @@ class MiniprogramService implements MiniprogramServiceInterface $ret_user = $this->sendTempMsg($openid,'ypZ7xdHUjWrRG8P-MD42dhpp6kUlh4Unoh7eTSrLZEg', $data_user); } + /** + * @inheritDoc + */ + public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = '') + { + + $order = Order::query()->where(['id' => $orderId])->first(); + $store = Store::query()->where(['id' => $order->store_id])->first(); + $storeOpenid = User::query()->where(['id' => $store->user_id])->value('openid'); + + $goodsInfo = []; + if ($orderGoodsId) { + $goodsInfo = OrderGoods::query()->where(['id' => $orderGoodsId])->pluck('name')->toArray(); + } else { + $goodsInfo = OrderGoods::query()->where(['order_id' => $orderId])->pluck('name')->toArray(); + } + + // 小程序订阅消息发给商户 + // 订单编号:{{character_string7.DATA}}\n商品名称:{{thing10.DATA}}\n退款金额:{{amount3.DATA}}\n处理时间:{{date4.DATA}}\n退款说明:{{thing5.DATA}}\n + $tmplId = 'OaWeg0q40NVW2WeO5BY1TFdWi4GsgIY1rFBwo2wDa0g'; + $page = 'pages/shopOrders/shopOrders?status=refund&store_id='.$store->id; + $this->sendSubscribeMessage( + $storeOpenid, + $tmplId, + [ + 'character_string7' => $order->order_num, + 'thing10' => implode(';', $goodsInfo), + 'amount3' => $refundStoreAmount, + 'date4' => $order->updated_at_text ?? '', + 'thing5' => $order->refund_note, + ], + $page + ); + } + /** * @inheritDoc */ diff --git a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php index 0ae8ef1..d9073ef 100644 --- a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php +++ b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php @@ -28,6 +28,15 @@ interface MiniprogramServiceInterface */ public function sendTemMsgForAward($money, $note, $openid, $time); + /** + * 直接退款时订阅消息通知商户 + * @param $orderId + * @param $refundStoreAmount + * @param $orderGoodsId + * @return mixed + */ + public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = ''); + /** * 发送模板消息 * @param $openid From 7dc7031afa57a2c06fc0040f95a2c877014f3542 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 2 Nov 2020 11:59:02 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E9=85=8D=E9=80=81=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Constants/v3/Employee.php | 19 ++++ app/Controller/v3/HomeController.php | 11 +++ app/JsonRpc/OrdersService.php | 27 ++++++ app/Model/v3/Employees.php | 34 +++++++ app/Model/v3/OrderMain.php | 1 + .../v3/Implementations/MiniprogramService.php | 88 ++++++++++++++++++- .../v3/Implementations/OrderOnlineService.php | 2 + .../MiniprogramServiceInterface.php | 7 ++ 8 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 app/Constants/v3/Employee.php diff --git a/app/Constants/v3/Employee.php b/app/Constants/v3/Employee.php new file mode 100644 index 0000000..959f11f --- /dev/null +++ b/app/Constants/v3/Employee.php @@ -0,0 +1,19 @@ +miniprogramService->subscribeMsgForDeliveryStart(180633468956848128); + return; + $marketId = $this->request->input('market_id', -1); $version = $this->request->input('version', -1); $banners = $this->bannerService->all(Banner::TYPE_APPLET_INDEX, $marketId); diff --git a/app/JsonRpc/OrdersService.php b/app/JsonRpc/OrdersService.php index d5cef5d..a5a0322 100644 --- a/app/JsonRpc/OrdersService.php +++ b/app/JsonRpc/OrdersService.php @@ -355,4 +355,31 @@ class OrdersService implements OrdersServiceInterface } } + + /** + * 配送开始的时候,管理后台点击配送并分配配送员 + * 做一些处理: + * 1、发送订阅消息给用户 + * 2、发送订阅消息给骑手 + * @param $global_order_id + */ + public function onlineDeliveryStart($global_order_id) + { + try { + $this->miniprogramService->subscribeMsgForDeliveryStart($global_order_id); + return [ + "status" => 200, + "code" => 0, + "result" => [], + "message" => '处理成功' + ]; + } catch (\Exception $e) { + return [ + "status" => 200, + "code" => $e->getCode(), + "result" => [], + "message" => $e->getMessage() + ]; + } + } } \ No newline at end of file diff --git a/app/Model/v3/Employees.php b/app/Model/v3/Employees.php index feae515..5302485 100644 --- a/app/Model/v3/Employees.php +++ b/app/Model/v3/Employees.php @@ -6,6 +6,40 @@ use App\Model\Model; use Hyperf\Database\Model\Builder; class Employees extends Model { + + protected $positions = [ + 1=>'董事长', + 2=>'总经理', + 3=>'人力资源总监', + 4=>'CTO', + 5=>'财务经理', + 6=>'运营总监', + 7=>'招商总监', + 8=>'PHP研发主管', + 9=>'迁江智慧商城主管', + 10=>'拓展部主管', + 11=>'拓展部副主管', + 12=>'拓展部经理', + 13=>'运维部经理', + 14=>'产品主管', + 15=>'策划经理', + 16=>'运维部副经理', + 17=>'新媒体运营', + 18=>'平面设计师', + 19=>'UI设计师', + 20=>'前端开发工程师', + 21=>'PHP研发工程师', + 22=>'测试工程师', + 23=>'招商经理', + 24=>'服务站管理员', + 25=>'运维专员', + 26=>'拓展经理', + 27=>'行政助理', + 28=>'出纳', + 29=>'骑手', + 30=>'服务专员', + ]; + protected $table = 'lanzu_employees'; protected $casts = [ diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index d08009a..1e76dac 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -53,6 +53,7 @@ class OrderMain extends Model protected $appends = [ 'created_at_text', + 'updated_at_text', 'state_text', 'pay_time_text', 'pay_type_text', diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index 56ebcd4..b3a4e1c 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -2,7 +2,10 @@ namespace App\Service\v3\Implementations; +use App\Commons\Log; +use App\Constants\v3\Employee; use App\Constants\v3\Payment; +use App\Model\v3\Employees; use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; @@ -12,10 +15,17 @@ use App\Model\v3\User; use App\Service\v3\Interfaces\MiniprogramServiceInterface; use EasyWeChat\Factory; use Hyperf\Guzzle\CoroutineHandler; +use Hyperf\Di\Annotation\Inject; class MiniprogramService implements MiniprogramServiceInterface { + /** + * @Inject + * @var Log + */ + protected $log; + /** * @inheritDoc */ @@ -152,7 +162,7 @@ class MiniprogramService implements MiniprogramServiceInterface // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; $page = 'pages/faceOrderList/faceOrderList?store_id='.$store['id']; - $this->sendSubscribeMessage( + $res = $this->sendSubscribeMessage( $store['openid'], $tmplId, [ @@ -223,6 +233,62 @@ class MiniprogramService implements MiniprogramServiceInterface ); } + /** + * @inheritDoc + */ + public function subscribeMsgForDeliveryStart($globalOrderId) + { + // 主订单信息 + $orderMain = OrderMain::query()->where(['global_order_id' => $globalOrderId])->first(); + if (!$orderMain) { + return false; + } + + // 订单商品 + $orderIds = Order::query()->where(['order_main_id' => $globalOrderId])->pluck('id'); + $goodsInfo = OrderGoods::query()->whereIn('order_id', $orderIds)->pluck('name'); + + // 骑手信息 + $horseman = Employees::query()->where(['id' => $orderMain->horseman_id, 'type' => Employee::TYPE_HORSEMAN])->first(); + + // 发送给用户的 + // 订单编号:{{character_string6.DATA}}\n商品名称:{{thing8.DATA}}\n骑手信息:{{thing7.DATA}}\n送出时间:{{date3.DATA}}\n温馨提示:{{thing4.DATA}}\n + $userTmplId = 'jZMTjlflXrAO7bPk5Lq_rFjol9Yuq5i4czwwrJbteqk'; + $userPage = 'pages/orderDetail/orderDetail?global_order_id=' . $globalOrderId; + $userOpenid = User::query()->where(['id' => $orderMain->user_id])->value('openid'); + $this->sendSubscribeMessage( + $userOpenid, + $userTmplId, + [ + 'character_string6' => $orderMain->global_order_id, + 'thing8' => implode(';', $goodsInfo), + 'thing7' => $horseman->name.'(电话:'.$horseman->tel.')', + 'date3' => $orderMain->updated_at_text ?? '', + 'thing4' => '懒族骑手已经拿到您订单货品,马上开始配送,请您耐心等待,您可以点击订单详情查看,感谢使用!', + ], + $userPage + ); + + // 发送给骑手的 + // 订单编号:{{character_string1.DATA}}\n商品信息:{{thing8.DATA}}\n收货地址:{{thing9.DATA}}\n预约时间:{{time17.DATA}}\n温馨提示:{{thing11.DATA}}\n + $horsemanTmplId = '6gxjnBZ4bLnaMC0g8wRaP46jGUZU7YqfYb1FPpJVr50'; + $horsemanPage = 'pages/deliverymanOrdersDetail/deliverymanOrdersDetail?global_order_id=' . $globalOrderId . '&employees_id=' . $horseman->id; + $horsemanOpenid = User::query()->where(['id' => $horseman->user_id])->value('openid'); + $this->sendSubscribeMessage( + $horsemanOpenid, + $horsemanTmplId, + [ + 'character_string1' => $orderMain->global_order_id, + 'thing8' => implode(';', $goodsInfo), + 'thing9' => $orderMain->name . ' - ' . $orderMain->address . '(电话:'.$orderMain->tel.')', + 'time17' => $orderMain->delivery_time_note ?? '尽快送达', + 'thing4' => '后台已经派发此订单给您,请注意及时取货配送,您可以点击订单详情查看,辛苦了!', + ], + $horsemanPage + ); + + } + /** * @inheritDoc */ @@ -280,7 +346,15 @@ class MiniprogramService implements MiniprogramServiceInterface $app = Factory::miniProgram(config('wechat.applet')); $app['guzzle_handler'] = CoroutineHandler::class; - $app->uniform_message->send($template); + $res = $app->uniform_message->send($template); + + if (!isset($res['errcode']) || $res['errcode'] != '0') { + + $backtrace = debug_backtrace(); + array_shift($backtrace); + + $this->log->event('template_message_error', ['from' => json_encode($backtrace), 'res' => json_encode($res), 'msg' => json_encode($template)]); + } } public function sendSubscribeMessage($openid, $template_id, $data, $page = '') @@ -300,7 +374,15 @@ class MiniprogramService implements MiniprogramServiceInterface 'data' => $data ]; - return $app->subscribe_message->send($msgData); + $res = $app->subscribe_message->send($msgData); + if (!isset($res['errcode']) || $res['errcode'] != '0') { + + $backtrace = debug_backtrace(); + array_shift($backtrace); + + $this->log->event('subscribe_message_error', ['from' => json_encode($backtrace), 'res' => json_encode($res), 'msg' => json_encode($msgData)]); + } + return $res; } public function getSubscribeMessageTempList($forUserType) diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 158d501..0a36d2b 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -753,6 +753,8 @@ class OrderOnlineService implements OrderOnlineServiceInterface $orderChildIds = Order::query()->where(['order_main_id' => $orderMain->global_order_id])->pluck('store_id'); $this->badgeService->doByOrder($orderMain->user_id, $orderChildIds, $orderMain->global_order_id, OrderState::COMPLETED); + // 发送小程序订阅消息给用户提示用户订单完成 + return true; } diff --git a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php index d9073ef..aa5c90c 100644 --- a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php +++ b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php @@ -37,6 +37,13 @@ interface MiniprogramServiceInterface */ public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = ''); + /** + * 订单开始配送订阅消息通知用户和骑手 + * @param $globalOrderId + * @return mixed + */ + public function subscribeMsgForDeliveryStart($globalOrderId); + /** * 发送模板消息 * @param $openid From bc0b4f15612ef69d483b31032c231346e76698d6 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 2 Nov 2020 11:59:58 +0800 Subject: [PATCH 04/15] no message --- app/Controller/v3/HomeController.php | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/Controller/v3/HomeController.php b/app/Controller/v3/HomeController.php index c3c9763..03281c6 100644 --- a/app/Controller/v3/HomeController.php +++ b/app/Controller/v3/HomeController.php @@ -22,7 +22,6 @@ use App\Service\v3\Interfaces\CategoryServiceInterface; use App\Service\v3\Interfaces\CollectStoreServiceInterface; use App\Service\v3\Interfaces\CouponRecServiceInterface; use App\Service\v3\Interfaces\FinancialRecordServiceInterface; -use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; use App\Service\v3\Interfaces\OrderStatisticsServiceInterface; use App\Service\v3\Interfaces\RevenueListServiceInterface; @@ -122,12 +121,6 @@ class HomeController extends BaseController */ protected $financialRecordService; - /** - * @Inject - * @var MiniprogramServiceInterface - */ - protected $miniprogramService; - /** * 小程序首页,根据market_id * 1.banner数据 @@ -137,10 +130,6 @@ class HomeController extends BaseController */ public function appletIndex() { - - $this->miniprogramService->subscribeMsgForDeliveryStart(180633468956848128); - return; - $marketId = $this->request->input('market_id', -1); $version = $this->request->input('version', -1); $banners = $this->bannerService->all(Banner::TYPE_APPLET_INDEX, $marketId); From ca3cea51305328c50cd63978e5e9d4b3b79e0e25 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 2 Nov 2020 13:21:54 +0800 Subject: [PATCH 05/15] no message --- app/Service/v3/Implementations/MiniprogramService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index b3a4e1c..e185d6f 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -249,7 +249,7 @@ class MiniprogramService implements MiniprogramServiceInterface $goodsInfo = OrderGoods::query()->whereIn('order_id', $orderIds)->pluck('name'); // 骑手信息 - $horseman = Employees::query()->where(['id' => $orderMain->horseman_id, 'type' => Employee::TYPE_HORSEMAN])->first(); + $horseman = Employees::query()->where(['id' => $orderMain->horseman_id])->whereJsonContains('positions', [(string)Employee::TYPE_HORSEMAN])->first(); // 发送给用户的 // 订单编号:{{character_string6.DATA}}\n商品名称:{{thing8.DATA}}\n骑手信息:{{thing7.DATA}}\n送出时间:{{date3.DATA}}\n温馨提示:{{thing4.DATA}}\n From c66272803623fd80fd7a906abb20aa9378b61004 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 2 Nov 2020 15:26:45 +0800 Subject: [PATCH 06/15] fixed bug --- app/Model/v3/OrderMain.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 1e76dac..fa61000 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -70,6 +70,11 @@ class OrderMain extends Model return date('Y-m-d H:i:s', $this->attributes['created_at']); } + public function getUpdatedAtTextAttribute() + { + return date('Y-m-d H:i:s', $this->attributes['updated_at']); + } + public function getPayTimeTextAttribute() { return date('Y-m-d H:i:s', $this->attributes['pay_time']); From 5d96a9bd97cfbfc33304a0f05a9c0b284858a459 Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 09:47:19 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/Implementations/MiniprogramService.php | 42 +++++++++++++++++-- .../v3/Implementations/OrderOnlineService.php | 19 +++++++-- .../MiniprogramServiceInterface.php | 9 ++++ 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index e185d6f..d98b4a6 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -95,7 +95,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'character_string2' => $item->order_num, 'date3' => $item->created_at_text??'', 'thing4' => implode(";", $goods_temp_all), - 'thing7' => $item->note, + 'thing7' => $item->note??'无备注', ], $page ); @@ -227,7 +227,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'thing10' => implode(';', $goodsInfo), 'amount3' => $refundStoreAmount, 'date4' => $order->updated_at_text ?? '', - 'thing5' => $order->refund_note, + 'thing5' => $order->refund_note ?? '退款', ], $page ); @@ -249,7 +249,7 @@ class MiniprogramService implements MiniprogramServiceInterface $goodsInfo = OrderGoods::query()->whereIn('order_id', $orderIds)->pluck('name'); // 骑手信息 - $horseman = Employees::query()->where(['id' => $orderMain->horseman_id])->whereJsonContains('positions', [(string)Employee::TYPE_HORSEMAN])->first(); + $horseman = Employees::query()->where(['id' => $orderMain->horseman_id])->whereJsonContains('position', [(string)Employee::TYPE_HORSEMAN])->first(); // 发送给用户的 // 订单编号:{{character_string6.DATA}}\n商品名称:{{thing8.DATA}}\n骑手信息:{{thing7.DATA}}\n送出时间:{{date3.DATA}}\n温馨提示:{{thing4.DATA}}\n @@ -289,6 +289,42 @@ class MiniprogramService implements MiniprogramServiceInterface } + /** + * @inheritDoc + */ + public function subscribeMsgForOrderComplete($orderMain) + { + + // 主订单信息 + if (!($orderMain instanceof OrderMain)) { + $orderMain = OrderMain::query()->where(['global_order_id' => $orderMain])->first(); + } + if (!$orderMain) { + return false; + } + + // 骑手信息 + $horseman = Employees::query()->where(['id' => $orderMain->horseman_id])->whereJsonContains('position', [(string)Employee::TYPE_HORSEMAN])->first(); + + // 发送小程序订阅消息给用户提示用户订单完成 + // 订单编号:{{character_string2.DATA}}\n订单金额:{{amount5.DATA}}\n配送地址:{{thing3.DATA}}\n配送人员:{{thing4.DATA}}\n送达时间:{{time6.DATA}}\n + $userTmplId = 'slYHfLTzKDGWRxnNLyJBr7sb__PEhh9OCrSBpMW_pdE'; + $userPage = 'pages/orderDetail/orderDetail?global_order_id=' . $orderMain->global_order_id; + $userOpenid = User::query()->where(['id' => $orderMain->user_id])->value('openid'); + $this->sendSubscribeMessage( + $userOpenid, + $userTmplId, + [ + 'character_string2' => $orderMain->global_order_id, + 'amount5' => $orderMain->money, + 'thing3' => $orderMain->name . ' - ' . $orderMain->address . '(电话:'.$orderMain->tel.')', + 'thing4' => $horseman->name.'(电话:'.$horseman->tel.')', + 'time6' => date('Y-m-d H:i:s', $orderMain->complete_time_text), + ], + $userPage + ); + } + /** * @inheritDoc */ diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 0a36d2b..4236c3d 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -3,6 +3,7 @@ namespace App\Service\v3\Implementations; use App\Commons\Log; +use App\Constants\v3\Employee; use App\Constants\v3\ErrorCode; use App\Constants\v3\LogLabel; use App\Constants\v3\OrderState; @@ -31,6 +32,7 @@ use App\Service\v3\Interfaces\GoodsActivityServiceInterface; use App\Service\v3\Interfaces\GoodsInventoryServiceInterface; use App\Service\v3\Interfaces\GoodsServiceInterface; use App\Service\v3\Interfaces\InitialDeliveryServiceInterface; +use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\PaymentServiceInterface; use App\Service\v3\Interfaces\ShopCartUpdateServiceInterface; use App\Service\v3\Interfaces\UserAddressServiceInterface; @@ -113,6 +115,12 @@ class OrderOnlineService implements OrderOnlineServiceInterface */ protected $goodsInventoryService; + /** + * @Inject + * @var MiniprogramServiceInterface + */ + protected $miniprogramService; + /** * 下单 * @param $marketId @@ -749,11 +757,14 @@ class OrderOnlineService implements OrderOnlineServiceInterface throw new ErrorCodeException(ErrorCode::ORDER_COMPLETE_FAIL); } - // 记录badge - $orderChildIds = Order::query()->where(['order_main_id' => $orderMain->global_order_id])->pluck('store_id'); - $this->badgeService->doByOrder($orderMain->user_id, $orderChildIds, $orderMain->global_order_id, OrderState::COMPLETED); + co(function () use ($orderMain) { + // 记录badge + $orderChildIds = Order::query()->where(['order_main_id' => $orderMain->global_order_id])->pluck('store_id'); + $this->badgeService->doByOrder($orderMain->user_id, $orderChildIds, $orderMain->global_order_id, OrderState::COMPLETED); - // 发送小程序订阅消息给用户提示用户订单完成 + // 发送订阅消息 + $this->miniprogramService->subscribeMsgForOrderComplete($orderMain); + }); return true; } diff --git a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php index aa5c90c..e78c329 100644 --- a/app/Service/v3/Interfaces/MiniprogramServiceInterface.php +++ b/app/Service/v3/Interfaces/MiniprogramServiceInterface.php @@ -2,6 +2,8 @@ namespace App\Service\v3\Interfaces; +use App\Model\v3\OrderMain; + interface MiniprogramServiceInterface { /** @@ -44,6 +46,13 @@ interface MiniprogramServiceInterface */ public function subscribeMsgForDeliveryStart($globalOrderId); + /** + * 订单完成发送订阅消息给用户 + * @param OrderMain|int|string $orderMain 模型实例或者globalOrderId + * @return mixed + */ + public function subscribeMsgForOrderComplete($orderMain); + /** * 发送模板消息 * @param $openid From fd4de906b06a47451518ecad964416c981cb529c Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 10:07:51 +0800 Subject: [PATCH 08/15] no message --- app/Service/v3/Implementations/MiniprogramService.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index d98b4a6..c6d0771 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -95,7 +95,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'character_string2' => $item->order_num, 'date3' => $item->created_at_text??'', 'thing4' => implode(";", $goods_temp_all), - 'thing7' => $item->note??'无备注', + 'thing7' => $item->note?:'无备注', ], $page ); @@ -227,7 +227,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'thing10' => implode(';', $goodsInfo), 'amount3' => $refundStoreAmount, 'date4' => $order->updated_at_text ?? '', - 'thing5' => $order->refund_note ?? '退款', + 'thing5' => $order->refund_note ?: '退款', ], $page ); From b6c5577af706abb0287bb925dca8de002b1713b3 Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 10:18:38 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E9=80=80=E6=AC=BE=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/JsonRpc/OrdersService.php | 6 +++--- app/Service/v3/Implementations/MiniprogramService.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/JsonRpc/OrdersService.php b/app/JsonRpc/OrdersService.php index a5a0322..0473a12 100644 --- a/app/JsonRpc/OrdersService.php +++ b/app/JsonRpc/OrdersService.php @@ -318,15 +318,15 @@ class OrdersService implements OrdersServiceInterface $refundStoreAmount = bcsub($order->money, $couponMoney, 2); $this->financialRecordService->storeRefundDirect($order->store->user_id, $order->id, $refundStoreAmount); - $this->miniprogramService->subscribeMsgForSingleRefund($order->id, $refundStoreAmount); + $this->miniprogramService->subscribeMsgForSingleRefund($order->id, $refundStoreAmount, '', $note); } } elseif ($refundType == 'sub'||$refundType == 'goods') { # 退子订单或者退单品的话,商户只有一个 $orderChildren = Order::query()->with('store:user_id')->where(['id' => $order_child_id])->get(); $this->financialRecordService->storeRefundDirect($orderChild->store->user_id, $orderChild->id, $refundAmount); - $orderGoodsId = $order_goods_id ?? ''; - $this->miniprogramService->subscribeMsgForSingleRefund($order_child_id, $refundAmount, $orderGoodsId); + $orderGoodsId = $order_goods_id ?: ''; + $this->miniprogramService->subscribeMsgForSingleRefund($order_child_id, $refundAmount, $orderGoodsId, $note); } $this->financialRecordService->userRefundDirect($orderMain->user_id, $orderMain->global_order_id, $refundAmount); diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index c6d0771..f3b147d 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -201,7 +201,7 @@ class MiniprogramService implements MiniprogramServiceInterface /** * @inheritDoc */ - public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = '') + public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = '', $note = '') { $order = Order::query()->where(['id' => $orderId])->first(); @@ -227,7 +227,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'thing10' => implode(';', $goodsInfo), 'amount3' => $refundStoreAmount, 'date4' => $order->updated_at_text ?? '', - 'thing5' => $order->refund_note ?: '退款', + 'thing5' => $note ?: '退款', ], $page ); From 10888bc3cb87dd05a7baf55bf7127e946eec84bd Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 10:58:36 +0800 Subject: [PATCH 10/15] no message --- app/Service/v3/Implementations/MiniprogramService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index f3b147d..a8074bd 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -264,7 +264,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'thing8' => implode(';', $goodsInfo), 'thing7' => $horseman->name.'(电话:'.$horseman->tel.')', 'date3' => $orderMain->updated_at_text ?? '', - 'thing4' => '懒族骑手已经拿到您订单货品,马上开始配送,请您耐心等待,您可以点击订单详情查看,感谢使用!', + 'thing4' => '骑手开始配送,请您耐心等待,感谢使用!', ], $userPage ); From 2b0a4801740d5e14cd651532d8bd7ece22236605 Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 12:13:01 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 8 ++- .../v3/Implementations/MiniprogramService.php | 55 +++++++++++-------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index fa61000..99ccb29 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -58,7 +58,8 @@ class OrderMain extends Model 'pay_time_text', 'pay_type_text', 'shipping_type_text', - 'complete_time_text' + 'complete_time_text', + 'delivery_time_text', ]; protected $casts = [ @@ -85,6 +86,11 @@ class OrderMain extends Model return date('Y-m-d H:i:s', $this->attributes['complete_time']); } + public function getDeliveryTimeTextAttribute() + { + return date('Y-m-d H:i:s', $this->attributes['delivery_time']); + } + public function getStateTextAttribute() { if ($this->attributes['state'] == OrderState::DELIVERY) { diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index a8074bd..db845bc 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -36,7 +36,7 @@ class MiniprogramService implements MiniprogramServiceInterface $order = OrderMain::query()->where(['global_order_id' => $globalOrderId])->first()->toArray(); $payTypes = ['1' => '微信支付', '2' => '余额支付', '3' => '积分支付', '4' => '货到付款']; - $address_store = $order['address'] . ';' .$order['name']. ';'. substr_replace($order['tel'],'****',3,4); + $address_store = $order['address'] . ';' .$order['name']. ';'. mb_substr_replace($order['tel'],'****',3,4); $address = $order['address'] . ';' .$order['name']. ';'. $order['tel']; // 查询子订单,用于发消息给商户 @@ -56,8 +56,8 @@ class MiniprogramService implements MiniprogramServiceInterface $goods_temp = []; foreach ($order_goods as $k => &$goods) { - array_push($goods_temp, $goods['name']."*".$goods['number']."/".($goods['goods_unit'])); - array_push($goods_temp_all, $goods['name']."*".$goods['number']."/".($goods['goods_unit'])); + array_push($goods_temp, $goods['name']."*".$goods['number']); + array_push($goods_temp_all, $goods['name']."*".$goods['number']); } // 商户/门店的openid @@ -93,9 +93,9 @@ class MiniprogramService implements MiniprogramServiceInterface [ 'amount1' => $item->money, 'character_string2' => $item->order_num, - 'date3' => $item->created_at_text??'', - 'thing4' => implode(";", $goods_temp_all), - 'thing7' => $item->note?:'无备注', + 'date3' => $item->created_at_text?:date('Y-m-d H:i:s'), + 'thing4' => mb_substr(implode(";", $goods_temp_all),0,18).'..', + 'thing7' => mb_substr(($item->note?:'无备注'), 0, 18).'..', ], $page ); @@ -167,10 +167,10 @@ class MiniprogramService implements MiniprogramServiceInterface $tmplId, [ 'amount1' => $item['money'], - 'thing2' => $store['name'], - 'thing3' => Payment::getMessage($orderMain->pay_type), + 'thing2' => mb_substr($store['name'], 0, 18).'..', + 'thing3' => mb_substr(Payment::getMessage($orderMain->pay_type), 0, 18).'..', 'character_string4' => $item['order_num'], - 'time5' => $item['created_at_text']??'', + 'time5' => $item['created_at_text']??date('Y-m-d H:i:s'), ], $page ); @@ -224,10 +224,10 @@ class MiniprogramService implements MiniprogramServiceInterface $tmplId, [ 'character_string7' => $order->order_num, - 'thing10' => implode(';', $goodsInfo), + 'thing10' => mb_substr(implode(';', $goodsInfo),0,18).'..', 'amount3' => $refundStoreAmount, - 'date4' => $order->updated_at_text ?? '', - 'thing5' => $note ?: '退款', + 'date4' => $order->updated_at_text ?? date('Y-m-d H:i:s'), + 'thing5' => mb_substr($note ?: '退款', 0, 18).'..', ], $page ); @@ -245,8 +245,8 @@ class MiniprogramService implements MiniprogramServiceInterface } // 订单商品 - $orderIds = Order::query()->where(['order_main_id' => $globalOrderId])->pluck('id'); - $goodsInfo = OrderGoods::query()->whereIn('order_id', $orderIds)->pluck('name'); + $orderIds = Order::query()->where(['order_main_id' => $globalOrderId])->pluck('id')->toArray(); + $goodsInfo = OrderGoods::query()->whereIn('order_id', $orderIds)->pluck('name')->toArray(); // 骑手信息 $horseman = Employees::query()->where(['id' => $orderMain->horseman_id])->whereJsonContains('position', [(string)Employee::TYPE_HORSEMAN])->first(); @@ -261,8 +261,8 @@ class MiniprogramService implements MiniprogramServiceInterface $userTmplId, [ 'character_string6' => $orderMain->global_order_id, - 'thing8' => implode(';', $goodsInfo), - 'thing7' => $horseman->name.'(电话:'.$horseman->tel.')', + 'thing8' => mb_substr(implode(';', $goodsInfo), 0, 18).'..', + 'thing7' => mb_substr(($horseman->name.'|电话'.$horseman->tel), 0, 18).'..', 'date3' => $orderMain->updated_at_text ?? '', 'thing4' => '骑手开始配送,请您耐心等待,感谢使用!', ], @@ -274,15 +274,24 @@ class MiniprogramService implements MiniprogramServiceInterface $horsemanTmplId = '6gxjnBZ4bLnaMC0g8wRaP46jGUZU7YqfYb1FPpJVr50'; $horsemanPage = 'pages/deliverymanOrdersDetail/deliverymanOrdersDetail?global_order_id=' . $globalOrderId . '&employees_id=' . $horseman->id; $horsemanOpenid = User::query()->where(['id' => $horseman->user_id])->value('openid'); + $deliveryNote = $orderMain->delivery_start_time ? date('Y-m-d H:i:s', $orderMain->delivery_start_time+1800) : date('Y-m-d H:i:s', time()+1800); + + if (strpos($orderMain->delivery_time_note, ' - ') !== false) { + $arr = explode(' - ', $orderMain->delivery_time_note); + if (is_array($arr) && isset($arr[0]) && $arr[0]) { + $deliveryNote = date('Y-m-d').' '.$orderMain->delivery_time_note.':00'; + } + } + $this->sendSubscribeMessage( $horsemanOpenid, $horsemanTmplId, [ 'character_string1' => $orderMain->global_order_id, - 'thing8' => implode(';', $goodsInfo), - 'thing9' => $orderMain->name . ' - ' . $orderMain->address . '(电话:'.$orderMain->tel.')', - 'time17' => $orderMain->delivery_time_note ?? '尽快送达', - 'thing4' => '后台已经派发此订单给您,请注意及时取货配送,您可以点击订单详情查看,辛苦了!', + 'thing8' => mb_substr(implode(';', $goodsInfo),0,18).'..', + 'thing9' => mb_substr(($orderMain->name.'|'.$orderMain->tel.'|'.$orderMain->address), 0, 18).'..', + 'time17' => $deliveryNote, + 'thing11' => '有新配送订单,请注意及时取货,辛苦了!', ], $horsemanPage ); @@ -317,9 +326,9 @@ class MiniprogramService implements MiniprogramServiceInterface [ 'character_string2' => $orderMain->global_order_id, 'amount5' => $orderMain->money, - 'thing3' => $orderMain->name . ' - ' . $orderMain->address . '(电话:'.$orderMain->tel.')', - 'thing4' => $horseman->name.'(电话:'.$horseman->tel.')', - 'time6' => date('Y-m-d H:i:s', $orderMain->complete_time_text), + 'thing3' => mb_substr(($orderMain->name.'|'.$orderMain->tel.'|'.$orderMain->address),0,18).'..', + 'thing4' => mb_substr($horseman->name.'|电话'.$horseman->tel, 0, 18).'..', + 'time6' => $orderMain->delivery_time_text?:date('Y-m-d H:i:s'), ], $userPage ); From 29a16c9df5b36b06fa0438633d439acde02ba628 Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 3 Nov 2020 15:58:54 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Envoy.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Envoy.blade.php b/Envoy.blade.php index 882d55e..45637c6 100644 --- a/Envoy.blade.php +++ b/Envoy.blade.php @@ -14,6 +14,7 @@ @if($composer == true) composer update --lock @endif + composer dump-autoload -o php bin/hyperf.php supervisorctl restart lanzu_api @endtask @@ -24,6 +25,7 @@ @if($composer == true) composer update --no-dev --lock @endif + composer dump-autoload -o php bin/hyperf.php supervisorctl restart lanzu_api @endtask From 52e5f9942fc4e368465bde2b3476357db37e356e Mon Sep 17 00:00:00 2001 From: weigang Date: Wed, 4 Nov 2020 14:35:06 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E8=AF=B7=E5=8B=BF=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HomeController.php | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/app/Controller/v3/HomeController.php b/app/Controller/v3/HomeController.php index 03281c6..baa7960 100644 --- a/app/Controller/v3/HomeController.php +++ b/app/Controller/v3/HomeController.php @@ -6,6 +6,7 @@ use App\Constants\v3\ActivityType; use App\Constants\v3\Banner; use App\Constants\v3\OrderState; use App\Constants\v3\OrderType; +use App\Constants\v3\Payment; use App\Constants\v3\SsdbKeys; use App\Constants\v3\Tabs; use App\Constants\v3\UserType; @@ -13,6 +14,7 @@ use App\Controller\BaseController; use App\Model\v3\FinancialRecord; use App\Model\v3\Market; use App\Model\v3\Store; +use App\Model\v3\User; use App\Request\v3\StoreIndexRequest; use App\Request\v3\UserIndexRequest; use App\Service\v3\Interfaces\ActivityServiceInterface; @@ -22,6 +24,7 @@ use App\Service\v3\Interfaces\CategoryServiceInterface; use App\Service\v3\Interfaces\CollectStoreServiceInterface; use App\Service\v3\Interfaces\CouponRecServiceInterface; use App\Service\v3\Interfaces\FinancialRecordServiceInterface; +use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; use App\Service\v3\Interfaces\OrderStatisticsServiceInterface; use App\Service\v3\Interfaces\RevenueListServiceInterface; @@ -121,6 +124,12 @@ class HomeController extends BaseController */ protected $financialRecordService; + /** + * @Inject + * @var MiniprogramServiceInterface + */ + protected $miniprogramService; + /** * 小程序首页,根据market_id * 1.banner数据 @@ -130,6 +139,64 @@ class HomeController extends BaseController */ public function appletIndex() { + + // 小程序订阅消息发给商户 + // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n + $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; + $page = 'pages/faceOrderList/faceOrderList?store_id=111'; + $res1 = $this->miniprogramService->sendSubscribeMessage( + 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', + $tmplId, + [ + 'amount1' => rand(1,20), + 'thing2' => '测试发送'.date('H:i:s'), + 'thing3' => '微信支付', + 'character_string4' => date('YmdHis'), + 'time5' => $item['created_at_text']??date('Y-m-d H:i:s'), + ], + $page + ); + + // 小程序订阅消息发给商户 + // 订单编号:{{character_string7.DATA}}\n商品名称:{{thing10.DATA}}\n退款金额:{{amount3.DATA}}\n处理时间:{{date4.DATA}}\n退款说明:{{thing5.DATA}}\n + $tmplId = 'OaWeg0q40NVW2WeO5BY1TFdWi4GsgIY1rFBwo2wDa0g'; + $page = 'pages/shopOrders/shopOrders?status=refund&store_id=111'; + $res2 = $this->miniprogramService->sendSubscribeMessage( + 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', + $tmplId, + [ + 'character_string7' => date('YmdHis'), + 'thing10' => '测试商品', + 'amount3' => '2.01', + 'date4' => date('Y-m-d H:i:s'), + 'thing5' => '退款', + ], + $page + ); + + // 小程序订阅消息发给商户 + // 支付金额:{{amount1.DATA}}\n订单编号:{{character_string2.DATA}}\n支付时间:{{date3.DATA}}\n商品详情:{{thing4.DATA}}\n备注:{{thing7.DATA}}\n + $tmplId = 'UfCON4Dj_7aH_Q5k_HvDgzUb3gu67TokPITsJuvCMxc'; + $page = 'pages/shopOrders/shopOrders?status=paid&store_id=111'; + $res3 = $this->miniprogramService->sendSubscribeMessage( + 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', + $tmplId, + [ + 'amount1' => rand(1,20), + 'character_string2' => date('YmdHis'), + 'date3' => date('Y-m-d H:i:s'), + 'thing4' => '测试商品', + 'thing7' => '无备注', + ], + $page + ); + + return $this->success([ + 'res1' => $res1, + 'res2' => $res2, + 'res3' => $res3, + ]); + $marketId = $this->request->input('market_id', -1); $version = $this->request->input('version', -1); $banners = $this->bannerService->all(Banner::TYPE_APPLET_INDEX, $marketId); From 6cedb3913ca3728cbdb088f7ec8ad39cac6c2fa4 Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 9 Nov 2020 11:56:28 +0800 Subject: [PATCH 14/15] =?UTF-8?q?Revert=20"=E6=B5=8B=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E8=AF=B7=E5=8B=BF=E5=90=88=E5=B9=B6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 52e5f9942fc4e368465bde2b3476357db37e356e. --- app/Controller/v3/HomeController.php | 67 ---------------------------- 1 file changed, 67 deletions(-) diff --git a/app/Controller/v3/HomeController.php b/app/Controller/v3/HomeController.php index baa7960..03281c6 100644 --- a/app/Controller/v3/HomeController.php +++ b/app/Controller/v3/HomeController.php @@ -6,7 +6,6 @@ use App\Constants\v3\ActivityType; use App\Constants\v3\Banner; use App\Constants\v3\OrderState; use App\Constants\v3\OrderType; -use App\Constants\v3\Payment; use App\Constants\v3\SsdbKeys; use App\Constants\v3\Tabs; use App\Constants\v3\UserType; @@ -14,7 +13,6 @@ use App\Controller\BaseController; use App\Model\v3\FinancialRecord; use App\Model\v3\Market; use App\Model\v3\Store; -use App\Model\v3\User; use App\Request\v3\StoreIndexRequest; use App\Request\v3\UserIndexRequest; use App\Service\v3\Interfaces\ActivityServiceInterface; @@ -24,7 +22,6 @@ use App\Service\v3\Interfaces\CategoryServiceInterface; use App\Service\v3\Interfaces\CollectStoreServiceInterface; use App\Service\v3\Interfaces\CouponRecServiceInterface; use App\Service\v3\Interfaces\FinancialRecordServiceInterface; -use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; use App\Service\v3\Interfaces\OrderStatisticsServiceInterface; use App\Service\v3\Interfaces\RevenueListServiceInterface; @@ -124,12 +121,6 @@ class HomeController extends BaseController */ protected $financialRecordService; - /** - * @Inject - * @var MiniprogramServiceInterface - */ - protected $miniprogramService; - /** * 小程序首页,根据market_id * 1.banner数据 @@ -139,64 +130,6 @@ class HomeController extends BaseController */ public function appletIndex() { - - // 小程序订阅消息发给商户 - // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n - $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; - $page = 'pages/faceOrderList/faceOrderList?store_id=111'; - $res1 = $this->miniprogramService->sendSubscribeMessage( - 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', - $tmplId, - [ - 'amount1' => rand(1,20), - 'thing2' => '测试发送'.date('H:i:s'), - 'thing3' => '微信支付', - 'character_string4' => date('YmdHis'), - 'time5' => $item['created_at_text']??date('Y-m-d H:i:s'), - ], - $page - ); - - // 小程序订阅消息发给商户 - // 订单编号:{{character_string7.DATA}}\n商品名称:{{thing10.DATA}}\n退款金额:{{amount3.DATA}}\n处理时间:{{date4.DATA}}\n退款说明:{{thing5.DATA}}\n - $tmplId = 'OaWeg0q40NVW2WeO5BY1TFdWi4GsgIY1rFBwo2wDa0g'; - $page = 'pages/shopOrders/shopOrders?status=refund&store_id=111'; - $res2 = $this->miniprogramService->sendSubscribeMessage( - 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', - $tmplId, - [ - 'character_string7' => date('YmdHis'), - 'thing10' => '测试商品', - 'amount3' => '2.01', - 'date4' => date('Y-m-d H:i:s'), - 'thing5' => '退款', - ], - $page - ); - - // 小程序订阅消息发给商户 - // 支付金额:{{amount1.DATA}}\n订单编号:{{character_string2.DATA}}\n支付时间:{{date3.DATA}}\n商品详情:{{thing4.DATA}}\n备注:{{thing7.DATA}}\n - $tmplId = 'UfCON4Dj_7aH_Q5k_HvDgzUb3gu67TokPITsJuvCMxc'; - $page = 'pages/shopOrders/shopOrders?status=paid&store_id=111'; - $res3 = $this->miniprogramService->sendSubscribeMessage( - 'ojbLs4sgoo1l6K8TQ_8HhUF6m_1s', - $tmplId, - [ - 'amount1' => rand(1,20), - 'character_string2' => date('YmdHis'), - 'date3' => date('Y-m-d H:i:s'), - 'thing4' => '测试商品', - 'thing7' => '无备注', - ], - $page - ); - - return $this->success([ - 'res1' => $res1, - 'res2' => $res2, - 'res3' => $res3, - ]); - $marketId = $this->request->input('market_id', -1); $version = $this->request->input('version', -1); $banners = $this->bannerService->all(Banner::TYPE_APPLET_INDEX, $marketId); From de6e645b5df7128c62e3919ab8af751efb6193be Mon Sep 17 00:00:00 2001 From: weigang Date: Mon, 9 Nov 2020 14:19:50 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=A2=E9=98=85=EF=BC=8C=E6=94=B9=E7=94=A8=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E7=9A=84=EF=BC=8C=E5=8F=AA=E5=8F=91=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/Implementations/MiniprogramService.php | 143 ++++++++++-------- 1 file changed, 77 insertions(+), 66 deletions(-) diff --git a/app/Service/v3/Implementations/MiniprogramService.php b/app/Service/v3/Implementations/MiniprogramService.php index db845bc..6acb62d 100644 --- a/app/Service/v3/Implementations/MiniprogramService.php +++ b/app/Service/v3/Implementations/MiniprogramService.php @@ -83,22 +83,22 @@ class MiniprogramService implements MiniprogramServiceInterface $ret_store = $this->sendTempMsg($store['openid'], '-M7DG_ACwJxqdAvyvJuAnPpx4xaLf3VkkN0fckno71c',$data_store); - // 小程序订阅消息发给商户 - // 支付金额:{{amount1.DATA}}\n订单编号:{{character_string2.DATA}}\n支付时间:{{date3.DATA}}\n商品详情:{{thing4.DATA}}\n备注:{{thing7.DATA}}\n - $tmplId = 'UfCON4Dj_7aH_Q5k_HvDgzUb3gu67TokPITsJuvCMxc'; - $page = 'pages/shopOrders/shopOrders?status=paid&store_id='.$store['id']; - $this->sendSubscribeMessage( - $store['openid'], - $tmplId, - [ - 'amount1' => $item->money, - 'character_string2' => $item->order_num, - 'date3' => $item->created_at_text?:date('Y-m-d H:i:s'), - 'thing4' => mb_substr(implode(";", $goods_temp_all),0,18).'..', - 'thing7' => mb_substr(($item->note?:'无备注'), 0, 18).'..', - ], - $page - ); + // // 小程序订阅消息发给商户 + // // 支付金额:{{amount1.DATA}}\n订单编号:{{character_string2.DATA}}\n支付时间:{{date3.DATA}}\n商品详情:{{thing4.DATA}}\n备注:{{thing7.DATA}}\n + // $tmplId = 'UfCON4Dj_7aH_Q5k_HvDgzUb3gu67TokPITsJuvCMxc'; + // $page = 'pages/shopOrders/shopOrders?status=paid&store_id='.$store['id']; + // $this->sendSubscribeMessage( + // $store['openid'], + // $tmplId, + // [ + // 'amount1' => $item->money, + // 'character_string2' => $item->order_num, + // 'date3' => $item->created_at_text?:date('Y-m-d H:i:s'), + // 'thing4' => mb_substr(implode(";", $goods_temp_all),0,18).'..', + // 'thing7' => mb_substr(($item->note?:'无备注'), 0, 18).'..', + // ], + // $page + // ); } // 模板数据发送消息给用户 @@ -158,22 +158,22 @@ class MiniprogramService implements MiniprogramServiceInterface $ret_store = $this->sendTempMsg($store['openid'], 'lxVbC6PVpKbiO44bYqLmacl-BaME70D47Q0jn2Link0',$data_store); - // 小程序订阅消息发给商户 - // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n - $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; - $page = 'pages/faceOrderList/faceOrderList?store_id='.$store['id']; - $res = $this->sendSubscribeMessage( - $store['openid'], - $tmplId, - [ - 'amount1' => $item['money'], - 'thing2' => mb_substr($store['name'], 0, 18).'..', - 'thing3' => mb_substr(Payment::getMessage($orderMain->pay_type), 0, 18).'..', - 'character_string4' => $item['order_num'], - 'time5' => $item['created_at_text']??date('Y-m-d H:i:s'), - ], - $page - ); + // // 小程序订阅消息发给商户 + // // 付款金额:{{amount1.DATA}}\n商户名称:{{thing2.DATA}}\n支付方式:{{thing3.DATA}}\n交易单号:{{character_string4.DATA}}\n交易时间:{{time5.DATA}}\n + // $tmplId = 'PCRNmKGb7t98xsz_GPux3rhXjsu68TPI3nXR7749dC0'; + // $page = 'pages/faceOrderList/faceOrderList?store_id='.$store['id']; + // $res = $this->sendSubscribeMessage( + // $store['openid'], + // $tmplId, + // [ + // 'amount1' => $item['money'], + // 'thing2' => mb_substr($store['name'], 0, 18).'..', + // 'thing3' => mb_substr(Payment::getMessage($orderMain->pay_type), 0, 18).'..', + // 'character_string4' => $item['order_num'], + // 'time5' => $item['created_at_text']??date('Y-m-d H:i:s'), + // ], + // $page + // ); } } @@ -203,6 +203,8 @@ class MiniprogramService implements MiniprogramServiceInterface */ public function subscribeMsgForSingleRefund($orderId, $refundStoreAmount, $orderGoodsId = '', $note = '') { + // TODO 暂时不发 + return; $order = Order::query()->where(['id' => $orderId])->first(); $store = Store::query()->where(['id' => $order->store_id])->first(); @@ -253,48 +255,53 @@ class MiniprogramService implements MiniprogramServiceInterface // 发送给用户的 // 订单编号:{{character_string6.DATA}}\n商品名称:{{thing8.DATA}}\n骑手信息:{{thing7.DATA}}\n送出时间:{{date3.DATA}}\n温馨提示:{{thing4.DATA}}\n - $userTmplId = 'jZMTjlflXrAO7bPk5Lq_rFjol9Yuq5i4czwwrJbteqk'; + $userTmplId = env('APP_ENV') == 'prod' ? '6E09Od5Ofy08C3qx3eJrOQiWT75uUwIxgG7ta2W75BQ' : 'jZMTjlflXrAO7bPk5Lq_rFjol9Yuq5i4czwwrJbteqk'; $userPage = 'pages/orderDetail/orderDetail?global_order_id=' . $globalOrderId; $userOpenid = User::query()->where(['id' => $orderMain->user_id])->value('openid'); + + $sendHorsemanInfo = $horseman->name.'|电话'.$horseman->tel; + $sendNote = '预计'.$orderMain->delivery_time_note.'送达,点击看订单详细信息哦!'; + $sendGoodsInfo = implode(';', $goodsInfo); + $this->sendSubscribeMessage( $userOpenid, $userTmplId, [ 'character_string6' => $orderMain->global_order_id, - 'thing8' => mb_substr(implode(';', $goodsInfo), 0, 18).'..', - 'thing7' => mb_substr(($horseman->name.'|电话'.$horseman->tel), 0, 18).'..', + 'thing8' => mb_strlen($sendGoodsInfo)>18 ? mb_substr($sendGoodsInfo, 0, 18).'..' : $sendGoodsInfo, + 'thing7' => mb_strlen($sendHorsemanInfo)>18 ? mb_substr($sendHorsemanInfo, 0, 18).'..' : $sendHorsemanInfo, 'date3' => $orderMain->updated_at_text ?? '', - 'thing4' => '骑手开始配送,请您耐心等待,感谢使用!', + 'thing4' => mb_strlen($sendNote)>18 ? mb_substr($sendNote, 0, 18).'..' : $sendNote, ], $userPage ); - // 发送给骑手的 - // 订单编号:{{character_string1.DATA}}\n商品信息:{{thing8.DATA}}\n收货地址:{{thing9.DATA}}\n预约时间:{{time17.DATA}}\n温馨提示:{{thing11.DATA}}\n - $horsemanTmplId = '6gxjnBZ4bLnaMC0g8wRaP46jGUZU7YqfYb1FPpJVr50'; - $horsemanPage = 'pages/deliverymanOrdersDetail/deliverymanOrdersDetail?global_order_id=' . $globalOrderId . '&employees_id=' . $horseman->id; - $horsemanOpenid = User::query()->where(['id' => $horseman->user_id])->value('openid'); - $deliveryNote = $orderMain->delivery_start_time ? date('Y-m-d H:i:s', $orderMain->delivery_start_time+1800) : date('Y-m-d H:i:s', time()+1800); - - if (strpos($orderMain->delivery_time_note, ' - ') !== false) { - $arr = explode(' - ', $orderMain->delivery_time_note); - if (is_array($arr) && isset($arr[0]) && $arr[0]) { - $deliveryNote = date('Y-m-d').' '.$orderMain->delivery_time_note.':00'; - } - } - - $this->sendSubscribeMessage( - $horsemanOpenid, - $horsemanTmplId, - [ - 'character_string1' => $orderMain->global_order_id, - 'thing8' => mb_substr(implode(';', $goodsInfo),0,18).'..', - 'thing9' => mb_substr(($orderMain->name.'|'.$orderMain->tel.'|'.$orderMain->address), 0, 18).'..', - 'time17' => $deliveryNote, - 'thing11' => '有新配送订单,请注意及时取货,辛苦了!', - ], - $horsemanPage - ); + // // 发送给骑手的 + // // 订单编号:{{character_string1.DATA}}\n商品信息:{{thing8.DATA}}\n收货地址:{{thing9.DATA}}\n预约时间:{{time17.DATA}}\n温馨提示:{{thing11.DATA}}\n + // $horsemanTmplId = '6gxjnBZ4bLnaMC0g8wRaP46jGUZU7YqfYb1FPpJVr50'; + // $horsemanPage = 'pages/deliverymanOrdersDetail/deliverymanOrdersDetail?global_order_id=' . $globalOrderId . '&employees_id=' . $horseman->id; + // $horsemanOpenid = User::query()->where(['id' => $horseman->user_id])->value('openid'); + // $deliveryNote = $orderMain->delivery_start_time ? date('Y-m-d H:i:s', $orderMain->delivery_start_time+1800) : date('Y-m-d H:i:s', time()+1800); + // + // if (strpos($orderMain->delivery_time_note, ' - ') !== false) { + // $arr = explode(' - ', $orderMain->delivery_time_note); + // if (is_array($arr) && isset($arr[0]) && $arr[0]) { + // $deliveryNote = date('Y-m-d').' '.$orderMain->delivery_time_note.':00'; + // } + // } + // + // $this->sendSubscribeMessage( + // $horsemanOpenid, + // $horsemanTmplId, + // [ + // 'character_string1' => $orderMain->global_order_id, + // 'thing8' => mb_substr(implode(';', $goodsInfo),0,18).'..', + // 'thing9' => mb_substr(($orderMain->name.'|'.$orderMain->tel.'|'.$orderMain->address), 0, 18).'..', + // 'time17' => $deliveryNote, + // 'thing11' => '有新配送订单,请注意及时取货,辛苦了!', + // ], + // $horsemanPage + // ); } @@ -317,17 +324,21 @@ class MiniprogramService implements MiniprogramServiceInterface // 发送小程序订阅消息给用户提示用户订单完成 // 订单编号:{{character_string2.DATA}}\n订单金额:{{amount5.DATA}}\n配送地址:{{thing3.DATA}}\n配送人员:{{thing4.DATA}}\n送达时间:{{time6.DATA}}\n - $userTmplId = 'slYHfLTzKDGWRxnNLyJBr7sb__PEhh9OCrSBpMW_pdE'; + $userTmplId = env('APP_ENV') == 'prod' ? 'r7NktOF1-DZwB-KXLcCI_PgFKmVi1onsClFmL6zQtLY' : 'slYHfLTzKDGWRxnNLyJBr7sb__PEhh9OCrSBpMW_pdE'; $userPage = 'pages/orderDetail/orderDetail?global_order_id=' . $orderMain->global_order_id; $userOpenid = User::query()->where(['id' => $orderMain->user_id])->value('openid'); + + $sendAddress = $orderMain->name.'|'.$orderMain->address.'|'.$orderMain->tel; + $sendHorseman = $horseman->name.'|'.$horseman->tel; + $this->sendSubscribeMessage( $userOpenid, $userTmplId, [ 'character_string2' => $orderMain->global_order_id, 'amount5' => $orderMain->money, - 'thing3' => mb_substr(($orderMain->name.'|'.$orderMain->tel.'|'.$orderMain->address),0,18).'..', - 'thing4' => mb_substr($horseman->name.'|电话'.$horseman->tel, 0, 18).'..', + 'thing3' => mb_strlen($sendAddress)>18 ? mb_substr($sendAddress,0,18).'..' : $sendAddress, + 'thing4' => mb_strlen($sendHorseman)>18 ? mb_substr($sendHorseman,0,18).'..' : $sendHorseman, 'time6' => $orderMain->delivery_time_text?:date('Y-m-d H:i:s'), ], $userPage @@ -415,7 +426,7 @@ class MiniprogramService implements MiniprogramServiceInterface 'touser' => $openid, 'template_id' => $template_id, 'page' => $page, - 'miniprogram_state' => env('APP_ENV')=='prod' ? 'formal' : 'developer', + 'miniprogram_state' => env('APP_ENV') == 'prod' ? 'formal' : 'developer', 'data' => $data ];