InformAdminClass.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. namespace biz\message\classes;
  3. use biz\admin\classes\AdminClass;
  4. use biz\admin\services\ShopAdminService;
  5. use biz\user\classes\UserClass;
  6. use biz\wx\classes\WxOpenClass;
  7. use common\components\httpUtil;
  8. use common\components\wxUtil;
  9. use common\services\xhTMessageService;
  10. use Yii;
  11. use biz\base\classes\BaseClass;
  12. class InformAdminClass extends BaseClass
  13. {
  14. public static $baseFile = '\biz\message\models\InformAdmin';
  15. //增加通知员工 shish
  16. public static function addInform($params, $shopAdmin, $type, $TMList)
  17. {
  18. //没有关注公众号暂时不进行通知
  19. $subscribe = isset($shopAdmin['adminBaseInfo']['subscribe']) ? $shopAdmin['adminBaseInfo']['subscribe'] : 0;
  20. if ($subscribe == 0) {
  21. return false;
  22. }
  23. //没有小程序id暂时不进行通知,目前只有小程序商家版,没有h5
  24. $miniOpenId = isset($shopAdmin['adminBaseInfo']['miniOpenId']) ? $shopAdmin['adminBaseInfo']['miniOpenId'] : '';
  25. if (empty($miniOpenId)) {
  26. return false;
  27. }
  28. $openMerchant = WxOpenClass::getWxInfo();
  29. $params['miniAppId'] = $openMerchant['miniAppId'];
  30. switch ($type) {
  31. case 'goodsSold':
  32. //宝贝售出
  33. $respond = self::goodsSoldInform($params, $shopAdmin, $TMList);
  34. break;
  35. case 'income':
  36. //收入提醒
  37. $respond = self::incomeInform($params, $shopAdmin, $TMList);
  38. break;
  39. case 'reach':
  40. $respond = self::reachInform($params, $shopAdmin, $TMList);
  41. break;
  42. default:
  43. }
  44. $shopAdminId = $shopAdmin['id'];
  45. $shopId = $shopAdmin['shopId'];
  46. $mobile = isset($shopAdmin['adminBaseInfo']['mobile']) ? $shopAdmin['adminBaseInfo']['mobile'] : '';
  47. //通知管理员的都是平台通知
  48. $isOpen = 1;
  49. $data = [
  50. 'messageType' => 'inform',
  51. 'informWay' => 'miniProgram',
  52. 'userType' => 'admin',
  53. 'mobile' => $mobile,
  54. 'shopAdminId' => $shopAdminId,
  55. 'userId' => 0,
  56. 'shopId' => $shopId,
  57. 'isOpen' => $isOpen,
  58. ];
  59. $data = array_merge($data, $respond);
  60. $producer = Yii::$app->rabbitmq->getProducer('informProducer');
  61. $msg = serialize($data);
  62. $producer->publish($msg, 'informExchange', 'informRoute');
  63. }
  64. //宝贝售出提醒 shish 2020.5.31
  65. public static function goodsSoldInform($params, $admin, $TMList)
  66. {
  67. $totalFee = isset($params['totalFee']) ? $params['totalFee'] : 0;
  68. $orderId = isset($params['orderId']) ? $params['orderId'] : '';
  69. $orderSn = isset($params['orderSn']) ? $params['orderSn'] : '';
  70. $orderName = '商品';
  71. $userName = '石头';
  72. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  73. //收入提醒
  74. $openId = isset($admin['adminBaseInfo']['openId']) ? $admin['adminBaseInfo']['openId'] : '';
  75. $miniOpenId = isset($admin['adminBaseInfo']['miniOpenId']) ? $admin['adminBaseInfo']['miniOpenId'] : '';
  76. $shortTempId = 'OPENTM207422813';
  77. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  78. $tMessage = [
  79. "touser" => $openId,
  80. "template_id" => $tempId,
  81. "url" => Yii::$app->params['adminUrl'] . '/order/detail',
  82. "data" => [
  83. "first" => ["value" => '您有新的收入!', "color" => "#173177"],
  84. "keyword1" => ["value" => (string)$orderSn, "color" => "#173177"],
  85. "keyword2" => ["value" => $orderName, "color" => "#173177"],
  86. "keyword3" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  87. "keyword4" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  88. "keyword5" => ["value" => $userName, "color" => "#173177"],
  89. "remark" => ["value" => '点此查看详细', "color" => "#173177"]
  90. ]
  91. ];
  92. if (!empty($miniOpenId)) {
  93. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  94. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  95. }
  96. $data['tMessage'] = json_encode($tMessage);
  97. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  98. $data['content'] = $msg;
  99. return $data;
  100. }
  101. //送到通知 shish 2020.1.31
  102. public static function reachInform($params, $admin, $TMList)
  103. {
  104. $totalFee = 199;
  105. $userName = '石头';
  106. $orderId = $params['orderId'];
  107. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  108. $openId = isset($admin['openId']) && !empty($admin['openId']) ? $admin['openId'] : '';
  109. $miniOpenId = isset($admin['miniOpenId']) && !empty($admin['miniOpenId']) ? $admin['miniOpenId'] : '';
  110. $shortTempId = 'OPENTM201205968';
  111. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  112. $tMessage = [
  113. "touser" => $openId,
  114. "template_id" => $tempId,
  115. "url" => Yii::$app->params['frontUrl'] . "/center/order-detail?id=1225&account=12362",
  116. "data" => [
  117. "first" => ["value" => '客户订单已送达', "color" => "#173177"],
  118. "keyword1" => ["value" => (string)1525, "color" => "#173177"],
  119. "keyword2" => ["value" => '石头', "color" => "#173177"],
  120. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  121. "remark" => ["value" => '。。。。。。。', "color" => "#173177"]
  122. ]
  123. ];
  124. if (!empty($miniOpenId)) {
  125. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  126. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  127. }
  128. $data['tMessage'] = json_encode($tMessage);
  129. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  130. $data['content'] = $msg;
  131. return $data;
  132. }
  133. //收入提醒 shish 2020.5.31
  134. public static function incomeInform($params, $admin, $TMList)
  135. {
  136. $order = $params['order'];
  137. $totalFee = isset($order['actPrice']) ? $order['actPrice'] : 0;
  138. $orderId = isset($order['id']) ? $order['id'] : '';
  139. $payTime = isset($order['payTime']) && !empty($order['payTime']) ? date("Y-m-d H:i", $order['payTime']) : '未知';
  140. $store = isset($order['store']) ? $order['store'] : 0;
  141. $sourceTypeId = $order['sourceType'];
  142. if ($store == 1) {
  143. $incomeStyle = '门店收入';
  144. } else {
  145. $sourceTypeList = [0 => '微信', 1 => '支付宝', 2 => '小程序', 3 => '朋友圈', 4 => '美团', 5 => '系统'];
  146. $incomeStyle = isset($sourceTypeList[$sourceTypeId]) ? $sourceTypeList[$sourceTypeId] . '收入' : '未知';
  147. }
  148. $data = [];
  149. $data['briefContent'] = "客户付款" . $totalFee . '元';
  150. $openId = isset($admin['adminBaseInfo']['openId']) ? $admin['adminBaseInfo']['openId'] : '';
  151. $miniOpenId = isset($admin['adminBaseInfo']['miniOpenId']) ? $admin['adminBaseInfo']['miniOpenId'] : '';
  152. $shortTempId = 'OPENTM207422813';
  153. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  154. $tMessage = [
  155. "touser" => $openId,
  156. "template_id" => $tempId,
  157. "url" => Yii::$app->params['adminUrl'] . '/order/detail',
  158. "data" => [
  159. "first" => ["value" => '您有新的收入...', "color" => "#173177"],
  160. "keyword1" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  161. "keyword2" => ["value" => $incomeStyle, "color" => "#173177"],
  162. "keyword3" => ["value" => $payTime, "color" => "#173177"],
  163. "remark" => ["value" => '点此查看详情', "color" => "#173177"]
  164. ]
  165. ];
  166. if (!empty($miniOpenId)) {
  167. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  168. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  169. }
  170. $data['tMessage'] = json_encode($tMessage);
  171. $msg = "客户付款" . $totalFee . '元';
  172. $data['content'] = $msg;
  173. return $data;
  174. }
  175. //添加通知内容 shish 2020.1.8
  176. public static function addData($data)
  177. {
  178. self::add($data);
  179. }
  180. //订单完成通知店长 shish 2020.3.19
  181. public static function sendComplete($order)
  182. {
  183. $merchant = WxOpenClass::getWxInfo();
  184. $merchantId = 0;
  185. $orderId = $order['id'];
  186. $shopId = $order['shopId'];
  187. $adminList = ShopAdminService::getNoticeAdminList($shopId);
  188. $tm = xhTMessageService::getList($merchantId);
  189. $shortTempId = 'OPENTM201205968';//订单送达通知
  190. $tempId = $tm[$shortTempId];
  191. if (!empty($adminList)) {
  192. foreach ($adminList as $admin) {
  193. if (isset($admin['subscribe']) && $admin['subscribe'] == 1) {
  194. $openId = $admin['openId'];
  195. $miniOpenId = $admin['miniOpenId'];
  196. $url = Yii::$app->params['shopDomain'] . "/#/admin/order/detail?id=" . $order['id'];
  197. $url = httpUtil::becomeHttps($url);
  198. $data = [
  199. "touser" => $openId,
  200. "template_id" => $tempId,
  201. "url" => $url,
  202. "data" => [
  203. "first" => ["value" => '客户订单已送达', "color" => "#173177"],
  204. "keyword1" => ["value" => (string)$order['orderSn'], "color" => "#173177"],
  205. "keyword2" => ["value" => $order['bookName'], "color" => "#173177"],
  206. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  207. "remark" => ["value" => '', "color" => "#173177"]
  208. ]
  209. ];
  210. if (!empty($miniOpenId)) {
  211. $data['miniprogram']['appid'] = $merchant['miniAppId'];
  212. $data['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  213. }
  214. wxUtil::sendTaskInform($data, $merchant);
  215. }
  216. }
  217. }
  218. }
  219. }