|
@@ -4,87 +4,96 @@
|
|
|
|
|
|
<select id="findList" resultType="com.jeeplus.loginacea.service.dto.LoginAceDTO">
|
|
|
SELECT
|
|
|
- ei.des1 AS des1,
|
|
|
- COUNT(DISTINCT su.ID) AS totalCount,
|
|
|
- COUNT(DISTINCT CASE WHEN su.login_date IS NOT NULL THEN su.ID END) AS loginYesc,
|
|
|
- COUNT(DISTINCT CASE WHEN su.login_date IS NULL THEN su.ID END) AS loginNotc
|
|
|
+ ei.des1 AS des1,
|
|
|
+ COUNT(DISTINCT su.ID) AS zs,
|
|
|
+ COUNT(DISTINCT CASE WHEN su.login_date IS NOT NULL THEN su.ID END) AS cg,
|
|
|
+ COUNT(DISTINCT CASE WHEN su.login_date IS NULL THEN su.ID END) AS sb
|
|
|
FROM
|
|
|
- ly_enterprise_info AS ei
|
|
|
- LEFT JOIN
|
|
|
- sys_user AS su
|
|
|
- ON
|
|
|
- su.login_name IN (ei.des13, ei.bz6, ei.phone)
|
|
|
- LEFT JOIN
|
|
|
- sys_user_role AS sur
|
|
|
- ON
|
|
|
- sur.user_id = su.ID
|
|
|
- LEFT JOIN
|
|
|
- sys_role AS sr
|
|
|
- ON
|
|
|
- sr.ID = sur.role_id
|
|
|
+ ly_enterprise_info AS ei
|
|
|
+ INNER JOIN sys_user AS su ON su.login_name IN (ei.des13, ei.bz6, ei.phone) AND su.login_date IS NOT NULL
|
|
|
+ LEFT JOIN sys_user_role AS sur ON sur.user_id = su.ID
|
|
|
+ LEFT JOIN sys_role AS sr ON sr.ID = sur.role_id
|
|
|
WHERE
|
|
|
- ei.del_flag=0
|
|
|
- and sr.id not in ('ade960e8f02544998b07397304c059c1','17bac1f980264e3e8193bc965538e2c6')
|
|
|
- <if test="roleId != null and roleId !=''">
|
|
|
- and sr.id=#{roleId}
|
|
|
+ ei.del_flag = 0
|
|
|
+ AND sr.id NOT IN ('ade960e8f02544998b07397304c059c1', '17bac1f980264e3e8193bc965538e2c6')
|
|
|
+ <if test="roleId != null and roleId != ''">
|
|
|
+ AND sr.id = #{roleId}
|
|
|
</if>
|
|
|
- <if test="des1 != null and des1 !=''">
|
|
|
- and ei.des1=#{des1}
|
|
|
+ <if test="des1 != null and des1 != ''">
|
|
|
+ AND ei.des1 = #{des1}
|
|
|
</if>
|
|
|
- <if test="dtime != null and dtime ==1">
|
|
|
-/* and su.login_date >= DATE_FORMAT(CURDATE(), '%Y-01-01') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-01-01') + INTERVAL 1
|
|
|
-*/
|
|
|
- and YEAR(su.login_date) = YEAR(CURDATE())
|
|
|
+ <if test="dtime != null and dtime == 1">
|
|
|
+ AND YEAR(su.login_date) = YEAR(CURDATE())
|
|
|
</if>
|
|
|
- <if test="dtime != null and dtime ==2">
|
|
|
- and su.login_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH
|
|
|
+ <if test="dtime != null and dtime == 2">
|
|
|
+ AND su.login_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH
|
|
|
</if>
|
|
|
- <if test="dtime != null and dtime ==3">
|
|
|
- and su.login_date >= DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') + INTERVAL 1 YEAR
|
|
|
+ <if test="dtime != null and dtime == 3">
|
|
|
+ AND su.login_date >= DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') + INTERVAL 1 YEAR
|
|
|
+ </if>
|
|
|
+ <if test="dtime != null and dtime == 4">
|
|
|
+ AND su.login_date >= DATE_FORMAT(CURDATE(), '%Y-%m-%d') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-%d') + INTERVAL 1 DAY
|
|
|
+ </if>
|
|
|
+ <if test="stime != null and etime != null">
|
|
|
+ AND su.login_date >= #{stime} AND su.login_date <![CDATA[<]]> #{etime}
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
- ei.des1
|
|
|
+ ei.des1
|
|
|
+ ${ew.customSqlSegment}
|
|
|
</select>
|
|
|
|
|
|
<select id="findList1" resultType="com.jeeplus.loginacea.service.dto.LoginAceDTO">
|
|
|
SELECT DISTINCT
|
|
|
- su.login_name AS loginName,
|
|
|
- su.name AS name,
|
|
|
- su.login_date AS loginDate,
|
|
|
- MIN(ei.name) AS ggqy
|
|
|
+ su.login_name AS loginName,
|
|
|
+ su.name AS name,
|
|
|
+ su.login_date AS loginDate,
|
|
|
+ MIN(ei.name) AS ggqy,
|
|
|
+ COALESCE(log.loginCount, 0) AS cs -- 统计用户的登录次数,没有登录记录的显示为0
|
|
|
FROM
|
|
|
- ly_enterprise_info AS ei
|
|
|
- LEFT JOIN
|
|
|
- sys_user AS su ON su.login_name IN (ei.des13, ei.bz6, ei.phone)
|
|
|
- LEFT JOIN
|
|
|
- sys_user_role AS sur ON sur.user_id = su.ID
|
|
|
- LEFT JOIN
|
|
|
- sys_role AS sr ON sr.ID = sur.role_id
|
|
|
- WHERE
|
|
|
- ei.del_flag = 0
|
|
|
- AND sr.id NOT IN ('ade960e8f02544998b07397304c059c1', '17bac1f980264e3e8193bc965538e2c6')
|
|
|
- <if test="roleId != null and roleId !=''">
|
|
|
- and sr.id=#{roleId}
|
|
|
+ ly_enterprise_info AS ei
|
|
|
+ LEFT JOIN sys_user AS su ON su.login_name IN (ei.des13, ei.bz6, ei.phone)
|
|
|
+ LEFT JOIN sys_user_role AS sur ON sur.user_id = su.ID
|
|
|
+ LEFT JOIN sys_role AS sr ON sr.ID = sur.role_id
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT create_by, COUNT(*) AS loginCount
|
|
|
+ FROM sys_log
|
|
|
+ WHERE type = 1 AND title = '首页访问'
|
|
|
+ <if test="dtime != null">
|
|
|
+ <if test="dtime == 1">
|
|
|
+ AND YEAR(create_date) = YEAR(CURDATE())
|
|
|
+ </if>
|
|
|
+ <if test="dtime == 2">
|
|
|
+ AND create_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND create_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH
|
|
|
+ </if>
|
|
|
+ <if test="dtime == 3">
|
|
|
+ AND create_date >= DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') AND create_date <![CDATA[<]]> DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') + INTERVAL 1 YEAR
|
|
|
+ </if>
|
|
|
+ <if test="dtime == 4">
|
|
|
+ AND create_date >= DATE_FORMAT(CURDATE(), '%Y-%m-%d') AND create_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-%d') + INTERVAL 1 DAY
|
|
|
+ </if>
|
|
|
</if>
|
|
|
- <if test="des1 != null and des1 !=''">
|
|
|
- and ei.des1=#{des1}
|
|
|
+ <if test="stime != null and etime != null">
|
|
|
+ AND create_date >= #{stime} AND create_date <![CDATA[<]]> #{etime}
|
|
|
</if>
|
|
|
- <if test="dtime != null and dtime ==1">
|
|
|
- and YEAR(su.login_date) = YEAR(CURDATE())
|
|
|
- </if>
|
|
|
- <if test="dtime != null and dtime ==2">
|
|
|
- and su.login_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH
|
|
|
+ GROUP BY create_by
|
|
|
+ ) AS log ON log.create_by = su.ID
|
|
|
+ WHERE
|
|
|
+ ei.del_flag = 0
|
|
|
+ AND sr.id NOT IN ('ade960e8f02544998b07397304c059c1', '17bac1f980264e3e8193bc965538e2c6')
|
|
|
+ <if test="roleId != null and roleId != ''">
|
|
|
+ AND sr.id = #{roleId}
|
|
|
</if>
|
|
|
- <if test="dtime != null and dtime ==3">
|
|
|
- and su.login_date >= DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') AND su.login_date <![CDATA[<]]> DATE_FORMAT(CURDATE() - INTERVAL (DAYOFWEEK(CURDATE()) - 1) DAY, '%Y-%m-%d') + INTERVAL 1 YEAR
|
|
|
+ <if test="des1 != null and des1 != ''">
|
|
|
+ AND ei.des1 = #{des1}
|
|
|
</if>
|
|
|
- <if test="status != null and status ==1">
|
|
|
- and su.login_date IS NOT NULL
|
|
|
+ <if test="status != null and status == 1">
|
|
|
+ AND su.login_date IS NOT NULL
|
|
|
</if>
|
|
|
- <if test="status != null and status ==2">
|
|
|
- and su.login_date IS NULL
|
|
|
+ <if test="status != null and status == 2">
|
|
|
+ AND su.login_date IS NULL
|
|
|
</if>
|
|
|
- GROUP BY su.login_name, su.name, su.login_date
|
|
|
+ GROUP BY
|
|
|
+ su.login_name, su.name, su.login_date
|
|
|
</select>
|
|
|
|
|
|
</mapper>
|