فهرست منبع

优化查询sql,优化一键更新发课类型代码,文本跟随类型变动

yjwang 1 روز پیش
والد
کامیت
de978040fc

+ 11 - 4
fs-service/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

@@ -612,12 +612,19 @@ public class QwSopTempServiceImpl implements IQwSopTempService
         }
 
         //筛选出卡片类型,小程序(4)和APP(9)
-        List<QwSopTempContent> updateTempList = contentList.stream().filter(e -> e.getContentType() == 4 || e.getContentType() == 9).collect(Collectors.toList());
-        updateTempList.stream().forEach(e -> {
-                    e.setContentType(qwSopTemp.getSendType());
+        contentList.stream().forEach(e -> {
+                    if(e.getContent().contains("\"contentType\":\"4\"") || e.getContent().contains("\"contentType\":\"9\"")){
+                        e.setContentType(qwSopTemp.getSendType());
+                    }else if(qwSopTemp.getSendType() == 4 || qwSopTemp.getSendType() == 9){
+                        if(e.getContent().contains("\"contentType\":\"1\"") && qwSopTemp.getSendType() == 9){
+                            e.setContentType(11);
+                        }else if(e.getContent().contains("\"contentType\":\"11\"") && qwSopTemp.getSendType() == 4){
+                            e.setContentType(1);
+                        }
+                    }
                     //解析json信息
                     JSONObject jsonObject = JSONObject.parseObject(e.getContent());
-                    jsonObject.put("contentType",qwSopTemp.getSendType().toString());
+                    jsonObject.put("contentType",e.getContentType().toString());
                     e.setContent(jsonObject.toJSONString());
                     qwSopTempContentService.updateQwSopTempContent(e);
         });

+ 23 - 6
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -721,6 +721,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where cu.user_id = #{companyUserId}
     </select>
 
+<!--    <select id="getUserNumber" resultType="com.fs.store.vo.h5.UserListCountVO">-->
+<!--        SELECT-->
+<!--        fs_user_company_user.`status` as status,-->
+<!--        count( DISTINCT fs_user.user_id ) AS num-->
+<!--        FROM-->
+<!--        fs_user-->
+<!--        LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_user.user_id-->
+<!--        LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id-->
+<!--        WHERE fs_user.is_del = 0 and fs_user_company_user.is_repeat_fans is not null-->
+<!--        <if test="userId != null and userId != 0 ">-->
+<!--&#45;&#45;             and (fs_user_company_user.company_user_id = #{userId} OR company_user.parent_id = #{userId} )-->
+<!--            and fs_user_company_user.company_user_id = #{userId}-->
+<!--        </if>-->
+<!--        <if test="companyId != null ">-->
+<!--            and fs_user_company_user.company_id = #{companyId}-->
+<!--        </if>-->
+<!--        GROUP BY-->
+<!--        fs_user_company_user.`status`,fs_user_company_user.project_id-->
+<!--    </select>-->
+
     <select id="getUserNumber" resultType="com.fs.store.vo.h5.UserListCountVO">
         SELECT
         fs_user_company_user.`status` as status,
@@ -731,14 +751,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
         WHERE fs_user.is_del = 0 and fs_user_company_user.is_repeat_fans is not null
         <if test="userId != null and userId != 0 ">
---             and (fs_user_company_user.company_user_id = #{userId} OR company_user.parent_id = #{userId} )
             and fs_user_company_user.company_user_id = #{userId}
         </if>
-        AND fs_user_company_user.company_id =
-        CASE
-        WHEN #{companyId} IS NOT NULL THEN #{companyId}
-        ELSE fs_user_company_user.company_id
-        END
+        <if test="companyId != null ">
+            and fs_user_company_user.company_id = #{companyId}
+        </if>
         GROUP BY
         fs_user_company_user.`status`,fs_user_company_user.project_id
     </select>

+ 27 - 10
fs-service/src/main/resources/mapper/hisStore/FsUserScrmMapper.xml

@@ -763,24 +763,41 @@
         </if>
     </select>
 
+<!--    <select id="getUserNumber" resultType="com.fs.hisStore.vo.h5.UserListCountVO">-->
+<!--        SELECT-->
+<!--        fs_user_company_user.`status` as status,-->
+<!--            count( DISTINCT fs_user.user_id ) AS num-->
+<!--        FROM-->
+<!--            fs_user-->
+<!--                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_user.user_id-->
+<!--                LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id-->
+<!--        WHERE fs_user.is_del = 0 and fs_user_company_user.is_repeat_fans is not null-->
+<!--        <if test="userId != null and userId != 0 ">-->
+<!--&#45;&#45;             and (fs_user_company_user.company_user_id = #{userId} OR company_user.parent_id = #{userId} )-->
+<!--            and fs_user_company_user.company_user_id = #{userId}-->
+<!--        </if>-->
+<!--        <if test="companyId != null ">-->
+<!--            and fs_user_company_user.company_id = #{companyId}-->
+<!--        </if>-->
+<!--        GROUP BY-->
+<!--        fs_user_company_user.`status`,fs_user_company_user.project_id-->
+<!--    </select>-->
+
     <select id="getUserNumber" resultType="com.fs.hisStore.vo.h5.UserListCountVO">
         SELECT
         fs_user_company_user.`status` as status,
-            count( DISTINCT fs_user.user_id ) AS num
+        count( DISTINCT fs_user.user_id ) AS num
         FROM
-            fs_user
-                LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_user.user_id
-                LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
+        fs_user
+        LEFT JOIN fs_user_company_user ON fs_user_company_user.user_id = fs_user.user_id
+        LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
         WHERE fs_user.is_del = 0 and fs_user_company_user.is_repeat_fans is not null
         <if test="userId != null and userId != 0 ">
---             and (fs_user_company_user.company_user_id = #{userId} OR company_user.parent_id = #{userId} )
             and fs_user_company_user.company_user_id = #{userId}
         </if>
-        AND fs_user_company_user.company_id =
-        CASE
-        WHEN #{companyId} IS NOT NULL THEN #{companyId}
-        ELSE fs_user_company_user.company_id
-        END
+        <if test="companyId != null ">
+            and fs_user_company_user.company_id = #{companyId}
+        </if>
         GROUP BY
         fs_user_company_user.`status`,fs_user_company_user.project_id
     </select>