InformAdminClass.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. namespace biz\message\classes;
  3. use biz\admin\classes\AdminClass;
  4. use biz\user\classes\UserClass;
  5. use common\components\httpUtil;
  6. use common\components\wxUtil;
  7. use common\services\xhTMessageService;
  8. use Yii;
  9. use biz\base\classes\BaseClass;
  10. class InformAdminClass extends BaseClass
  11. {
  12. public static $baseFile = '\biz\message\models\InformAdmin';
  13. //增加通知员工 shish
  14. public static function addInform($params, $adminShop, $type, $TMList)
  15. {
  16. //没有关注公众号暂时不进行通知
  17. $subscribe = isset($adminShop['adminBaseInfo']['subscribe']) ? $adminShop['adminBaseInfo']['subscribe'] : 0;
  18. if ($subscribe == 0) {
  19. return false;
  20. }
  21. //没有小程序id暂时不进行通知,目前只有小程序商家版,没有h5
  22. $miniOpenId = isset($adminShop['adminBaseInfo']['miniOpenId']) ? $adminShop['adminBaseInfo']['miniOpenId'] : '';
  23. if (empty($miniOpenId)) {
  24. return false;
  25. }
  26. switch ($type) {
  27. case 'goodsSold':
  28. //宝贝售出
  29. $respond = self::goodsSoldInform($params, $adminShop, $TMList);
  30. break;
  31. case 'income':
  32. //收入提醒
  33. $respond = self::incomeInform($params, $adminShop, $TMList);
  34. break;
  35. case 'send':
  36. $respond = self::sendInform($params, $adminShop, $TMList);
  37. break;
  38. default:
  39. }
  40. $adminShopId = $adminShop['id'];
  41. $shopId = $adminShop['shopId'];
  42. $mobile = isset($adminShop['adminBaseInfo']['mobile']) ? $adminShop['adminBaseInfo']['mobile'] : '';
  43. //通知管理员的都是平台通知
  44. $isOpen = 1;
  45. $data = [
  46. 'messageType' => 'inform',
  47. 'informWay' => 'miniProgram',
  48. 'userType' => 'admin',
  49. 'mobile' => $mobile,
  50. 'adminShopId' => $adminShopId,
  51. 'userId' => 0,
  52. 'shopId' => $shopId,
  53. 'isOpen' => $isOpen,
  54. ];
  55. $data = array_merge($data, $respond);
  56. $producer = Yii::$app->rabbitmq->getProducer('informProducer');
  57. $msg = serialize($data);
  58. Yii::info('消息通知:' . $msg);
  59. $producer->publish($msg, 'informExchange', 'informRoute');
  60. }
  61. //送到通知 shish 2020.1.31
  62. public static function sendInform($params, $admin, $TMList)
  63. {
  64. $totalFee = 199;
  65. $userName = '石头';
  66. $orderId = $params['orderId'];
  67. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  68. $openId = isset($admin['openId']) && !empty($admin['openId']) ? $admin['openId'] : '';
  69. $miniOpenId = isset($admin['miniOpenId']) && !empty($admin['miniOpenId']) ? $admin['miniOpenId'] : '';
  70. $shortTempId = 'OPENTM201205968';
  71. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  72. $tMessage = [
  73. "touser" => $openId,
  74. "template_id" => $tempId,
  75. "url" => Yii::$app->params['frontUrl'] . "/center/order-detail?id=1225&account=12362",
  76. "data" => [
  77. "first" => ["value" => '您的订单已送达', "color" => "#173177"],
  78. "keyword1" => ["value" => (string)1525, "color" => "#173177"],
  79. "keyword2" => ["value" => '石头', "color" => "#173177"],
  80. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  81. "remark" => ["value" => '感谢您惠顾,祝你生活愉快!', "color" => "#173177"]
  82. ]
  83. ];
  84. if (!empty($miniOpenId)) {
  85. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  86. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  87. }
  88. $data['tMessage'] = json_encode($tMessage);
  89. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  90. $data['content'] = $msg;
  91. return $data;
  92. }
  93. public static function incomeInform($params, $admin, $TMList)
  94. {
  95. $totalFee = isset($params['totalFee']) ? $params['totalFee'] : 0;
  96. $orderId = $params['orderId'];
  97. $orderName = '商品';
  98. $userName = '石头';
  99. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  100. //收入提醒
  101. $openId = isset($admin['adminBaseInfo']['openId']) ? $admin['adminBaseInfo']['openId'] : '';
  102. $miniOpenId = isset($admin['adminBaseInfo']['miniOpenId']) ? $admin['adminBaseInfo']['miniOpenId'] : '';
  103. $shortTempId = 'OPENTM207422813';
  104. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  105. $tMessage = [
  106. "touser" => $openId,
  107. "template_id" => $tempId,
  108. "url" => Yii::$app->params['adminUrl'] . '/order/detail',
  109. "data" => [
  110. "first" => ["value" => '您有宝贝售出哦!', "color" => "#173177"],
  111. "keyword1" => ["value" => (string)$orderSn, "color" => "#173177"],
  112. "keyword2" => ["value" => $orderName, "color" => "#173177"],
  113. "keyword3" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  114. "keyword4" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  115. "keyword5" => ["value" => $userName, "color" => "#173177"],
  116. "remark" => ["value" => '点此查看详细、编辑收花人信息。', "color" => "#173177"]
  117. ]
  118. ];
  119. if (!empty($miniOpenId)) {
  120. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  121. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  122. }
  123. $data['tMessage'] = json_encode($tMessage);
  124. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  125. $data['content'] = $msg;
  126. return $data;
  127. }
  128. //添加通知内容 shish 2020.1.8
  129. public static function addData($data)
  130. {
  131. self::add($data);
  132. }
  133. //订单完成通知店长 shish 2020.3.19
  134. public static function sendComplete($order, $merchant)
  135. {
  136. $merchantId = $merchant['id'];
  137. $orderId = $order['id'];
  138. $adminList = AdminClass::getRemindAdmin($merchantId);
  139. $tm = xhTMessageService::getList($merchantId);
  140. $shortTempId = 'OPENTM201205968';//订单送达通知
  141. $tempId = $tm[$shortTempId];
  142. if (!empty($adminList)) {
  143. foreach ($adminList as $admin) {
  144. if (isset($admin['subscribe']) && $admin['subscribe'] == 1) {
  145. $openId = $admin['openId'];
  146. $miniOpenId = $admin['miniOpenId'];
  147. $url = Yii::$app->params['shopDomain'] . "/#/admin/order/detail?id=" . $order['id'];
  148. $url = httpUtil::becomeHttps($url);
  149. $data = [
  150. "touser" => $openId,
  151. "template_id" => $tempId,
  152. "url" => $url,
  153. "data" => [
  154. "first" => ["value" => '客户订单已送达', "color" => "#173177"],
  155. "keyword1" => ["value" => (string)$order['orderSn'], "color" => "#173177"],
  156. "keyword2" => ["value" => $order['bookName'], "color" => "#173177"],
  157. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  158. "remark" => ["value" => '', "color" => "#173177"]
  159. ]
  160. ];
  161. if (!empty($miniOpenId)) {
  162. $data['miniprogram']['appid'] = $merchant['miniAppId'];
  163. $data['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  164. }
  165. wxUtil::sendTaskInform($data, $merchant);
  166. }
  167. }
  168. }
  169. }
  170. }