From d2ef5afff8240c78616b2b4732d1bcd0eb8a248a Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期六, 17 六月 2023 10:41:17 +0800
Subject: [PATCH] Merge branch 'master' of http://118.89.139.230:10101/r/fg_v2.0

---
 src/main/java/com/whyc/service/UserLogService.java |   92 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 81 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/whyc/service/UserLogService.java b/src/main/java/com/whyc/service/UserLogService.java
index cf98f8d..ba037b1 100644
--- a/src/main/java/com/whyc/service/UserLogService.java
+++ b/src/main/java/com/whyc/service/UserLogService.java
@@ -5,25 +5,30 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.whyc.constant.UserOperation;
+import com.whyc.mapper.CommonMapper;
 import com.whyc.mapper.UserLogMapper;
 import com.whyc.pojo.UserLog;
-import com.whyc.util.ActionUtil;
-import com.whyc.util.DateUtil;
-import com.whyc.util.ExcelUtil;
+import com.whyc.util.*;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.List;
+import java.text.ParseException;
+import java.util.*;
 
 @Service
 public class UserLogService {
 
     @Resource
     private UserLogMapper mapper;
+
+    @Resource
+    private CommonMapper commonMapper;
+
+    @Resource
+    private SubTablePageInfoUtils subTablePageInfoUtils;
 
     public PageInfo<UserLog>getPage(int pageNum, int pageSize, UserLog userLog) {
         PageHelper.startPage(pageNum, pageSize, true);
@@ -124,14 +129,78 @@
     }
 
     /**鏍规嵁鏌ヨ浼樺寲鍒嗛〉鏌ヨ鏂瑰紡*/
-    public PageInfo<UserLog>getPage2(int pageNum, int pageSize, UserLog userLog) {
-        PageHelper.startPage(pageNum,pageSize,true);
-        //鏌ヨ鍑虹鍚堣姹傜殑鍚勫垎琛ㄨ褰曟暟
+    public PageInfo<Object>getPage2(int pageNum, int pageSize, UserLog userLog) throws ParseException {
+        //PageHelper.startPage(pageNum,pageSize,true);
+        //鏍规嵁浼犲叆鐨勬煡璇㈡椂闂�,鑾峰彇鍒嗚〃鍙婇粯璁よ〃鐨勬媶鍒嗘煡璇�
+        Date startTime = userLog.getOperationTime();
+        Date endTime = userLog.getOperationTime2();
+        /*Map<String, List<Date>> queryTimeForSubTables = DateUtil.getQueryTimeForSubTablesDesc(startTime, endTime);
+        //鏌ヨ鍒嗚〃鏄惁瀛樺湪,瀛樺湪鍒欐煡璇㈢粨鏋�
+        Map<String,Integer> queryCountMap = new LinkedHashMap<>();
+        Set<String> tableYearKeySet = queryTimeForSubTables.keySet();
+        for (String tableYear : tableYearKeySet) {
+            List<Date> queryTime = queryTimeForSubTables.get(tableYear);
+            userLog.setOperationTime(queryTime.get(0));
+            userLog.setOperationTime2(queryTime.get(1));
+            String tableName;
+            if(!tableYear.equals("default")){
+                //鏁板��
+                tableName = "tb_user_log_"+tableYear;
+                String existTableName = commonMapper.existTable("db_user", tableName);
+                if(existTableName == null){
+                    continue;
+                }
+            }else{
+                tableName = "tb_user_log";
+            }
+            userLog.setRecordYear(tableName);
+            int currentCount = mapper.getCount(userLog);
+            queryCountMap.put(tableYear,currentCount);
+        }
+
+        //鍒嗛〉淇℃伅
         //纭鎬婚〉鏁�,鎬昏褰曟暟
+        PageInfo<Object> pageInfo = new PageInfo<>();
+
+        int total = 0;
+        Set<String> queryKeySet = queryCountMap.keySet();
+        for (String queryKey : queryKeySet) {
+            int size = queryCountMap.get(queryKey);
+            total+=size;
+        }
+        int pages = (int) Math.ceil(Float.parseFloat(String.valueOf(total))/pageSize);
+        pageInfo.setTotal(total);
+        pageInfo.setPages(pages);
+        pageInfo.setPageNum(pageNum);
+        pageInfo.setPageSize(pageSize);
         //鏍规嵁褰撳墠椤垫墍闇�璁板綍,鏌ヨ褰撳墠椤佃褰�
+        int startNum = (pageNum-1)*pageSize+1;
+        int endNum = pageNum*pageSize;
+
+        //鏈�鍚庝竴涓畻娉�:涓婇潰涓嶅簲璇ュ厛鏌ヨ鎵�鏈夎褰�,搴旇鍙朿ount. 杩欏悗闈㈠畾浣嶅埌鍝釜琛ㄦ垨鍝嚑寮犺〃鍚�,閲囧彇limit鑾峰彇褰撳墠椤佃褰曟暟;
+        //鏍煎紡:{琛ㄥ悕,[limit 2,20]}
+        Map<String,List<Integer>> tableAndLimitMap = MathUtil.getQueryTableAndLimit(startNum,endNum,pageSize,queryCountMap);
+        Set<String> keySet = tableAndLimitMap.keySet();
+        List<Object> userLogList = new LinkedList<>();
+        for (String key : keySet) {
+            List<Date> queryTime = queryTimeForSubTables.get(key);
+            userLog.setOperationTime(queryTime.get(0));
+            userLog.setOperationTime2(queryTime.get(1));
+
+            List<Integer> limitList = tableAndLimitMap.get(key);
+            userLog.setLimitStart(limitList.get(0));
+            userLog.setLimitEnd(limitList.get(1));
+            userLog.setRecordYear(key.equals("default")?"tb_user_log":"tb_user_log_"+key);
+            List<UserLog> list = mapper.getList2(userLog);
+            userLogList.addAll(list);
+        }*/
+        PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, startTime, endTime, "db_user", "tb_user_log", userLog);
+        List<Object> userLogList = pageInfo.getList();
+
         //杩欎釜鎺ュ彛瑕佸吋瀹规柊鑰佸璁℃棩蹇楄褰曠殑鏌ヨ
-        List<UserLog> userLogList = mapper.getList(userLog);
-        userLogList.stream().forEach(userLog1 -> {
+        //List<UserLog> userLogList = mapper.getList(userLog);
+        userLogList.stream().forEach(userLogTemp -> {
+            UserLog userLog1 = (UserLog)userLogTemp;
             switch (userLog1.getOperationType()){
                 case 1: userLog1.setOperationTypeStr(UserOperation.TYPE_LOGIN.getTypeName());break;
                 case 2: userLog1.setOperationTypeStr(UserOperation.TYPE_LOGOUT.getTypeName());break;
@@ -147,7 +216,8 @@
                 default:userLog1.setOperationTypeStr(UserOperation.TYPE_UNRECOGNIZED.getTypeName());
             }
         });
-        PageInfo<UserLog> pageInfo = new PageInfo<>(userLogList);
+        pageInfo.setList(userLogList);
+        //PageInfo<UserLog> pageInfo = new PageInfo<>(userLogList);
         return pageInfo;
 
     }

--
Gitblit v1.9.1