Browse Source

feat(qw): 更新外部联系人等级和类型字段

- 在QwExternalContactMapper.xml中添加level_type字段的批量更新逻辑
- 在QwExternalContactRatingMoreSevenDaysServiceImpl.java中设置默认levelType值为5
- 增加对ratingVOS返回levelType非空判断并赋值给externalContact对象
- 修改SopUserLogsMapper.xml中send_type条件从等于2改为包含2和11
- 统一在多个查询语句中增加is_rating=1的过滤条件以确保数据准确性
xw 5 days ago
parent
commit
956b6dc105

+ 5 - 0
fs-qw-task/src/main/java/com/fs/app/taskService/impl/QwExternalContactRatingMoreSevenDaysServiceImpl.java

@@ -213,6 +213,7 @@ public class QwExternalContactRatingMoreSevenDaysServiceImpl implements QwExtern
                 QwExternalContact externalContact = new QwExternalContact();
                 externalContact.setId(externalId);
                 externalContact.setLevel(5);  // E级
+                externalContact.setLevelType(5);  // E级类型
                 externalContact.setIsDaysNotStudy(1);
                 return externalContact;
             }
@@ -226,6 +227,7 @@ public class QwExternalContactRatingMoreSevenDaysServiceImpl implements QwExtern
                 QwExternalContact externalContact = new QwExternalContact();
                 externalContact.setId(externalId);
                 externalContact.setLevel(5);  // E级
+                externalContact.setLevelType(5);  // E级类型
                 externalContact.setIsDaysNotStudy(1);
                 return externalContact;
             } else {
@@ -237,6 +239,9 @@ public class QwExternalContactRatingMoreSevenDaysServiceImpl implements QwExtern
                 if (ratingVOS.get(0).getLevel() != null) {
                     externalContact.setLevel(ratingVOS.get(0).getLevel());
                 }
+                if (ratingVOS.get(0).getLevelType() != null) {
+                    externalContact.setLevelType(ratingVOS.get(0).getLevelType());
+                }
                 externalContact.setIsDaysNotStudy(0);  // 标记为非连续未看课
                 return externalContact;
             }

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

@@ -210,6 +210,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             WHEN #{item.id} THEN #{item.level}
         </foreach>
         ELSE level
+        END,
+        level_type = CASE id
+        <foreach collection="list" item="item">
+            WHEN #{item.id} THEN #{item.levelType}
+        </foreach>
+        ELSE level_type
         END
         WHERE id IN
         <foreach collection="list" item="item" open="(" separator="," close=")">

+ 4 - 2
fs-service/src/main/resources/mapper/sop/SopUserLogsMapper.xml

@@ -255,7 +255,7 @@
             ul.`status` = '1'
           and qs.is_rating=1
           and qs.type=2
-          and qs.send_type=2
+          and qs.send_type in (2,11)
           and qs.`status` in (2,3)
           AND ( DATEDIFF( CURRENT_DATE, ul.start_time ) ) >= 7
         ORDER BY id ASC
@@ -278,6 +278,7 @@
             sop_user_logs ul  LEFT JOIN qw_sop qs on ul.sop_id=qs.id
         WHERE
             ul.`status` = '1'
+          and qs.is_rating=1
           and qs.type=2
           and qs.send_type in (2,11)
           and qs.`status` in (2,3)
@@ -294,6 +295,7 @@
             sop_user_logs ul  LEFT JOIN qw_sop qs on ul.sop_id=qs.id
         WHERE
             ul.`status` = '1'
+          and qs.is_rating=1
           and qs.type=2
           and qs.send_type in (2,11)
           and qs.`status` in (2,3)
@@ -320,7 +322,7 @@
             ul.`status` = '1'
           and qs.is_rating=1
           and qs.type=2
-          and qs.send_type=2
+          and qs.send_type in (2,11)
           and qs.`status` in (2,3)
           and ul.sop_id= #{sopId}
           AND ( DATEDIFF( CURRENT_DATE, ul.start_time ) ) >= 7