소스 검색

fix: 部分优化

xdd 1 개월 전
부모
커밋
c23ae62756
2개의 변경된 파일85개의 추가작업 그리고 110개의 파일을 삭제
  1. 3 7
      fs-company/src/main/java/com/fs/user/FsUserAdminController.java
  2. 82 103
      fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

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

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

@@ -398,122 +398,101 @@
         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>
-        order by fu.user_id desc
-        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
-        order by fs_user.user_id desc
     </select>
 
     <select id="selectFsUserPageList" resultType="FsUserPageListVO">