lchao 2 mesiacov pred
rodič
commit
ea6177c70c

+ 3 - 3
src/main/java/com/ruoyi/system/controller/SysUserController.java

@@ -559,7 +559,7 @@ public class SysUserController extends BaseController {
     }
     /**
      *
-     * 维护中心首页-右上角五个
+     * 维护中心首页-右上角注册用户数和活跃用户
      * **/
     @GetMapping("/selectMaintenanceCenter")
     @ApiOperation(value = "维护中心首页-右上角五个数", notes = "查询全部账号的数量")
@@ -569,7 +569,7 @@ public class SysUserController extends BaseController {
     }
     /**
      *
-     * 维护中心首页列表
+     * 维护中心首页当前用户数据
      * **/
     @GetMapping("/selectMaintenanceCenterHomepageList")
     @ApiOperation(value = "维护中心首页列表", notes = "查询全部部门下注册活跃用户")
@@ -579,7 +579,7 @@ public class SysUserController extends BaseController {
     }
     /**
      *
-     * 维护中心首页总数与活跃数对比
+     * 维护中心首页用户总数与活跃数对比
      * **/
     @GetMapping("/selectMaintenanceCenterTotalanDactive")
     @ApiOperation(value = "维护中心首页总数与活跃数对比", notes = "维护中心首页总数与活跃数对比")

+ 20 - 255
src/main/resources/mapper/system/SysUserMapper.xml

@@ -931,261 +931,26 @@
 
     <select id="selectMaintenanceCenterHomepageList" resultMap="SysUserResult">
         SELECT
-            a.NAME,
-            a.count AS active_count,
-            b.count
-        FROM
-            (
-                SELECT
-                    "旗直部门" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 365
-                    )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314391
-                    )
-                    OR FIND_IN_SET( 314391, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314392
-                    )
-                    OR FIND_IN_SET( 314392, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314393
-                    )
-                    OR FIND_IN_SET( 314393, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314394
-                    )
-                    OR FIND_IN_SET( 314394, a.ancestors )
-                    OR NULL
-                    ))
-                    ) AS count
-                    FROM
-                    (
-                    SELECT
-                    u.user_id,
-                    d.dept_id,
-                    d.parent_id,
-                    d.ancestors
-                    FROM
-                    ( SELECT DISTINCT user_name FROM sys_logininfor ) l
-                    LEFT JOIN sys_user u ON l.user_name = u.user_name
-                    LEFT JOIN sys_user_dept ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept d ON ud.dept_id = d.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    GROUP BY
-                    u.user_id
-                    ) a
-                    ) a UNION
-                SELECT
-                    "敖勒召其镇" AS NAME,
-                    count( user_name ) AS count
-                FROM
-                    (
-                    SELECT
-                    a.user_name
-                    FROM
-                    ( SELECT user_name FROM sys_logininfor WHERE 1 = 1 AND STATUS = 0 GROUP BY user_name ) a
-                    LEFT JOIN sys_user AS u ON a.user_name = u.user_name
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS d ON ud.dept_id = d.dept_id
-                    WHERE
-                    d.dept_id = 314391
-                    OR FIND_IN_SET( 314391, d.ancestors )
-                    AND u.del_flag = 0
-                    GROUP BY
-                    u.user_id
-                    ) a UNION
-                SELECT
-                    "城川镇" AS NAME,
-                    count( user_name ) AS count
-                FROM
-                    (
-                    SELECT
-                    a.user_name
-                    FROM
-                    ( SELECT user_name FROM sys_logininfor WHERE 1 = 1 AND STATUS = 0 GROUP BY user_name ) a
-                    LEFT JOIN sys_user AS u ON a.user_name = u.user_name
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS d ON ud.dept_id = d.dept_id
-                    WHERE
-                    d.dept_id = 314392
-                    OR FIND_IN_SET( 314392, d.ancestors )
-                    AND u.del_flag = 0
-                    GROUP BY
-                    u.user_id
-                    ) a UNION
-                SELECT
-                    "昂素镇" AS NAME,
-                    count( user_name ) AS count
-                FROM
-                    (
-                    SELECT
-                    a.user_name
-                    FROM
-                    ( SELECT user_name FROM sys_logininfor WHERE 1 = 1 AND STATUS = 0 GROUP BY user_name ) a
-                    LEFT JOIN sys_user AS u ON a.user_name = u.user_name
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS d ON ud.dept_id = d.dept_id
-                    WHERE
-                    d.dept_id = 314393
-                    OR FIND_IN_SET( 314393, d.ancestors )
-                    AND u.del_flag = 0
-                    GROUP BY
-                    u.user_id
-                    ) a UNION
-                SELECT
-                    "上海庙镇" AS NAME,
-                    count( user_name ) AS count
-                FROM
-                    (
-                    SELECT
-                    a.user_name
-                    FROM
-                    ( SELECT user_name FROM sys_logininfor WHERE 1 = 1 AND STATUS = 0 GROUP BY user_name ) a
-                    LEFT JOIN sys_user AS u ON a.user_name = u.user_name
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS d ON ud.dept_id = d.dept_id
-                    WHERE
-                    d.dept_id = 314394
-                    OR FIND_IN_SET( 314394, d.ancestors )
-                    AND u.del_flag = 0
-                    GROUP BY
-                    u.user_id
-                    ) a
-            ) a
-                LEFT JOIN (
-                SELECT
-                    "旗直部门" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 365
-                    )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314391
-                    )
-                    OR FIND_IN_SET( 367, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314392
-                    )
-                    OR FIND_IN_SET( 3776, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314393
-                    )
-                    OR FIND_IN_SET( 3778, a.ancestors )
-                    OR NULL
-                    )) + count(((
-                    a.dept_id = 314394
-                    )
-                    OR FIND_IN_SET( 3777, a.ancestors )
-                    OR NULL
-                    ))
-                    ) AS count
-                    FROM
-                    sys_user AS u
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS a ON ud.dept_id = a.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    ) a UNION
-                SELECT
-                    "敖勒召其镇" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 314391
-                    )
-                    OR FIND_IN_SET( 314391, a.ancestors )
-                    OR NULL
-                    ))) AS count
-                    FROM
-                    sys_user AS u
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS a ON ud.dept_id = a.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    ) a UNION
-                SELECT
-                    "城川镇" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 314392
-                    )
-                    OR FIND_IN_SET( 314392, a.ancestors )
-                    OR NULL
-                    ))) AS count
-                    FROM
-                    sys_user AS u
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS a ON ud.dept_id = a.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    ) a UNION
-                SELECT
-                    "昂素镇" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 314393
-                    )
-                    OR FIND_IN_SET( 314393, a.ancestors )
-                    OR NULL
-                    ))) AS count
-                    FROM
-                    sys_user AS u
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS a ON ud.dept_id = a.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    ) a UNION
-                SELECT
-                    "上海庙镇" AS NAME,
-                    a.count AS count
-                FROM
-                    (
-                    SELECT
-                    (
-                    count(((
-                    a.dept_id = 314394
-                    )
-                    OR FIND_IN_SET( 314394, a.ancestors )
-                    OR NULL
-                    ))) AS count
-                    FROM
-                    sys_user AS u
-                    LEFT JOIN sys_user_dept AS ud ON u.user_id = ud.user_id
-                    LEFT JOIN sys_dept AS a ON ud.dept_id = a.dept_id
-                    WHERE
-                    u.del_flag = 0
-                    ) a
-            ) b ON a.NAME = b.NAME
+            d.NAME,
+            COUNT(DISTINCT CASE WHEN l.user_name IS NOT NULL THEN u.user_id END) AS active_count,
+            COUNT(DISTINCT u.user_id) AS count
+        FROM (
+            SELECT '旗直部门' AS NAME, 365 AS dept_id, '365' AS ancestor_ids
+            UNION SELECT '敖勒召其镇', 314391, '314391'
+            UNION SELECT '城川镇', 314392, '314392'
+            UNION SELECT '昂素镇', 314393, '314393'
+            UNION SELECT '上海庙镇', 314394, '314394'
+            ) d
+            LEFT JOIN sys_dept sd ON sd.dept_id = d.dept_id OR FIND_IN_SET(d.dept_id, sd.ancestors)
+            LEFT JOIN sys_user_dept ud ON ud.dept_id = sd.dept_id
+            LEFT JOIN sys_user u ON u.user_id = ud.user_id AND u.del_flag = 0
+            LEFT JOIN (
+            SELECT DISTINCT user_name
+            FROM sys_logininfor
+            WHERE STATUS = 0
+            ) l ON l.user_name = u.user_name
+        GROUP BY d.NAME
+        ORDER BY d.NAME;
     </select>