Prechádzať zdrojové kódy

SOP营期标签修改

吴树波 2 týždňov pred
rodič
commit
2db25a3b08

+ 4 - 2
fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsInfoController.java

@@ -82,7 +82,7 @@ public class SopUserLogsInfoController extends BaseController
                 Map<Long, SopExternalContactInfo> externalContactInfoMap = qwExternalContactVOTimes.stream()
                         .collect(Collectors.toMap(
                                 QwExternalContactVOTime::getId,
-                                item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIds(), item.getRemark())
+                                item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIdsName(), item.getTagIds(), item.getRemark())
                         ));
 
                 // 遍历 list,赋值 inComTime 和 tagIds
@@ -90,6 +90,7 @@ public class SopUserLogsInfoController extends BaseController
                     SopExternalContactInfo info = externalContactInfoMap.getOrDefault(item.getExternalId(), new SopExternalContactInfo("无进线时间", "无标签", "无备注"));
                     item.setInComTime(info.getCreateTime());
                     item.setTagIds(info.getTagIds());
+                    item.setTagNames(info.getTagNames());
                     item.setRemark(info.getRemark());
                 });
 
@@ -125,7 +126,7 @@ public class SopUserLogsInfoController extends BaseController
                 Map<String, SopExternalContactInfo> externalContactInfoMap = qwExternalContactVOTimes.stream()
                         .collect(Collectors.toMap(
                                 QwExternalContactVOTime::getExternalUserId,
-                                item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIds(), item.getRemark())
+                                item -> new SopExternalContactInfo(item.getCreateTime(), item.getTagIdsName(), item.getTagIds(), item.getRemark())
                         ));
 
                 // 遍历 list,赋值 inComTime 和 tagIds
@@ -133,6 +134,7 @@ public class SopUserLogsInfoController extends BaseController
                     SopExternalContactInfo info = externalContactInfoMap.getOrDefault(item.getUserId(), new SopExternalContactInfo("无进线时间", "无标签", "无备注"));
                     item.setInComTime(info.getCreateTime());
                     item.setTagIds(info.getTagIds());
+                    item.setTagNames(info.getTagNames());
                     item.setRemark(info.getRemark());
                 });
 

+ 2 - 0
fs-service/src/main/java/com/fs/qw/domain/QwGroupChatUser.java

@@ -94,6 +94,8 @@ public class QwGroupChatUser extends BaseEntity
     @TableField(exist = false)
     private String tagIds;
     @TableField(exist = false)
+    private List<String> tagNames;
+    @TableField(exist = false)
     private String fsUserId;
     @TableField(exist = false)
     private List<GroupUserExternalVo> userList;

+ 2 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwTagMapper.java

@@ -90,4 +90,6 @@ public interface QwTagMapper
             "</foreach>" +
             "</script>")
     List<String> selectQwTagListByTagIds(@Param("date") QwTagSearchParam param);
+
+    List<QwTag> selectQwTagListByTagIds(@Param("tagIds") List<String> tagIds);
 }

+ 3 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactVOTime.java

@@ -3,12 +3,15 @@ package com.fs.qw.param;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class QwExternalContactVOTime {
 
     private Long id;
 
     private String tagIds;
+    private List<String> tagIdsName;
 
     private String remark;
 

+ 15 - 11
fs-service/src/main/java/com/fs/qw/param/SopExternalContactInfo.java

@@ -1,26 +1,30 @@
 package com.fs.qw.param;
 
 
+import lombok.Data;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+@Data
 public class SopExternalContactInfo {
     private String createTime;
     private String tagIds;
+    private List<String> tagNames;
     private String remark;
 
-    public SopExternalContactInfo(String createTime, String tagIds,String remark) {
+    public SopExternalContactInfo(String createTime, List<String> tagNames, String tagIds,String remark) {
         this.createTime = createTime != null ? createTime : "无进线时间";
+        this.tagNames = (tagNames != null && !tagNames.isEmpty()) ? tagNames : Collections.singletonList("无标签");
         this.tagIds = (tagIds != null && !tagIds.equals("[]")) ? tagIds : "无标签";
         this.remark = remark != null ? remark : "无备注";
     }
-
-    public String getCreateTime() {
-        return createTime;
-    }
-
-    public String getTagIds() {
-        return tagIds;
+    public SopExternalContactInfo(String createTime, String tagIds,String remark) {
+        this.createTime = createTime != null ? createTime : "无进线时间";
+        this.tagNames = Collections.singletonList("无标签");
+        this.tagIds = (tagIds != null && !tagIds.equals("[]")) ? tagIds : "无标签";
+        this.remark = remark != null ? remark : "无备注";
     }
 
-    public String getRemark() {
-        return remark;
-    }
 }

+ 16 - 1
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -8,6 +8,7 @@ import com.fs.ad.enums.AdUploadType;
 import com.fs.ad.service.IAdHtmlClickLogService;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
+import com.fs.common.utils.PubFun;
 import com.fs.common.utils.StringUtils;
 import com.fs.company.service.ICompanyConfigService;
 import com.fs.course.config.CourseConfig;
@@ -173,6 +174,9 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private QwTagMapper qwTagMapper;
+
     @Autowired
     private QwExternalContactServiceImpl qwExternalContactService;
 
@@ -290,7 +294,18 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
 
     @Override
     public List<QwExternalContactVOTime> selectQwExternalContactListVOByUserIds(List<String> ids) {
-        return qwExternalContactMapper.selectQwExternalContactListVOByUserIds(ids);
+        List<QwExternalContactVOTime> list = qwExternalContactMapper.selectQwExternalContactListVOByUserIds(ids);
+        List<String> tagIds = list.stream().map(QwExternalContactVOTime::getTagIds).filter(StringUtils::isNotEmpty).flatMap(e -> JSON.parseArray(e, String.class).stream()).collect(Collectors.toList());
+        if(!tagIds.isEmpty()){
+            List<QwTag> tagList = qwTagMapper.selectQwTagListByTagIds(tagIds);
+            Map<String, QwTag> tagMap = PubFun.listToMapByGroupObject(tagList, QwTag::getTagId);
+            list.forEach(e -> {
+                List<String> tagId = JSON.parseArray(e.getTagIds(), String.class);
+                List<String> tagNameList = tagId.stream().filter(tagMap::containsKey).map(t -> tagMap.get(t).getName()).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+                e.setTagIdsName(tagNameList);
+            });
+        }
+        return list;
     }
 
     /**

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

@@ -48,5 +48,7 @@ public class SopUserLogsInfo implements Serializable {
     private Integer filterMode;
     @TableField(exist = false)
     private String chatId;
+    @TableField(exist = false)
+    private List<String> tagNames;
 
 }

+ 18 - 5
fs-service/src/main/java/com/fs/sop/service/impl/SopUserLogsInfoServiceImpl.java

@@ -22,15 +22,15 @@ import com.fs.course.service.IFsCourseLinkService;
 import com.fs.fastGpt.domain.FastGptChatReplaceWords;
 import com.fs.fastGpt.mapper.FastGptChatReplaceWordsMapper;
 import com.fs.qw.domain.*;
-import com.fs.qw.mapper.QwExternalContactMapper;
-import com.fs.qw.mapper.QwGroupChatMapper;
-import com.fs.qw.mapper.QwGroupChatUserMapper;
-import com.fs.qw.mapper.QwUserMapper;
+import com.fs.qw.mapper.*;
+import com.fs.qw.param.QwExternalContactVOTime;
+import com.fs.qw.param.QwTagSearchParam;
 import com.fs.qw.service.IQwCompanyService;
 import com.fs.qw.service.impl.AsyncSopTestService;
 import com.fs.qw.vo.GroupUserExternalVo;
 import com.fs.qw.vo.QwSopCourseFinishTempSetting;
 import com.fs.qw.vo.QwSopRuleTimeVO;
+import com.fs.qw.vo.QwTagGroupListVO;
 import com.fs.sop.domain.QwSop;
 import com.fs.sop.domain.QwSopLogs;
 import com.fs.sop.domain.SopUserLogs;
@@ -128,6 +128,8 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
 
     @Autowired
     private IFsCourseLinkService fsCourseLinkService;
+    @Autowired
+    private QwTagMapper qwTagMapper;
 
     @Autowired
     private QwExternalContactMapper qwExternalContactMapper;
@@ -173,7 +175,18 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
 
     @Override
     public List<SopUserLogsInfo> selectSopUserLogsInfoList(SopUserLogsInfo info) {
-     return  sopUserLogsInfoMapper.selectSopUserLogsInfoList(info);
+        List<SopUserLogsInfo> list = sopUserLogsInfoMapper.selectSopUserLogsInfoList(info);
+        List<String> tagIds = list.stream().map(SopUserLogsInfo::getTagIds).filter(StringUtils::isNotEmpty).flatMap(e -> JSON.parseArray(e, String.class).stream()).collect(Collectors.toList());
+        if(!tagIds.isEmpty()){
+            List<QwTag> tagList = qwTagMapper.selectQwTagListByTagIds(tagIds);
+            Map<String, QwTag> tagMap = PubFun.listToMapByGroupObject(tagList, QwTag::getTagId);
+            list.forEach(e -> {
+                List<String> tagId = JSON.parseArray(e.getTagIds(), String.class);
+                List<String> tagNameList = tagId.stream().filter(tagMap::containsKey).map(t -> tagMap.get(t).getName()).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+                e.setTagIdsName(tagNameList);
+            });
+        }
+        return list;
     }
     @Override
     public List<SopUserLogsInfoVOE> selectSopUserLogsInfoListVO(SopUserLogsInfo info) {

+ 6 - 0
fs-service/src/main/resources/mapper/qw/QwTagMapper.xml

@@ -38,6 +38,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectQwTagVo"/>
         where id = #{id}
     </select>
+    <select id="selectQwTagListByTagIds" resultType="com.fs.qw.domain.QwTag">
+        SELECT * FROM qw_tag WHERE tag_id IN
+        <foreach collection='tagIds' item='tagId' open='(' separator=',' close=')'>
+            #{tagId}
+        </foreach>
+    </select>
 
     <insert id="insertQwTag" parameterType="QwTag">
         insert into qw_tag