瀏覽代碼

群聊发送完课

吴树波 1 月之前
父節點
當前提交
999b05d4ac

+ 40 - 4
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -29,6 +29,7 @@ import com.fs.qw.service.IQwExternalContactService;
 import com.fs.qw.service.IQwGroupChatService;
 import com.fs.qw.service.IQwGroupChatUserService;
 import com.fs.qw.service.impl.QwExternalContactServiceImpl;
+import com.fs.qw.vo.QwSopChatTempSetting;
 import com.fs.qw.vo.QwSopCourseFinishTempSetting;
 import com.fs.qw.vo.QwSopRuleTimeVO;
 import com.fs.qw.vo.QwSopTempSetting;
@@ -1632,10 +1633,16 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                 List<QwGroupChatUser> qwGroupChatUserList = qwGroupChatUserService.selectUserIsChat(externalContact.getExternalUserId());
                 if(!qwGroupChatUserList.isEmpty()){
                     List<SopUserLogs> sopLogsList = sopUserLogsMapper.selectSopUserLogByChatIds(PubFun.listToNewList(qwGroupChatUserList, QwGroupChatUser::getChatId));
-                    List<String> chatIdList = PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId);
-                    qwGroupChatUserList = qwGroupChatUserList.stream().filter(e -> chatIdList.contains(e.getChatId())).collect(Collectors.toList());
-
-
+                    List<QwGroupChat> qwGroupChatList = qwGroupChatService.selectQwGroupChatByChatIds(PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId).toArray(new String[0]));
+                    Map<String, QwGroupChat> groupChatMap = PubFun.listToMapByGroupObject(qwGroupChatList, QwGroupChat::getChatId);
+                    sopLogsList.forEach(e -> {
+                        QwGroupChat groupChat = groupChatMap.get(e.getChatId());
+                        if(groupChat != null){
+                            e.setChatName(groupChat.getName());
+                        }
+                    });
+                    List<QwSopLogs> qwSopLogs = buildSopLogsChat(finishLog, externalContact, sopLogsList);
+                    sopLogsToInsert.addAll(qwSopLogs);
                 }
 
                 // 构建 sopLogs 对象
@@ -1686,6 +1693,35 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
         }
     }
 
+    private List<QwSopLogs> buildSopLogsChat(FsCourseWatchLog finishLog, QwExternalContact externalContact, List<SopUserLogs> sopLogsList) {
+        return sopLogsList.stream().map(e -> {
+            QwSopChatTempSetting setting = new QwSopChatTempSetting();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDateTime currentTime = LocalDateTime.now();
+            LocalDateTime newTime = currentTime.plusMinutes(3);
+            String newTimeString = newTime.format(formatter);
+
+            QwSopLogs sopLogs = new QwSopLogs();
+            sopLogs.setSendTime(newTimeString);
+            sopLogs.setQwUserid(e.getQwUserId());
+            sopLogs.setCorpId(e.getCorpId());
+            sopLogs.setLogType(2);
+            sopLogs.setSendType(6);
+            sopLogs.setSendStatus(3L);
+            sopLogs.setReceivingStatus(0L);
+            sopLogs.setSort(4);
+            sopLogs.setCompanyId(finishLog.getCompanyId());
+            sopLogs.setSopId(e.getSopId());
+            sopLogs.setExternalUserId(e.getChatId());
+            sopLogs.setExternalUserName(e.getChatName());
+            QwSopChatTempSetting.Setting setting1 = new QwSopChatTempSetting.Setting();
+            setting1.setValue("恭喜" + externalContact.getName() + "完成了今天的课程!");
+            setting.setSetting(Collections.singletonList(setting1));
+            sopLogs.setContentJson(JSON.toJSONString(setting));
+            return sopLogs;
+        }).collect(Collectors.toList());
+    }
+
     /**
      * 构建 QwSopLogs 对象
      */

+ 40 - 0
fs-service-system/src/main/java/com/fs/qw/vo/QwSopChatTempSetting.java

@@ -0,0 +1,40 @@
+package com.fs.qw.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+* 企微sop附件的消息内容
+*/
+@Data
+public class QwSopChatTempSetting implements Serializable,Cloneable{
+
+    private int type = 1;
+    private String time;
+    private String contentType = "1";
+
+    private List<Setting> setting;
+
+    @Data
+    public static class Setting implements Cloneable {
+        private String contentType = "1";
+        //文本
+        private String value;
+
+        @Override
+        public Setting clone() {
+            try {
+                // TODO: copy mutable state here, so the clone can't change the internals of the original
+                return (Setting) super.clone();
+            } catch (CloneNotSupportedException e) {
+                throw new AssertionError();
+            }
+        }
+    }
+
+}
+
+

+ 2 - 0
fs-service-system/src/main/java/com/fs/sop/domain/SopUserLogs.java

@@ -25,6 +25,8 @@ public class SopUserLogs implements Serializable {
 
     @TableField(exist = false)
     private Integer countDays;
+    @TableField(exist = false)
+    private String chatName;
 
 
 

+ 1 - 1
fs-service-system/src/main/java/com/fs/sop/mapper/SopUserLogsMapper.java

@@ -168,6 +168,6 @@ public interface SopUserLogsMapper {
 
     @DataSource(DataSourceType.SOP)
     void batchInsertSopUserLogs(@Param("list") List<SopUserLogs> list);
-
+    @DataSource(DataSourceType.SOP)
     List<SopUserLogs> selectSopUserLogByChatIds(@Param("ids") List<String> ids);
 }