WXF 3 жил өмнө
parent
commit
5bb138d526

+ 0 - 19
api-common/src/main/java/api/common/pojo/po/home/SystemAccessPO.java

@@ -1,19 +0,0 @@
-package api.common.pojo.po.home;
-
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.sql.Timestamp;
-
-
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class SystemAccessPO {
-    String id;
-    Timestamp accessTime;
-}

+ 8 - 2
api-common/src/main/java/api/common/util/TimeUtil.java

@@ -1,8 +1,8 @@
 package api.common.util;
 
 import java.sql.Timestamp;
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 
 public class TimeUtil {
@@ -64,7 +64,7 @@ public class TimeUtil {
         return map;
     }
 
-    //获取间隔 n 秒的时间
+    //获取间隔 n 秒的时间
     public static Timestamp getPostTimestamp(int secends) {
         return new Timestamp(System.currentTimeMillis() + secends * 1000L);
     }
@@ -94,4 +94,10 @@ public class TimeUtil {
         return message;
     }
 
+    //获取 n 天前的日期
+    public static String getMinusDaysStr(int days) {
+        LocalDate before = LocalDate.now().minusDays(days);
+        return before.toString();
+    }
+
 }

+ 3 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/log/mapper/LogMapper.java

@@ -4,7 +4,9 @@ import api.common.pojo.param.log.LogPageParam;
 import api.common.pojo.po.log.LogLoginPO;
 import api.common.pojo.po.log.LogOperationPO;
 import api.common.pojo.po.log.LogSystemPO;
+import api.common.pojo.vo.home.AccessVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -23,4 +25,5 @@ public interface LogMapper {
 
     void insertSystemLog(LogSystemPO po);
 
+    List<AccessVO> getAccessCount(@Param("dateBegin") String dateBegin);
 }

+ 0 - 29
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/mapper/SystemAccessMapper.java

@@ -1,29 +0,0 @@
-package com.css.simulation.resource.scene.mapper;
-
-import api.common.pojo.po.home.SystemAccessPO;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-import java.util.Map;
-
-
-@Mapper
-public interface SystemAccessMapper {
-
-
-    @Select("<script>" +
-            "        select count(id) from system_access\n" +
-            "        where 1=1\n" +
-            "        <if test=\"startDate != null\">\n" +
-            "            and access_time &gt;= #{startDate}\n" +
-            "        </if>\n" +
-            "        <if test=\"endDate != null\">\n" +
-            "            and access_time &lt;= #{endDate}\n" +
-            "        </if>" +
-            "</script>")
-    Integer selectPastAccess(Map<String, Object> params);
-
-    @Select("insert into system_access(id, access_time) values (#{po.id}, #{po.accessTime})")
-    Integer insert(@Param("po") SystemAccessPO systemAccessPO);
-}

+ 23 - 20
simulation-resource-server/src/main/java/com/css/simulation/resource/scene/service/HomePageService.java

@@ -2,16 +2,15 @@ package com.css.simulation.resource.scene.service;
 
 import api.common.pojo.common.PageVO;
 import api.common.pojo.common.ResponseBodyVO;
-import api.common.pojo.po.home.SystemAccessPO;
 import api.common.pojo.po.home.SystemServerPO;
 import api.common.pojo.vo.home.AccessVO;
 import api.common.pojo.vo.home.HardwareVO;
 import api.common.pojo.vo.home.ServiceVO;
 import api.common.pojo.vo.home.SystemServerVO;
-import api.common.util.StringUtil;
+import api.common.util.ObjectUtil;
 import api.common.util.TimeUtil;
 import com.css.simulation.resource.feign.OauthClientService;
-import com.css.simulation.resource.scene.mapper.SystemAccessMapper;
+import com.css.simulation.resource.log.mapper.LogMapper;
 import com.css.simulation.resource.scene.mapper.SystemServerMapper;
 import com.css.simulation.resource.system.mapper.UserMapper;
 import com.github.pagehelper.PageHelper;
@@ -19,23 +18,24 @@ import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class HomePageService {
 
-    @Autowired
+    @Resource
     SystemServerMapper systemServerMapper;
 
-    @Autowired
-    SystemAccessMapper systemAccessMapper;
-
     @Autowired
     UserMapper userMapper;
 
     @Autowired
+    LogMapper logMapper;
+
+    @Resource
     OauthClientService oauthClientService;
 
 
@@ -82,20 +82,23 @@ public class HomePageService {
 
 
     public ResponseBodyVO<List<AccessVO>> selectAccess() {
-
-        SystemAccessPO systemAccessPO = SystemAccessPO.builder()
-                .id(StringUtil.getRandomUUID())
-                .accessTime(TimeUtil.getNowForMysql())
-                .build();
-        systemAccessMapper.insert(systemAccessPO);
-
         List<AccessVO> list = new ArrayList<>();
-        for (int i = 6; i > -1; i--) {
+        String dateBegin = TimeUtil.getMinusDaysStr(6);
+        List<AccessVO> listVo = logMapper.getAccessCount(dateBegin);
+        boolean notNull = ObjectUtil.isNotNull(listVo);
+        for (int i = 6; i >= 0; i--) {
+            String date = TimeUtil.getMinusDaysStr(i);
+            if(notNull){
+                List<AccessVO> collect = listVo.stream().filter(v -> date.equals(v.getToDate())).collect(Collectors.toList());
+                if(ObjectUtil.isNotNull(collect)){
+                    AccessVO vo = collect.get(0);
+                    list.add(vo);
+                    continue;
+                }
+            }
             AccessVO vo = new AccessVO();
-            Map<String, Object> params = TimeUtil.getPastTime(i);
-            Integer num = systemAccessMapper.selectPastAccess(params);
-            vo.setToDate(params.get("toDate").toString());
-            vo.setNum(num);
+            vo.setToDate(date);
+            vo.setNum(0);
             list.add(vo);
         }
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, list);

+ 10 - 0
simulation-resource-server/src/main/resources/mapper/log/LogMapper.xml

@@ -125,4 +125,14 @@
           #{content,jdbcType=VARCHAR},
           #{createTime,jdbcType=TIMESTAMP})
     </insert>
+
+    <select id="getAccessCount" parameterType="java.lang.String" resultType="api.common.pojo.vo.home.AccessVO">
+        select
+          COUNT(DISTINCT(user_id)) as num,
+          DATE(create_time) as toDate
+        FROM log_login
+        WHERE create_time &gt;= #{dateBegin,jdbcType=VARCHAR}
+        GROUP BY DATE(create_time)
+        ORDER BY toDate ASC
+    </select>
 </mapper>

+ 1 - 0
simulation-resource-server/src/main/resources/mapper/system/UserMapper.xml

@@ -83,6 +83,7 @@
     <select id="selectCount" resultType="java.lang.Integer">
         select count(*)
         from system_user
+        where is_deleted = '0'
     </select>
 
     <select id="checkUsername" parameterType="api.common.pojo.po.system.UserPO" resultType="api.common.pojo.po.system.UserPO">