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