| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 |
- <?php
- namespace biz\wx\classes;
- use biz\base\classes\BaseClass;
- use biz\shop\classes\ShopAdminClass;
- use common\components\dict;
- use common\components\noticeUtil;
- use common\components\util;
- use common\components\wxUtil;
- use Yii;
- class WxMessageClass extends BaseClass
- {
- public static $baseFile = '\biz\wx\models\WxMessage';
- public static function has()
- {
- return [
- //零售
- dict::getDict('ptStyle', 'hd') => [
- 'OPENTM417875155' => '新订单通知',
- 'OPENTM207430125' => '操作成功通知',
- 'OPENTM401915538' => '审核通知',
- 'OPENTM201205968' => '订单送达通知',
- 'OPENTM207777535' => '付款提醒',
- 'OPENTM207422813' => '收入提醒',
- 'OPENTM202297555' => '下单成功通知',
- 'OPENTM207327227' => '宝贝售出提醒',
- 'OPENTM207188526' => '付款成功',
- 'OPENTM411207151' => '提现成功通知',
- 'OPENTM416881153' => '发货通知',
- ],
- //供应商
- dict::getDict('ptStyle', 'ghs') => [
- 'OPENTM417875155' => '新订单通知',
- 'OPENTM207430125' => '操作成功通知',
- 'OPENTM401915538' => '审核通知',
- 'OPENTM201205968' => '订单送达通知',
- 'OPENTM207777535' => '付款提醒',
- 'OPENTM207422813' => '收入提醒',
- 'OPENTM202297555' => '下单成功通知',
- 'OPENTM207327227' => '宝贝售出提醒',
- 'OPENTM207188526' => '付款成功',
- 'OPENTM411207151' => '提现成功通知',
- 'OPENTM416881153' => '发货通知',
- ],
- //商城
- dict::getDict('ptStyle', 'mall') => [
- ],
- ];
- }
- //初始化消息模板
- // ./yii.bat wx-message/init
- public static function init()
- {
- $wxBase = [
- dict::getDict('ptStyle', 'hd') => \bizHd\wx\classes\WxOpenClass::getWxInfo(),
- dict::getDict('ptStyle', 'ghs') => \bizHd\wx\classes\WxOpenClass::getGhsWxInfo(),
- dict::getDict('ptStyle', 'mall') => \bizHd\wx\classes\WxOpenClass::getMallWxInfo(),
- ];
- $message = self::getAllByCondition([], null, '*', null, true);
- if (!empty($message)) {
- foreach ($message as $item) {
- $ptStyle = $item->ptStyle;
- $wx = $wxBase[$ptStyle] ?? [];
- if (empty($wx)) {
- util::fail('没有找到微信平台信息');
- }
- $templateId = $item->templateId;
- $respond = wxUtil::delTMessage($wx, $templateId, $ptStyle);
- if (isset($respond['errcode']) && $respond['errcode'] == 0) {
- $item->delete();
- }
- }
- }
- $wxMessageList = self::has();
- foreach ($wxMessageList as $k => $message) {
- $ptStyle = $k;
- if (empty($message)) {
- continue;
- }
- $wx = $wxBase[$ptStyle] ?? [];
- foreach ($message as $shortId => $title) {
- $wxReturn = wxUtil::tMessageCreate($wx, $shortId, $ptStyle);
- echo json_encode($wxReturn) . "\n";
- if (isset($wxReturn['errcode']) && $wxReturn['errcode'] == 0) {
- $templateId = $wxReturn['template_id'];
- $data = [
- 'shortTemplateId' => $shortId,
- 'templateId' => $templateId,
- 'templateName' => $title,
- 'ptStyle' => $ptStyle,
- ];
- self::add($data);
- //Yii::warning("add tmessage:" . $title . " success\n");
- } else {
- Yii::warning("add tmessage error:" . json_encode($wxReturn) . " \n");
- noticeUtil::push("add wx message {$shortId} error:" . json_encode($wxReturn), '15280215347');
- }
- }
- }
- }
- //新订单通知 shish 20210529
- public static function newOrderInform($shop, $order)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM417875155';//新订单通知
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $orderId = $order->id;
- $actPrice = $order->actPrice;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => "您有新的订单,请注意查收", "color" => "#173177"],
- "keyword1" => ["value" => $order->orderSn, "color" => "#173177"],
- "keyword2" => ["value" => $actPrice, "color" => "#173177"],
- "keyword3" => ["value" => date("Y-m-d H:i"), "color" => "#173177"],
- "remark" => ["value" => "点击查看详情", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesOrder/detail?id=' . $orderId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //审核通过通知 shish 20210530
- public static function applyPass($shop)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM401915538';//审核通过通知
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- if (empty($adminList)) {
- return false;
- }
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = array(
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => array(
- "first" => array(
- "value" => "恭喜,您的开店申请审核通过。",
- "color" => "#173177"
- ),
- "keyword1" => array(
- "value" => '审核通过',
- "color" => "#173177"
- ),
- "keyword2" => array(
- "value" => date("Y-m-d H:i:s"),
- "color" => "#173177"
- ),
- "remark" => array(
- "value" => '点击登陆后台',
- "color" => "#173177"
- )
- ),
- );
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'admin/home/workbench';
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //采购单下单成功 shish 20210531
- public static function generateCgOrder($shop, $order)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM202297555';//下单成功通知
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $orderId = $order->id;
- $orderSn = (string)$order->orderSn;
- $totalFee = $order->actPrice;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => '亲,您的采购单已生成', "color" => "#173177"],
- "keyword1" => ["value" => $orderSn, "color" => "#173177"],
- "keyword2" => ["value" => '花材', "color" => "#173177"],
- "keyword3" => ["value" => $order->bigNum . '/' . $order->smallNum, "color" => "#173177"],
- "keyword4" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
- "keyword5" => ["value" => '-', "color" => "#173177"],
- "remark" => ["value" => "", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesPurchase/purDetails?id=' . $orderId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //采购单已发货 shish 20210531
- public static function cgOrderHasSend($shop, $order)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM416881153';//下单成功通知
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $orderId = $order->id;
- $orderSn = (string)$order->orderSn;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- $ghsShopAdminName = $order->ghsShopAdminName ?? '';
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => '亲,您的采购单已发货,请注意签收', "color" => "#173177"],
- "keyword1" => ["value" => $orderSn, "color" => "#173177"],
- "keyword2" => ["value" => date("Y-m-d H:i:s"), "color" => "#173177"],
- "keyword3" => ["value" => $ghsShopAdminName, "color" => "#173177"],
- "remark" => ["value" => "点击查看详情", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesPurchase/purDetails?id=' . $orderId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //零售清算欠款通知供应商 shish 20210531
- public static function clearInform($shop, $order, $custom)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM207422813';//收入提醒
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $actPrice = $order->actPrice;
- $name = $custom->name ?? '';
- $customId = $custom->id;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => "客户{$name}结款{$actPrice}元", "color" => "#173177"],
- "keyword1" => ["value" => $actPrice, "color" => "#173177"],
- "keyword2" => ["value" => '客户结款', "color" => "#173177"],
- "keyword3" => ["value" => date("Y-m-d H:i"), "color" => "#173177"],
- "remark" => ["value" => "点击查看详情", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesArrears/details?id=' . $customId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //收款码收入通知 shish 20210531
- public static function gatheringIncomeInform($shop, $order)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM207422813';//收入提醒
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $actPrice = $order->actPrice;
- $orderId = $order->id;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => "您有新的收入。", "color" => "#173177"],
- "keyword1" => ["value" => $actPrice, "color" => "#173177"],
- "keyword2" => ["value" => '二维码收款', "color" => "#173177"],
- "keyword3" => ["value" => date("Y-m-d H:i"), "color" => "#173177"],
- "remark" => ["value" => "点击查看详情", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //提现成功通知 shish 20210531
- public static function cashInform($shop, $cash)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM411207151';
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $amount = $cash->amount;
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => "提现成功。", "color" => "#173177"],
- "keyword1" => ["value" => $amount, "color" => "#173177"],
- "keyword2" => ["value" => date("Y-m-d H:i"), "color" => "#173177"],
- "remark" => ["value" => "感谢您的使用", "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesStore/me/withdraw';
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- //订单送达通知 shish 20210607
- public static function reachInform($shop, $order)
- {
- $shopId = $shop->id;
- $ptStyle = $shop->ptStyle;
- $wxBase = WxOpenClass::getWxBase();
- $wx = $wxBase[$ptStyle] ?? [];
- $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
- $shortTempId = 'OPENTM201205968';
- $tempId = isset($message[$shortTempId]['templateId']) ? $message[$shortTempId]['templateId'] : '';
- if (empty($tempId)) {
- return false;
- }
- $orderId = $order->id ?? '';
- $orderSn = (string)$order->orderSn ?? '';
- $customName = $order->customName ?? '';
- $adminList = ShopAdminClass::getRemainAdmin($shopId);
- foreach ($adminList as $admin) {
- if (isset($admin['subscribe']) == false || $admin['subscribe'] == 0) {
- continue;
- }
- $openId = isset($admin['openId']) ? $admin['openId'] : '';
- $data = [
- "touser" => $openId,
- "template_id" => $tempId,
- "url" => Yii::$app->params['ghsDomain'],
- "data" => [
- "first" => ["value" => '客户订单已送达', "color" => "#173177"],
- "keyword1" => ["value" => $orderSn, "color" => "#173177"],
- "keyword2" => ["value" => $customName, "color" => "#173177"],
- "keyword3" => ["value" => '已送达', "color" => "#173177"],
- "remark" => ["value" => '点击查看详情', "color" => "#173177"]
- ]
- ];
- $data['miniprogram']['appid'] = $wx['miniAppId'];
- $data['miniprogram']['pagepath'] = 'pagesOrder/detail?id=' . $orderId;
- wxUtil::sendTaskInform($data, $wx, $ptStyle);
- }
- }
- }
|