张延森 4 年之前
父節點
當前提交
24a0135d90

+ 1
- 1
pom.xml 查看文件

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.shigongli</groupId>
12 12
 	<artifactId>shigongli</artifactId>
13
-	<version>0.0.8</version>
13
+	<version>1.0.3</version>
14 14
 	<name>shigongli</name>
15 15
 	<description>ShiGongli Service</description>
16 16
 

+ 56
- 47
src/main/java/com/shigongli/service/impl/TaHousePersonServiceImpl.java 查看文件

@@ -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
 }

+ 3
- 3
src/main/java/com/shigongli/task/SendCheckOutMessage.java 查看文件

@@ -62,14 +62,14 @@ public class SendCheckOutMessage {
62 62
             return;
63 63
         }
64 64
 
65
-        String remark = "请于12:00之前退房. 退房时请检查您的随身物品!";
65
+        String remark = "请记得带好您的随身物品";
66 66
         WxMaService maService = wxUtils.getMaService();
67 67
 
68 68
         // 每隔 1s 发送一条离店提醒
69 69
         for (TaPerson taPerson : taPersonList) {
70 70
             List<WxMaSubscribeMessage.Data> dataList = new ArrayList<>();
71
-            dataList.add(new WxMaSubscribeMessage.Data("thing5", remark));
72
-            dataList.add(new WxMaSubscribeMessage.Data("time8", today));
71
+            dataList.add(new WxMaSubscribeMessage.Data("time1", String.format("%s 12:00", today)));
72
+            dataList.add(new WxMaSubscribeMessage.Data("thing2", remark));
73 73
 
74 74
             WxMaSubscribeMessage wxMaSubscribeMessage = WxMaSubscribeMessage
75 75
                     .builder()

+ 1
- 1
src/main/resources/application.yml 查看文件

@@ -49,7 +49,7 @@ weixin:
49 49
       - type: settled-in
50 50
         code: rMg5CzypZSniRGHoZ7SBdqv_kmf7fPfTJMZ1k1SgobY
51 51
       - type: check-out
52
-        code: OtpD30Kb9qbNBJ2-IVnhu5g1hHnuNvCvdVuFh4e6mPU
52
+        code: ZRAzMOXwAX1Boh5erwZMNUaUQiEwmd5WEJCsKMBBaa8
53 53
 
54 54
   # 公众号
55 55
   mp:

+ 1
- 0
src/main/resources/mapper/TaShopKeeperMapper.xml 查看文件

@@ -12,5 +12,6 @@
12 12
             INNER JOIN ta_person s ON s.person_id = t.person_id
13 13
         WHERE
14 14
             m.house_id = #{houseId}
15
+            AND t.`status` = 1
15 16
     </select>
16 17
 </mapper>