Jelajahi Sumber

群SOP任务一键群发

吴树波 1 bulan lalu
induk
melakukan
485a158c1e

+ 3 - 0
fs-service-system/src/main/java/com/fs/qw/mapper/QwGroupChatUserMapper.java

@@ -4,6 +4,7 @@ import com.fs.qw.domain.QwGroupChatUser;
 import com.fs.qw.param.QwGroupChatUserDataType;
 import com.fs.qw.vo.QwGroupChatUserVO;
 import com.fs.sop.domain.SopUserLogsInfo;
+import com.fs.sop.params.SopUserLogsInfoByIdsHasUserIdParam;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -145,4 +146,6 @@ public interface QwGroupChatUserMapper
     List<QwGroupChatUser> selectUserIsChat(@Param("externalUserId") String externalUserId);
 
     List<QwGroupChatUser> selectByChatId(SopUserLogsInfo sopUserLogsInfo);
+
+    List<SopUserLogsInfo> selectByIdAndRegister(SopUserLogsInfoByIdsHasUserIdParam userIdParam);
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -36,7 +36,7 @@ public interface QwUserMapper extends BaseMapper<QwUser>
      */
     public QwUser selectQwUserById(Long id);
 
-    @Select("select welcome_text,qw_user_name from qw_user where id = #{id}")
+    @Select("select welcome_text,qw_user_name,qw_user_id from qw_user where id = #{id}")
     public QwUser selectQwUserByIdByWeComeText(@Param("id") Long id);
     /**
      * 根据companyUserId查询企微用户

+ 1 - 0
fs-service-system/src/main/java/com/fs/sop/params/SendUserLogsInfoMsgParam.java

@@ -18,4 +18,5 @@ public class SendUserLogsInfoMsgParam {
     private String startTime;
     private String corpId;
     private Integer isRegister;
+    private Integer filterMode;
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/sop/params/SopUserLogsInfoByIdsHasUserIdParam.java

@@ -7,4 +7,5 @@ public class SopUserLogsInfoByIdsHasUserIdParam {
 
     private String[] ids;
     private Integer isRegister;
+    private String qwUserId;
 }

+ 19 - 8
fs-service-system/src/main/java/com/fs/sop/service/impl/SopUserLogsInfoServiceImpl.java

@@ -19,6 +19,7 @@ import com.fs.fastGpt.mapper.FastGptChatReplaceWordsMapper;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.mapper.QwExternalContactMapper;
+import com.fs.qw.mapper.QwGroupChatUserMapper;
 import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.service.impl.AsyncSopTestService;
 import com.fs.qw.vo.QwSopCourseFinishTempSetting;
@@ -116,6 +117,8 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
 
     @Autowired
     private CompanyUserMapper companyUserMapper;
+    @Autowired
+    private QwGroupChatUserMapper qwGroupChatUserMapper;
 
     @Override
     public void save(SopUserLogsInfo sopUserLogsInfo) {
@@ -363,13 +366,6 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
 
         List<FastGptChatReplaceWords> words = fastGptChatReplaceWordsMapper.selectAllFastGptChatReplaceWords();
 
-//        List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIds(param.getIds());
-        SopUserLogsInfoByIdsHasUserIdParam userIdParam=new SopUserLogsInfoByIdsHasUserIdParam();
-        userIdParam.setIds(param.getIds());
-        userIdParam.setIsRegister(param.getIsRegister());
-
-        List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIdsHasUserId(userIdParam);
-
         String[] userKey = param.getUserIdParam().split("\\|");
         String qwUserId = userKey[0].trim();
         String companyUserId = userKey[1].trim();
@@ -378,9 +374,24 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
         QwUser qwUser = qwUserMapper.selectQwUserByIdByWeComeText(Long.valueOf(qwUserId));
 
         if (qwUser == null) {
-              return R.error().put("msg","企业微信用户不存在:"+qwUserId);
+            return R.error().put("msg","企业微信用户不存在:"+qwUserId);
         }
 
+
+//        List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIds(param.getIds());
+        SopUserLogsInfoByIdsHasUserIdParam userIdParam=new SopUserLogsInfoByIdsHasUserIdParam();
+        userIdParam.setIds(param.getIds());
+        userIdParam.setIsRegister(param.getIsRegister());
+        userIdParam.setQwUserId(qwUser.getQwUserId());
+        List<SopUserLogsInfo> sopUserLogsInfos;
+        if(param.getFilterMode() == 1){
+            sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoByIdsHasUserId(userIdParam);
+        }else{
+            sopUserLogsInfos = qwGroupChatUserMapper.selectByIdAndRegister(userIdParam);
+        }
+        if(sopUserLogsInfos.isEmpty()){
+            return R.ok();
+        }
         String json = configService.selectConfigByKey("course.config");
         CourseConfig config = JSON.parseObject(json, CourseConfig.class);
 

+ 15 - 0
fs-service-system/src/main/resources/mapper/qw/QwGroupChatUserMapper.xml

@@ -65,6 +65,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectByChatId" resultType="com.fs.qw.domain.QwGroupChatUser">
         select * from qw_group_chat_user a where a.chat_id = #{chatId} and type = 2
     </select>
+    <select id="selectByIdAndRegister" resultType="com.fs.sop.domain.SopUserLogsInfo">
+        select
+            a.user_id as external_contact_id,
+            a.chat_id,
+            b.id external_id,
+            b.user_id qw_user_id,
+            a.corp_id,
+            b.name external_user_name,
+            b.fs_user_id
+        from qw_group_chat_user a inner join qw_external_contact b on a.user_id = b.external_user_id and b.user_id = #{qwUserId}
+        where a.id in <foreach collection="ids" item="item" open="(" separator="," close=")">#{item}</foreach>
+        <if test="isRegister != null and isRegister == 1">
+            b.fs_user_id is not null
+        </if>
+    </select>
 
     <insert id="insertOrUpdateQwGroupChatUser" parameterType="QwGroupChatUser" useGeneratedKeys="true" keyProperty="id">
         insert into qw_group_chat_user