|
@@ -12,6 +12,7 @@ import com.shigongli.service.ITaHousePersonService;
|
12
|
12
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
13
|
13
|
import com.shigongli.service.ITaShopKeeperService;
|
14
|
14
|
import lombok.extern.slf4j.Slf4j;
|
|
15
|
+import me.chanjar.weixin.common.error.WxErrorException;
|
15
|
16
|
import org.springframework.beans.factory.annotation.Autowired;
|
16
|
17
|
import org.springframework.scheduling.annotation.Async;
|
17
|
18
|
import org.springframework.stereotype.Service;
|
|
@@ -42,60 +43,68 @@ public class TaHousePersonServiceImpl extends ServiceImpl<TaHousePersonMapper, T
|
42
|
43
|
@Async
|
43
|
44
|
@Override
|
44
|
45
|
public void sendMessageToManager(TaHouse taHouse, String dateStr) {
|
45
|
|
- try {
|
46
|
|
- String houseId = taHouse.getHouseId();
|
47
|
|
- List<TaShopKeeper> taShopKeeperList = iTaShopKeeperService.getByHouse(houseId);
|
48
|
|
- if (null == taShopKeeperList || taShopKeeperList.size() < 1) {
|
49
|
|
- log.error("没有找到房源【{}】对应的店主", houseId);
|
50
|
|
- return;
|
51
|
|
- }
|
52
|
|
-
|
53
|
|
- // 先暂时发送一个店主
|
54
|
|
- TaShopKeeper taShopKeeper = taShopKeeperList.get(0);
|
|
46
|
+ String houseId = taHouse.getHouseId();
|
|
47
|
+ List<TaShopKeeper> taShopKeeperList = iTaShopKeeperService.getByHouse(houseId);
|
|
48
|
+ if (null == taShopKeeperList || taShopKeeperList.size() < 1) {
|
|
49
|
+ log.error("没有找到房源【{}】对应的店主", houseId);
|
|
50
|
+ return;
|
|
51
|
+ }
|
55
|
52
|
|
56
|
|
- // 找到消息模板
|
57
|
|
- List<WeixinConfig.Ma.SubscribeMessage> subscribeMessages = weixinConfig.getMa().getSubscribeMessages();
|
58
|
|
- WeixinConfig.Ma.SubscribeMessage subscribeMessage = null;
|
59
|
|
- if (null == subscribeMessages || subscribeMessages.size() < 1) {
|
60
|
|
- log.error("没有找到小程序消息提醒配置");
|
61
|
|
- return;
|
62
|
|
- }
|
63
|
|
- for (WeixinConfig.Ma.SubscribeMessage message : subscribeMessages) {
|
64
|
|
- if ("settled-in".equals(message.getType())) {
|
65
|
|
- subscribeMessage = message;
|
66
|
|
- break;
|
67
|
|
- }
|
68
|
|
- }
|
69
|
|
- if (null == subscribeMessage) {
|
70
|
|
- log.error("没有找到入店提醒的消息配置");
|
71
|
|
- return;
|
|
53
|
+ // 找到消息模板
|
|
54
|
+ List<WeixinConfig.Ma.SubscribeMessage> subscribeMessages = weixinConfig.getMa().getSubscribeMessages();
|
|
55
|
+ WeixinConfig.Ma.SubscribeMessage subscribeMessage = null;
|
|
56
|
+ if (null == subscribeMessages || subscribeMessages.size() < 1) {
|
|
57
|
+ log.error("没有找到小程序消息提醒配置");
|
|
58
|
+ return;
|
|
59
|
+ }
|
|
60
|
+ for (WeixinConfig.Ma.SubscribeMessage message : subscribeMessages) {
|
|
61
|
+ if ("settled-in".equals(message.getType())) {
|
|
62
|
+ subscribeMessage = message;
|
|
63
|
+ break;
|
72
|
64
|
}
|
|
65
|
+ }
|
|
66
|
+ if (null == subscribeMessage) {
|
|
67
|
+ log.error("没有找到入店提醒的消息配置");
|
|
68
|
+ return;
|
|
69
|
+ }
|
73
|
70
|
|
74
|
|
- // 发送内容
|
75
|
|
- List<WxMaSubscribeMessage.Data> dataList = new ArrayList<>();
|
76
|
|
- String title = null != taHouse.getTitle() ? taHouse.getTitle() : "";
|
77
|
|
- if (title.length() > 10) {
|
78
|
|
- title = title.substring(0, 10) + "...";
|
79
|
|
- }
|
|
71
|
+ // 发送内容
|
|
72
|
+ List<WxMaSubscribeMessage.Data> dataList = new ArrayList<>();
|
|
73
|
+ String title = null != taHouse.getTitle() ? taHouse.getTitle() : "";
|
|
74
|
+ if (title.length() > 10) {
|
|
75
|
+ title = title.substring(0, 10) + "...";
|
|
76
|
+ }
|
80
|
77
|
|
81
|
|
- dataList.add(new WxMaSubscribeMessage.Data("thing6", title));
|
82
|
|
- dataList.add(new WxMaSubscribeMessage.Data("date2", dateStr));
|
|
78
|
+ dataList.add(new WxMaSubscribeMessage.Data("thing6", title));
|
|
79
|
+ dataList.add(new WxMaSubscribeMessage.Data("date2", dateStr));
|
83
|
80
|
|
84
|
|
- //
|
85
|
|
- WxMaService maService = wxUtils.getMaService();
|
86
|
|
- WxMaSubscribeMessage wxMaSubscribeMessage = WxMaSubscribeMessage
|
87
|
|
- .builder()
|
88
|
|
- .templateId(subscribeMessage.getCode())
|
89
|
|
- .toUser(taShopKeeper.getOpenid())
|
90
|
|
- .page(String.format("/pages/house/household/index?houseId=%s", houseId))
|
91
|
|
- .data(dataList)
|
92
|
|
- .build();
|
|
81
|
+ String page = String.format("/pages/house/household/index?houseId=%s", houseId);
|
|
82
|
+ String templateId = subscribeMessage.getCode();
|
93
|
83
|
|
94
|
|
- maService.getMsgService().sendSubscribeMsg(wxMaSubscribeMessage);
|
|
84
|
+ // 暂时先发送给所有店主, 1s 发送一个
|
|
85
|
+ for (TaShopKeeper taShopKeeper : taShopKeeperList) {
|
|
86
|
+ try {
|
|
87
|
+ String toUser = taShopKeeper.getOpenid();
|
|
88
|
+ sendMaSubscribeMessage(toUser, dataList, page, templateId);
|
95
|
89
|
|
96
|
|
- } catch (Exception e) {
|
97
|
|
- log.error("发送订阅消息给店主失败: {}", e.getMessage());
|
98
|
|
- e.printStackTrace();
|
|
90
|
+ Thread.sleep(1000);
|
|
91
|
+ } catch (Exception e) {
|
|
92
|
+ log.error("发送订阅消息给店主失败: {}", e.getMessage());
|
|
93
|
+ e.printStackTrace();
|
|
94
|
+ }
|
99
|
95
|
}
|
100
|
96
|
}
|
|
97
|
+
|
|
98
|
+ private void sendMaSubscribeMessage(String toUser, List<WxMaSubscribeMessage.Data> message, String page, String templateId) throws WxErrorException {
|
|
99
|
+ WxMaService maService = wxUtils.getMaService();
|
|
100
|
+ WxMaSubscribeMessage wxMaSubscribeMessage = WxMaSubscribeMessage
|
|
101
|
+ .builder()
|
|
102
|
+ .templateId(templateId)
|
|
103
|
+ .toUser(toUser)
|
|
104
|
+ .page(page)
|
|
105
|
+ .data(message)
|
|
106
|
+ .build();
|
|
107
|
+
|
|
108
|
+ maService.getMsgService().sendSubscribeMsg(wxMaSubscribeMessage);
|
|
109
|
+ }
|
101
|
110
|
}
|