Explorar el Código

增加待发送消息落库

xueyiming hace 6 meses
padre
commit
0f85d3a180

+ 24 - 0
we-com-server/pom.xml

@@ -20,4 +20,28 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
+    <build>
+        <!-- 固定包名 避免随着版本变动 -->
+        <finalName>we-com-server</finalName>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*.yml</include>
+                    <include>**/*.yaml</include>
+                    <include>**/*.xml</include>
+                    <include>**/*.properties</include>
+                </includes>
+                <filtering>false</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+
+    </build>
+
 </project>

+ 3 - 0
we-com-server/src/main/java/com/tzld/piaoquan/wecom/dao/mapper/SendMessageMapper.java

@@ -36,4 +36,7 @@ public interface SendMessageMapper {
     void insertList(@Param("list") List<SendMessage> list);
 
     List<SendMessage> getGroupList(@Param("createTime") Date createTime, @Param("isSend")Integer isSend);
+
+    List<String> selectExternalUserId3rdParty(@Param("record") SendMessage record);
+
 }

+ 0 - 1
we-com-server/src/main/java/com/tzld/piaoquan/wecom/job/WeComMessageDataJob.java

@@ -122,7 +122,6 @@ public class WeComMessageDataJob {
         int page = 1;
         int pageSize = 1000;
         long totalPageSize = count / pageSize + 1;
-        totalPageSize = 1L;
         for (; page <= totalPageSize; page++) {
             example.setPage(new Page<>(page, pageSize));
             List<User> userList = userMapper.selectByExample(example);

+ 20 - 19
we-com-server/src/main/java/com/tzld/piaoquan/wecom/job/WeComMessageDataJob2.java

@@ -102,10 +102,10 @@ public class WeComMessageDataJob2 {
                 continue;
             }
             MessageAttachment messageAttachment = messageAttachmentList.get(0);
-            if (messageAttachment.getSendTime() != null
-                    && DateUtil.dateDifference(new Date(), messageAttachment.getSendTime()) < 180 * MILLISECOND_DAY) {
-                continue;
-            }
+//            if (messageAttachment.getSendTime() != null
+//                    && DateUtil.dateDifference(new Date(), messageAttachment.getSendTime()) < 180 * MILLISECOND_DAY) {
+//                continue;
+//            }
             saveVideoIds.add(videoId);
             if (saveVideoIds.size() >= MAX_VIDEO_NUM) {
                 break;
@@ -121,11 +121,14 @@ public class WeComMessageDataJob2 {
         init();
         Map<String, List<String>> res = new HashMap<>();
         UserExample example = new UserExample();
+        List<String> test = new ArrayList<>();
+        test.add("wmgizUDQAAzefmcVLEuJLR5YcHInGcsg");
+        test.add("wmgizUDQAAYdFWt1hts2fU6P2h84fPvQ");
+        example.createCriteria().andExternalUserId3rdPartyIn(test);
         long count = userMapper.countByExample(example);
         int page = 1;
         int pageSize = 1000;
         long totalPageSize = count / pageSize + 1;
-        totalPageSize = 1L;
         for (; page <= totalPageSize; page++) {
             example.setPage(new Page<>(page, pageSize));
             List<User> userList = userMapper.selectByExample(example);
@@ -144,8 +147,8 @@ public class WeComMessageDataJob2 {
                 sendMessageMapper.insertList(allSeneMessageList);
             }
         }
-        pushSendMessage();
-        saveGuaranteedVideoIdList(guaranteedVideoIdList);
+//        pushSendMessage();
+//        saveGuaranteedVideoIdList(guaranteedVideoIdList);
     }
 
     public void saveGuaranteedVideoIdList(List<Long> videoIdList) {
@@ -215,7 +218,8 @@ public class WeComMessageDataJob2 {
         for (StaffWithUser staffWithUser : staffWithUserList) {
             SendMessage newSendMessage = new SendMessage();
             BeanUtils.copyProperties(sendMessage, newSendMessage);
-            newSendMessage.setStaffId(staffWithUser.getId());
+            newSendMessage.setStaffId(staffWithUser.getStaffId());
+            newSendMessage.setUserId(staffWithUser.getUserId());
             sendMessageList.add(newSendMessage);
         }
         return sendMessageList;
@@ -225,18 +229,14 @@ public class WeComMessageDataJob2 {
     public void pushSendMessage() {
         List<SendMessage> groupList = sendMessageMapper.getGroupList(DateUtil.getThatDayDate(), 0);
         for (SendMessage sendMessage : groupList) {
-            SendMessageExample example = new SendMessageExample();
-            example.createCriteria().andStaffIdEqualTo(sendMessage.getStaffId())
-                    .andVideoId1EqualTo(sendMessage.getVideoId1())
-                    .andVideoId2EqualTo(sendMessage.getVideoId2())
-                    .andVideoId3EqualTo(sendMessage.getVideoId3())
-                    .andCreateTimeGreaterThan(DateUtil.getThatDayDate())
-                    .andIsSendEqualTo(0);
-            List<SendMessage> sendMessages = sendMessageMapper.selectByExample(example);
+            sendMessage.setIsSend(0);
+            sendMessage.setCreateTime(DateUtil.getThatDayDate());
+            List<String> sendUserList = sendMessageMapper.selectExternalUserId3rdParty(sendMessage);
+            pushMessage(sendUserList, sendMessage);
         }
     }
 
-    public void pushMessage(List<String> userIds, SendMessage sendMessage) {
+    public void pushMessage(List<String> sendUserList, SendMessage sendMessage) {
         List<JSONObject> pushList = new ArrayList<>();
         StaffExample staffExample = new StaffExample();
         staffExample.createCriteria().andIdEqualTo(sendMessage.getStaffId());
@@ -284,7 +284,7 @@ public class WeComMessageDataJob2 {
             attachments.add(attachment);
         }
         jsonObject.put("attachments", attachments);
-        List<List<String>> lists = Lists.partition(userIds, 10000);
+        List<List<String>> lists = Lists.partition(sendUserList, 10000);
         for (List<String> list : lists) {
             List<JSONObject> staffEuList = new ArrayList<>();
             JSONObject newJSONObject = new JSONObject();
@@ -301,7 +301,8 @@ public class WeComMessageDataJob2 {
             throw new RuntimeException("推送视频生成失败");
         }
         for (JSONObject pushJsonObject : pushList) {
-            messageService.pushMessage(pushJsonObject);
+            System.out.println(pushJsonObject);
+//            messageService.pushMessage(pushJsonObject);
         }
 
         //TODO 发送成功更新发送状态

+ 12 - 0
we-com-server/src/main/resources/mapper/SendMessageMapper.xml

@@ -307,4 +307,16 @@
         from we_com_send_message
         where create_time >= #{createTime} and is_send = #{isSend}
     </select>
+
+    <select id="selectExternalUserId3rdParty" parameterType="com.tzld.piaoquan.wecom.model.po.SendMessage" resultType="java.lang.String">
+        select
+            t2.external_user_id_3rd_party
+        from we_com_send_message t1 left join we_com_user t2 on t1.user_id = t2.id
+        where t1.staff_id = #{record.staffId}
+          and t1.video_id_1 = #{record.videoId1}
+          and t1.video_id_2 = #{record.videoId2}
+          and t1.video_id_3 = #{record.videoId3}
+          and t1.create_time > #{record.createTime}
+          and t1.is_send = #{record.isSend}
+    </select>
 </mapper>