Browse Source

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_scrm_java

# Conflicts:
#	fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml
caoliqin 4 days ago
parent
commit
0f8adfeef7

+ 54 - 0
fs-company/src/main/java/com/fs/user/FsUserAdminController.java

@@ -0,0 +1,54 @@
+package com.fs.user;
+
+import com.fs.common.constant.HttpStatus;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.utils.ServletUtils;
+import com.fs.core.security.LoginUser;
+import com.fs.core.web.service.TokenService;
+import com.fs.store.param.h5.FsUserPageListParam;
+import com.fs.store.service.IFsUserService;
+import com.fs.store.vo.h5.FsUserPageListVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Api(tags = "会员管理接口")
+@RestController
+@RequestMapping("/user/fsUser")
+@AllArgsConstructor
+public class FsUserAdminController extends BaseController {
+
+    @Autowired
+    private IFsUserService fsUserService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @PreAuthorize("@ss.hasPermi('user:fsUser:list')")
+    @PostMapping("/list")
+    @ApiOperation("会员列表(与移动端使用的相同查询)")
+    public TableDataInfo pageList(@RequestBody FsUserPageListParam param) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        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;
+    }
+
+
+}

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -214,6 +214,8 @@ public interface FsUserMapper
     List<FsUser> selectFsUserListLimit(FsUser fsUser);
 
     List<FsUserPageListVO> selectFsUserPageList(FsUserPageListParam param);
+    List<FsUserPageListVO> selectFsUserPageListNew(FsUserPageListParam param);
+    Long selectFsUserPageListCount(FsUserPageListParam param);
 
     List<UserListCountVO> getUserNumber(@Param("userId") Long userId);
 

+ 5 - 0
fs-service-system/src/main/java/com/fs/store/param/h5/FsUserPageListParam.java

@@ -58,6 +58,11 @@ public class FsUserPageListParam implements Serializable {
     @ApiModelProperty(value = "电话 (PC端使用)")
     private String phone;
 
+    /**
+     * 公司id
+     */
+    private Long companyId;
+
 
 }
 

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsUserService.java

@@ -143,6 +143,8 @@ public interface IFsUserService
     List<FsUser> getUserListLimit(FsUser fsUser);
 
     List<FsUserPageListVO> selectFsUserPageList(FsUserPageListParam param);
+    List<FsUserPageListVO> selectFsUserPageListNew(FsUserPageListParam param);
+    Long selectFsUserCount(FsUserPageListParam param);
 
     UserListPageVO getUserNumber(Long userId);
 

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

@@ -437,6 +437,16 @@ public class FsUserServiceImpl implements IFsUserService
         return fsUserMapper.selectFsUserPageList(param);
     }
 
+    @Override
+    public List<FsUserPageListVO> selectFsUserPageListNew(FsUserPageListParam param) {
+        return fsUserMapper.selectFsUserPageListNew(param);
+    }
+
+    @Override
+    public Long selectFsUserCount(FsUserPageListParam param) {
+        return fsUserMapper.selectFsUserPageListCount(param);
+    }
+
     @Override
     public UserListPageVO getUserNumber(Long userId) {
         List<UserListCountVO> list = fsUserMapper.getUserNumber(userId);

+ 221 - 7
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -376,6 +376,136 @@
         </foreach>
     </delete>
 
+    <select id="selectFsUserPageListNew" resultType="FsUserPageListVO">
+        SELECT
+        fs_user.*,
+        fs_user_course_count.id,
+        fs_user_course_count.watch_course_count,
+        fs_user_course_count.miss_course_count,
+        fs_user_course_count.miss_course_status,
+        fs_user_course_count.course_id,
+        fs_user_course_count.part_course_count,
+        fs_user_course_count.last_watch_date,
+        fs_user_course_count.STATUS AS courseCountStatus,
+        fs_user_course_count.stop_watch_days,
+        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
+        FROM
+        (SELECT
+        fu.user_id
+        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
+        <if test="continueMissCourseSort != null and continueMissCourseSort !='' ">
+            ORDER BY
+            <choose>
+                <when test = "continueMissCourseSort == 0">
+                    fucc.miss_course_days DESC
+                </when>
+                <when test = "continueMissCourseSort == 1">
+                    fucc.miss_course_days ASC
+                </when>
+                <when test = "continueMissCourseSort == 2">
+                    fu.create_time DESC
+                </when>
+                <when test = "continueMissCourseSort == 3">
+                    fu.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">
         SELECT
         fs_user.*,
@@ -466,12 +596,7 @@
                 </when>
             </choose>
         </if>
-        <if test="nickname != null and nickname !='' ">
-            AND nickname LIKE concat('%"',#{nickname},'"%')
-        </if>
-        <if test="phone != null and phone !='' ">
-            AND phone LIKE concat('%"',#{phone},'"%')
-        </if>
+
         group by fs_user.user_id
 
         <if test="continueMissCourseSort != null and continueMissCourseSort !='' ">
@@ -1166,5 +1291,94 @@
             fs_user.company_user_id = #{companyUserId}
     </select>
 
-
+    <select id="selectFsUserPageListCount" resultType="java.lang.Long">
+        SELECT
+        COUNT(DISTINCT fu.user_id) as total_count
+        FROM
+        fs_user fu
+        LEFT JOIN fs_user_course_count fucc ON fu.user_id = fucc.user_id
+        <where>
+            <if test="companyId != null">
+                AND fu.company_id = ${companyId}
+            </if>
+            <if test="phone != null and phone !=''">
+                AND fu.phone like concat(#{phone},'%')
+            </if>
+            <if test="nickname !=null and nickname != ''">
+                AND fu.nickname like concat(#{nickname},'%')
+            </if>
+            <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 EXISTS (
+                SELECT 1 FROM company_tag_user ctu2
+                WHERE fu.user_id = ctu2.user_id
+                AND (
+                <foreach collection="tagIds" item="item" index="index" separator="OR">
+                    ctu2.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>
+        </where>
+    </select>
 </mapper>