Browse Source

报表优化

swy 2 days ago
parent
commit
44166a6afd

+ 3 - 5
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/dp/DpController.java

@@ -40,11 +40,7 @@ import java.time.Period;
 import java.time.Year;
 import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 /**
  * 大屏Controller
@@ -101,6 +97,8 @@ public class DpController {
             userDTO.setLoginDate ( new Date( ) );
             userDTO.setLoginIp ( ServletUtil.getClientIP ( RequestUtils.getRequest ( ) ) );
             userService.updateUserLoginInfo ( userDTO );
+            String id= UUID.randomUUID().toString().replace("-","");
+            userService.getloginstr(id,"首页访问",userDTO.getId(),userDTO.getLoginDate());
         }
         return ResponseEntity.ok ("首页访问");
     }

+ 36 - 13
jp-console/jeeplus-module/ly/src/main/java/com/jeeplus/loginacea/mapper/xml/LoginAceMapper.xml

@@ -10,12 +10,21 @@
         COUNT(DISTINCT CASE WHEN su.login_date IS NULL THEN su.ID END) AS sb
         FROM
         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
+        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')
+        ei.del_flag=0
+        and sr.id not in ('ade960e8f02544998b07397304c059c1','17bac1f980264e3e8193bc965538e2c6')
         <if test="roleId != null and roleId != ''">
             AND sr.id = #{roleId}
         </if>
@@ -55,23 +64,21 @@
         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
+        SELECT create_by, COUNT(*) AS loginCount,create_date
+        FROM sys_login_log
         WHERE type = 1 AND title = '首页访问'
-        <if test="dtime != null">
-            <if test="dtime == 1">
+        <if test="dtime != null and dtime == 1">
                 AND YEAR(create_date) = YEAR(CURDATE())
             </if>
-            <if test="dtime == 2">
+        <if test="dtime != null and 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">
+        <if test="dtime != null and 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">
+        <if test="dtime != null and 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="stime != null and etime != null">
             AND create_date >= #{stime} AND create_date <![CDATA[<]]> #{etime}
         </if>
@@ -92,6 +99,22 @@
         <if test="status != null and status == 2">
             AND su.login_date IS NULL
         </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
+        </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>
+        <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
         su.login_name, su.name, su.login_date
     </select>

+ 2 - 1
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/LoginController.java

@@ -97,7 +97,8 @@ public class LoginController {
         responseUtil.add ( TokenProvider.TOKEN, token );
         //更新登录信息
         updateUserLoginInfo ( responseUtil, userDTO, token );
-
+        String id= UUID.randomUUID().toString().replace("-","");
+        userService.getloginstr(id,"首页访问",userDTO.getId(),userDTO.getLoginDate());
         return responseUtil.ok ( );
     }
 

+ 3 - 0
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -13,6 +13,7 @@ import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.service.dto.UserDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -93,4 +94,6 @@ public interface UserMapper extends BaseMapper <User> {
      */
     void insertUserPost(String userId, String postId);
 
+    void getloginstr(String id, String title, String createBy, Date createDate);
+
 }

+ 6 - 0
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -157,4 +157,10 @@
         INSERT INTO sys_user_post(user_id, post_id)
         VALUES (#{userId}, #{postId})
     </insert>
+
+    <insert id="getloginstr" >
+        insert into sys_login_log( id,title,create_by,create_date )
+        values (#{id}, #{title},  #{createBy},  #{createDate})
+    </insert>
+
 </mapper>

+ 4 - 0
jp-console/jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -211,5 +211,9 @@ public class UserService extends ServiceImpl <UserMapper, User> {
         return UserWrapper.INSTANCE.toDTO ( this.lambdaQuery ( ).eq ( User::getName, name ).one ( ) );
     }
 
+    public void getloginstr(String id, String title, String createBy, Date createDate) {
+         baseMapper.getloginstr (id,title,createBy,createDate);
+    }
+
 
 }