瀏覽代碼

Merge remote-tracking branch 'company/master'

dongdong.xiang 1 月之前
父節點
當前提交
2c50cf2b1c

+ 1 - 0
fs-company/src/main/java/com/fs/course/controller/FsCourseWatchLogController.java

@@ -184,6 +184,7 @@ public class FsCourseWatchLogController extends BaseController
     {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId( loginUser.getCompany().getCompanyId());
+        param.setCompanyUserId(loginUser.getUser().getUserId());
         List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVONew(param);
         TableDataInfo rspData = new TableDataInfo();
         rspData.setCode(HttpStatus.SUCCESS);

+ 2 - 0
fs-company/src/main/java/com/fs/qw/vo/QwWatchLogStatisticsListVO.java

@@ -10,6 +10,8 @@ public class QwWatchLogStatisticsListVO {
     private Long id;
     private String qwUserName;
     private String companyUserName;
+    private Long companyUserId;
+    private Long companyId;
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createTime;
     private Long line;//进线数

+ 3 - 7
fs-company/src/main/java/com/fs/user/FsUserAdminController.java

@@ -39,18 +39,14 @@ public class FsUserAdminController extends BaseController {
     @PostMapping("/list")
     @ApiOperation("会员列表(与移动端使用的相同查询)")
     public TableDataInfo pageList(@RequestBody FsUserPageListParam param) {
+        startPage();
+
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId(loginUser.getCompany().getCompanyId());
         param.setPcLoginUserId(loginUser.getUser().getUserId());
 
         List<FsUserPageListVO> list = fsUserService.selectFsUserPageListNew(param);
-        Long total = fsUserService.selectFsUserCount(param);
-        TableDataInfo rspData = new TableDataInfo();
-        rspData.setCode(HttpStatus.SUCCESS);
-        rspData.setMsg("查询成功");
-        rspData.setRows(list);
-        rspData.setTotal(total);
-        return rspData;
+        return getDataTable(list);
     }
 
     @PostMapping("/auditUser")

+ 42 - 0
fs-qw-task/src/main/java/com/fs/app/task/UserCourseWatchCountTask.java

@@ -0,0 +1,42 @@
+package com.fs.app.task;
+
+import com.fs.common.core.redis.RedisCache;
+import com.fs.course.mapper.FsCourseWatchLogMapper;
+import com.fs.course.service.IFsCourseWatchLogService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class UserCourseWatchCountTask {
+
+    @Autowired
+    private FsCourseWatchLogMapper courseWatchLogMapper;
+
+    @Autowired
+    RedisCache redisCache;
+
+    @Autowired
+    private IFsCourseWatchLogService courseWatchLogService;
+
+
+    /**
+     * 每天两点进行会员看课统计
+     */
+    @Scheduled(cron = "0 0 2 * * ?")  // 2点0分0秒执行
+    public void userCourseCountTask() {
+        try {
+            log.info("会员看课统计任务执行----------开始");
+            //
+
+            log.info("会员看课统计任务执行----------结束");
+        } catch (Exception e) {
+            log.error("会员看课统计任务执行----------定时任务执行失败", e);
+        }
+
+    }
+
+
+}

+ 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);
 

+ 4 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsStoreProduct.java

@@ -1,6 +1,9 @@
 package com.fs.store.domain;
 
 import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fs.common.annotation.Excel;
 import com.fs.common.core.domain.BaseEntity;
 import lombok.Data;
@@ -25,6 +28,7 @@ public class FsStoreProduct extends BaseEntity
     @Excel(name = "商品图片")
     private String image;
 
+    @TableField(strategy = FieldStrategy.IGNORED)
     private String video;
 
     /** 轮播图 */

+ 7 - 1
fs-service-system/src/main/java/com/fs/store/service/cache/impl/FsUserCourseCacheServiceImpl.java

@@ -35,6 +35,12 @@ public class FsUserCourseCacheServiceImpl implements IFsUserCourseCacheService {
         if(courseId == null) {
             return "-";
         }
-        return COURSE_ID_AND_NAME.get(courseId, e-> fsUserCourseService.selectFsUserCourseByCourseId(courseId).getCourseName());
+        return COURSE_ID_AND_NAME.get(courseId, e-> {
+            FsUserCourse course = fsUserCourseService.selectFsUserCourseByCourseId(courseId);
+            if(course == null) {
+                return "-";
+            }
+            return course.getCourseName();
+        });
     }
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -439,6 +439,7 @@ public class FsUserServiceImpl implements IFsUserService
 
     @Override
     public List<FsUserPageListVO> selectFsUserPageListNew(FsUserPageListParam param) {
+        //
         return fsUserMapper.selectFsUserPageListNew(param);
     }
 

+ 17 - 14
fs-service-system/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -538,28 +538,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 AND company_user_id = #{maps.companyUserId}
             </if>
             <if test= 'maps.sTime != null '>
-                and DATE(l.create_time) &gt;= DATE(#{maps.sTime})
+                and DATE(create_time) &gt;= DATE(#{maps.sTime})
             </if>
             <if test='maps.eTime != null '>
-                and DATE(l.create_time) &lt;= DATE(#{maps.eTime})
+                and DATE(create_time) &lt;= DATE(#{maps.eTime})
             </if>
             <if test= 'maps.scheduleStartTime != null '>
-                and DATE(l.camp_period_time) &gt;= DATE(#{maps.scheduleStartTime})
+                and DATE(camp_period_time) &gt;= DATE(#{maps.scheduleStartTime})
             </if>
             <if test='maps.scheduleEndTime != null '>
-                and DATE(l.camp_period_time) &lt;= DATE(#{maps.scheduleEndTime})
+                and DATE(camp_period_time) &lt;= DATE(#{maps.scheduleEndTime})
             </if>
             <if test= 'maps.upSTime != null '>
-                and DATE(l.update_time) &gt;= DATE(#{maps.upSTime})
+                and DATE(update_time) &gt;= DATE(#{maps.upSTime})
             </if>
             <if test='maps.upETime != null '>
-                and DATE(l.update_time) &lt;= DATE(#{maps.upETime})
+                and DATE(update_time) &lt;= DATE(#{maps.upETime})
             </if>
             <if test="maps.sourceType != null">
                 and send_type = #{maps.sourceType}
             </if>
             <if test="maps.sopIds != null and maps.sopIds.size() > 0">
-            and l.sop_id in
+            and sop_id in
                 AND sop_id IN
                 <foreach item="sopId" index="index" collection="maps.sopIds" open="(" separator="," close=")">
                     #{sopId}
@@ -593,25 +593,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 AND company_user_id = #{maps.companyUserId}
             </if>
             <if test= 'maps.sTime != null '>
-                and DATE(l.create_time) &gt;= DATE(#{maps.sTime})
+                and DATE(create_time) &gt;= DATE(#{maps.sTime})
             </if>
             <if test='maps.eTime != null '>
-                and DATE(l.create_time) &lt;= DATE(#{maps.eTime})
+                and DATE(create_time) &lt;= DATE(#{maps.eTime})
             </if>
             <if test= 'maps.scheduleStartTime != null '>
-                and DATE(l.camp_period_time) &gt;= DATE(#{maps.scheduleStartTime})
+                and DATE(camp_period_time) &gt;= DATE(#{maps.scheduleStartTime})
             </if>
             <if test='maps.scheduleEndTime != null '>
-                and DATE(l.camp_period_time) &lt;= DATE(#{maps.scheduleEndTime})
+                and DATE(camp_period_time) &lt;= DATE(#{maps.scheduleEndTime})
             </if>
             <if test= 'maps.upSTime != null '>
-                and DATE(l.update_time) &gt;= DATE(#{maps.upSTime})
+                and DATE(update_time) &gt;= DATE(#{maps.upSTime})
             </if>
             <if test='maps.upETime != null '>
-                and DATE(l.update_time) &lt;= DATE(#{maps.upETime})
+                and DATE(update_time) &lt;= DATE(#{maps.upETime})
+            </if>
+            <if test="maps.sourceType != null">
+                and send_type = #{maps.sourceType}
             </if>
             <if test="maps.sopIds != null and maps.sopIds.size() > 0">
-                and l.sop_id in
+                and sop_id in
                 AND sop_id IN
                 <foreach item="sopId" index="index" collection="maps.sopIds" open="(" separator="," close=")">
                     #{sopId}

+ 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

+ 1 - 1
fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml

@@ -196,7 +196,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="prescribeName != null">#{prescribeName},</if>
             <if test="isDisplay != null">#{isDisplay},</if>
             <if test="tuiCateId != null">#{tuiCateId},</if>
-            <if test="companyIds != null and companyIds != ''">#{company_ids},</if>
+            <if test="companyIds != null and companyIds != ''">#{companyIds},</if>
          </trim>
     </insert>
 

+ 92 - 103
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -378,7 +378,14 @@
 
     <select id="selectFsUserPageListNew" resultType="FsUserPageListVO">
         SELECT
-        fs_user.*,
+        fs_user.user_id,
+        fs_user.nickname,
+        fs_user.avatar,
+        fs_user.phone,
+        fs_user.status,
+        fs_user.create_time,
+        fs_user.remark,
+        fs_user.company_user_id,
         fs_user_course_count.id,
         fs_user_course_count.watch_course_count,
         fs_user_course_count.miss_course_count,
@@ -391,120 +398,102 @@
         fs_user_course_count.complete_watch_date,
         GROUP_CONCAT(DISTINCT company_tag.tag) AS tag,
         GROUP_CONCAT(DISTINCT company_tag.tag_id) AS tagIds,
-        company_user.nick_name as companyUserNickName,
-        if(fs_user.company_user_id = #{pcLoginUserId} or company_user.parent_id = #{pcLoginUserId}, 1, 0) as isCurrentCompanyUser
-        FROM
-        (SELECT
-        fu.user_id
+        company_user.nick_name as companyUserNickName
         FROM
-        fs_user fu
-        LEFT JOIN company_user cu ON fu.company_user_id = cu.user_id
-        LEFT JOIN fs_user_course_count fucc ON fu.user_id = fucc.user_id
-        LEFT JOIN company_tag_user ctu ON fu.user_id = ctu.user_id
-        <where>
-            <if test="userId != null and userId !='' ">
-                AND (cu.user_id = #{userId} OR cu.parent_id = #{userId})
-            </if>
-            <if test="companyUserId != null and companyUserId !='' ">
-                AND cu.user_id = #{companyUserId}
-            </if>
-<!--            <choose>-->
-<!--                <when test = "isBlack">-->
-<!--                    AND fu.status = 0-->
-<!--                </when>-->
-<!--                <otherwise>-->
-<!--                    AND fu.status = 1-->
-<!--                </otherwise>-->
-<!--            </choose>-->
-            <if test="keyword != null and keyword !='' ">
-                AND (fu.nickname LIKE concat('%',#{keyword},'%')
-                OR fu.phone LIKE concat('%',#{keyword},'%')
-                )
-            </if>
-            <if test="registerStartTime != null and registerStartTime !='' ">
-                AND fu.create_time &gt;= #{registerStartTime}
-            </if>
-            <if test="registerEndTime != null and registerEndTime !='' ">
-                AND fu.create_time &lt;= #{registerEndTime}
-            </if>
-            <if test="tagIds != null and tagIds.length > 0">
-                AND
-                <foreach collection="tagIds" item="item" index="index" open="(" separator="or" close=")">
-                    ctu.tag_ids LIKE concat('%"',#{item},'"%')
-                </foreach>
-            </if>
-            <if test="tabValue != null and tabValue !='' ">
-                <choose>
-                    <when test = "tabValue == 1">
-                        AND DAY(fu.create_time) = DAY(NOW())
-                    </when>
-                    <when test = "tabValue == 2">
-                        AND DAY(fucc.complete_watch_date) = DAY(NOW())
-                    </when>
-                    <when test = "tabValue == 3">
-                        AND fucc.status = 3
-                    </when>
-                </choose>
-            </if>
-            <if test="watchCourseType != null and watchCourseType !='' ">
-                <choose>
-                    <when test = "watchCourseType == 1">
-                        AND fucc.status = 3
-                    </when>
-                    <when test = "watchCourseType == 2">
-                        AND fucc.status = 1
-                    </when>
-                    <when test = "watchCourseType == 3">
-                        AND fucc.status = 2
-                    </when>
-                </choose>
-            </if>
-            <if test="missCourseStatus != null and missCourseStatus !='' ">
-                <choose>
-                    <when test = "missCourseStatus == 1">
-                        AND fucc.miss_course_status = 1
-                    </when>
-                    <when test = "missCourseStatus == 2">
-                        AND fucc.miss_course_status = 2
-                    </when>
-                </choose>
-            </if>
-            <if test="nickname !=null and nickname != ''">
-                AND fu.nickname like concat(#{nickname},'%')
-            </if>
-            <if test="phone != null and phone !=''">
-                AND fu.phone like concat(#{phone},'%')
-            </if>
-            <if test="companyId != null">
-                AND fu.company_id = ${companyId}
-            </if>
-        </where>
-        GROUP BY fu.user_id
+        fs_user
+        left join company_user on fs_user.company_user_id = company_user.user_id
+        LEFT JOIN fs_user_course_count ON fs_user.user_id = fs_user_course_count.user_id
+        LEFT JOIN company_tag_user ON fs_user.user_id = company_tag_user.user_id
+        LEFT JOIN company_tag ON FIND_IN_SET(company_tag.tag_id, company_tag_user.tag_ids) > 0
+        where fs_user.is_del = 0
+        <if test="userId != null and userId !='' ">
+            -- 当前销售下面的用户 或者下级销售的会员
+            and (company_user.user_id = #{userId} OR company_user.parent_id = #{userId} )
+        </if>
+        <if test="companyUserId != null and companyUserId !='' ">
+            and company_user.user_id = #{companyUserId}
+        </if>
+        <choose>
+            <when test = "isBlack">
+                AND fs_user.status = 0
+            </when>
+            <otherwise>
+                AND fs_user.status = 1
+            </otherwise>
+        </choose>
+        <if test="keyword != null and keyword !='' ">
+            AND (fs_user.nickname LIKE concat('%',#{keyword},'%')
+            or  fs_user.phone LIKE concat('%',#{keyword},'%')
+            )
+        </if>
+        <if test="registerStartTime != null and registerStartTime !='' ">
+            AND fs_user.create_time &gt;= #{registerStartTime}
+        </if>
+        <if test="registerEndTime != null and registerEndTime !='' ">
+            AND fs_user.create_time &lt;= #{registerEndTime}
+        </if>
+        <if test="tagIds != null and tagIds.length > 0">
+            AND
+            <foreach collection="tagIds" item="item" index="index" open="(" separator="or" close=")">
+                company_tag_user.tag_ids LIKE concat('%"',#{item},'"%')
+            </foreach>
+        </if>
+        <if test="tabValue != null and tabValue !='' ">
+            <choose>
+                <when test = "tabValue == 1">
+                    AND DAY(fs_user.create_time) = DAY(NOW())
+                </when>
+                <when test = "tabValue == 2">
+                    AND DAY(fs_user_course_count.complete_watch_date) = DAY(NOW())
+                </when>
+                <when test = "tabValue == 3">
+                    AND (fs_user_course_count.status = 3 or fs_user_course_count.status is null)
+                </when>
+            </choose>
+        </if>
+        <if test="watchCourseType != null and watchCourseType !='' ">
+            <choose>
+                <when test = "watchCourseType == 1">
+                    AND (fs_user_course_count.status = 3 or fs_user_course_count.status is null)
+                </when>
+                <when test = "watchCourseType == 2">
+                    AND fs_user_course_count.status = 1
+                </when>
+                <when test = "watchCourseType == 3">
+                    AND fs_user_course_count.status = 2
+                </when>
+            </choose>
+        </if>
+        <if test="missCourseStatus != null and missCourseStatus !='' ">
+            <choose>
+                <when test = "missCourseStatus == 1">
+                    AND fs_user_course_count.miss_course_status = 1
+                </when>
+                <when test = "missCourseStatus == 2">
+                    AND (fs_user_course_count.miss_course_status = 2 or fs_user_course_count.miss_course_status is null )
+                </when>
+            </choose>
+        </if>
+
+        group by fs_user.user_id
+
         <if test="continueMissCourseSort != null and continueMissCourseSort !='' ">
-            ORDER BY
+            order by
             <choose>
                 <when test = "continueMissCourseSort == 0">
-                    fucc.miss_course_days DESC
+                    fs_user_course_count.miss_course_days desc
                 </when>
                 <when test = "continueMissCourseSort == 1">
-                    fucc.miss_course_days ASC
+                    fs_user_course_count.miss_course_days asc
                 </when>
                 <when test = "continueMissCourseSort == 2">
-                    fu.create_time DESC
+                    fs_user.create_time desc
                 </when>
                 <when test = "continueMissCourseSort == 3">
-                    fu.nickname ASC
+                    fs_user.nickname asc
                 </when>
             </choose>
         </if>
-        LIMIT ${(pageNum-1)*pageSize},${pageSize}
-        ) temp_user_ids
-        JOIN fs_user ON temp_user_ids.user_id = fs_user.user_id
-        LEFT JOIN company_user ON fs_user.company_user_id = company_user.user_id
-        LEFT JOIN fs_user_course_count ON fs_user.user_id = fs_user_course_count.user_id
-        LEFT JOIN company_tag_user ON fs_user.user_id = company_tag_user.user_id
-        LEFT JOIN company_tag ON FIND_IN_SET(company_tag.tag_id, company_tag_user.tag_ids) > 0
-        GROUP BY fs_user.user_id
     </select>
 
     <select id="selectFsUserPageList" resultType="FsUserPageListVO">
@@ -769,7 +758,7 @@
     <select id="countTag" resultType="FsUserSummaryCountTagVO">
         SELECT
             company_tag.tag AS tagName,
-            count( fs_user.user_id ) AS userCount
+            count( fs_user.user_id ) AS number
         FROM
             company_tag_user
                 LEFT JOIN fs_user ON fs_user.user_id = company_tag_user.user_id