|
@@ -386,114 +386,31 @@
|
|
|
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,
|
|
|
- fs_user_course_count.miss_course_status,
|
|
|
- fs_user_course_count.course_ids,
|
|
|
- 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
|
|
|
+ fs_user.company_id
|
|
|
FROM
|
|
|
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 >= #{registerStartTime}
|
|
|
- </if>
|
|
|
- <if test="registerEndTime != null and registerEndTime !='' ">
|
|
|
- AND fs_user.create_time <= #{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
|
|
|
- <choose>
|
|
|
- <when test = "continueMissCourseSort == 0">
|
|
|
- fs_user_course_count.miss_course_days desc
|
|
|
- </when>
|
|
|
- <when test = "continueMissCourseSort == 1">
|
|
|
- fs_user_course_count.miss_course_days asc
|
|
|
- </when>
|
|
|
- <when test = "continueMissCourseSort == 2">
|
|
|
- fs_user.create_time desc
|
|
|
- </when>
|
|
|
- <when test = "continueMissCourseSort == 3">
|
|
|
- fs_user.nickname asc
|
|
|
- </when>
|
|
|
- </choose>
|
|
|
- </if>
|
|
|
+ <where>
|
|
|
+ fs_user.is_del = 0
|
|
|
+ <if test="registerStartTime != null and registerStartTime !='' ">
|
|
|
+ AND fs_user.create_time >= #{registerStartTime}
|
|
|
+ </if>
|
|
|
+ <if test="registerEndTime != null and registerEndTime !='' ">
|
|
|
+ AND fs_user.create_time <= #{registerEndTime}
|
|
|
+ </if>
|
|
|
+ <if test="companyUserIds != null and companyUserIds.size > 0">
|
|
|
+ AND fs_user.company_user_id in
|
|
|
+ <foreach collection="companyUserIds" item="item" index="index" open="(" separator="," close=")">
|
|
|
+ ${item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="nickname != null and nickname != ''">
|
|
|
+ AND fs_user.nickname like concat(#{nickname},'%')
|
|
|
+ </if>
|
|
|
+ <if test="phone != null and phone != ''">
|
|
|
+ AND fs_user.phone = #{phone}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ limit ${(pageNum-1)*pageSize},${pageSize}
|
|
|
</select>
|
|
|
|
|
|
<select id="selectFsUserPageList" resultType="FsUserPageListVO">
|
|
@@ -1305,91 +1222,28 @@
|
|
|
|
|
|
<select id="selectFsUserPageListCount" resultType="java.lang.Long">
|
|
|
SELECT
|
|
|
- COUNT(DISTINCT fu.user_id) as total_count
|
|
|
+ count(1)
|
|
|
FROM
|
|
|
- fs_user fu
|
|
|
- LEFT JOIN fs_user_course_count fucc ON fu.user_id = fucc.user_id
|
|
|
+ fs_user
|
|
|
<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>
|
|
|
+ fs_user.is_del = 0
|
|
|
<if test="registerStartTime != null and registerStartTime !='' ">
|
|
|
- AND fu.create_time >= #{registerStartTime}
|
|
|
+ AND fs_user.create_time >= #{registerStartTime}
|
|
|
</if>
|
|
|
<if test="registerEndTime != null and registerEndTime !='' ">
|
|
|
- AND fu.create_time <= #{registerEndTime}
|
|
|
+ AND fs_user.create_time <= #{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},'"%')
|
|
|
+ <if test="companyUserIds != null and companyUserIds.size > 0">
|
|
|
+ AND fs_user.company_user_id in
|
|
|
+ <foreach collection="companyUserIds" item="item" index="index" open="(" separator="," close=")">
|
|
|
+ ${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 test="nickname != null and nickname!=''">
|
|
|
+ AND fs_user.nickname like concat(#{nickname},'%')
|
|
|
</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 test="phone != null and phone!=''">
|
|
|
+ AND fs_user.phone = #{phone}
|
|
|
</if>
|
|
|
</where>
|
|
|
</select>
|