From 64b432916af9c9218ab3f3eca614e26c542142ae Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 07 十一月 2023 15:47:13 +0800
Subject: [PATCH] bug

---
 server/src/main/java/doumeemes/service/system/impl/SystemLoginLogServiceImpl.java |  108 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 91 insertions(+), 17 deletions(-)

diff --git a/server/src/main/java/doumeemes/service/system/impl/SystemLoginLogServiceImpl.java b/server/src/main/java/doumeemes/service/system/impl/SystemLoginLogServiceImpl.java
index fa6505f..af8d0cf 100644
--- a/server/src/main/java/doumeemes/service/system/impl/SystemLoginLogServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/system/impl/SystemLoginLogServiceImpl.java
@@ -1,10 +1,17 @@
 package doumeemes.service.system.impl;
 
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import doumeemes.core.model.PageData;
 import doumeemes.core.model.PageWrap;
 import doumeemes.core.utils.Utils;
+import doumeemes.dao.business.model.Company;
+import doumeemes.dao.business.model.CompanyUser;
+import doumeemes.dao.ext.dto.ActivityLoginDTO;
+import doumeemes.dao.ext.vo.ActivityLoginVO;
+import doumeemes.dao.ext.vo.StagingLoginVO;
 import doumeemes.dao.system.SystemLoginLogMapper;
 import doumeemes.dao.system.dto.QuerySystemLoginLogDTO;
+import doumeemes.dao.system.join.SystemLoginLogJoinMapper;
 import doumeemes.dao.system.model.SystemLoginLog;
 import doumeemes.dao.system.model.SystemTraceLog;
 import doumeemes.service.system.SystemLoginLogService;
@@ -30,6 +37,8 @@
 
     @Autowired
     private SystemLoginLogMapper systemLoginLogMapper;
+    @Autowired
+    private SystemLoginLogJoinMapper systemLoginLogJoinMapper;
 
     @Override
     public Integer create(SystemLoginLog systemLoginLog) {
@@ -83,45 +92,47 @@
         Wrapper<SystemLoginLog> wrapper = new QueryWrapper<>(systemLoginLog);
         return systemLoginLogMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<SystemLoginLog> findPage(PageWrap<QuerySystemLoginLogDTO> pageWrap) {
         IPage<SystemLoginLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<SystemLoginLog> queryWrapper = new QueryWrapper<>();
 
+        MPJLambdaWrapper<SystemLoginLog> mpjLambdaWrapper = new MPJLambdaWrapper<>();
+        mpjLambdaWrapper.selectAll(SystemLoginLog.class);
+        mpjLambdaWrapper.leftJoin(Company.class,Company::getId,SystemLoginLog::getCompanyId);
+        mpjLambdaWrapper.leftJoin(CompanyUser.class,CompanyUser::getId,SystemLoginLog::getCompanyUserId);
+        mpjLambdaWrapper.selectAs(Company::getName, SystemLoginLog::getCompanyName);
+        mpjLambdaWrapper.selectAs(CompanyUser::getName, SystemLoginLog::getCompanyUserName);
         // 鐧诲綍鐢ㄦ埛鍚�
         if (StringUtils.isNotBlank(pageWrap.getModel().getLoginUsername())) {
-            queryWrapper.lambda().like(SystemLoginLog::getLoginUsername, pageWrap.getModel().getLoginUsername());
+            mpjLambdaWrapper.like(SystemLoginLog::getLoginUsername, pageWrap.getModel().getLoginUsername());
         }
         // 鐧诲綍IP
         if (StringUtils.isNotBlank(pageWrap.getModel().getIp())) {
-            queryWrapper.lambda().eq(SystemLoginLog::getIp, pageWrap.getModel().getIp());
+            mpjLambdaWrapper.eq(SystemLoginLog::getIp, pageWrap.getModel().getIp());
+        }
+        if ( pageWrap.getModel().getOrgin() !=null) {
+            mpjLambdaWrapper.eq(SystemLoginLog::getOrgin, pageWrap.getModel().getOrgin());
         }
         // 鏈嶅姟鍣↖P
         if (StringUtils.isNotBlank(pageWrap.getModel().getServerIp())) {
-            queryWrapper.lambda().eq(SystemLoginLog::getServerIp, pageWrap.getModel().getServerIp());
+            mpjLambdaWrapper.eq(SystemLoginLog::getServerIp, pageWrap.getModel().getServerIp());
         }
         // 鐧诲綍鐘舵��
         if (pageWrap.getModel().getSuccess() != null) {
-            queryWrapper.lambda().eq(SystemLoginLog::getSuccess, pageWrap.getModel().getSuccess());
+            mpjLambdaWrapper.eq(SystemLoginLog::getSuccess, pageWrap.getModel().getSuccess());
         }
         // 鐧诲綍寮�濮嬫椂闂�
         if (pageWrap.getModel().getStartTime() != null) {
-            queryWrapper.lambda().ge(SystemLoginLog::getLoginTime, pageWrap.getModel().getStartTime());
+            mpjLambdaWrapper.ge(SystemLoginLog::getLoginTime, pageWrap.getModel().getStartTime());
         }
         // 鐧诲綍缁撴潫鏃堕棿
         if (pageWrap.getModel().getStartTime() != null) {
-            queryWrapper.lambda().lt(SystemLoginLog::getLoginTime, pageWrap.getModel().getEndTime());
+            mpjLambdaWrapper.lt(SystemLoginLog::getLoginTime, pageWrap.getModel().getEndTime());
         }
-        // 瀛楁鎺掑簭
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase("DESC")) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(systemLoginLogMapper.selectPage(page, queryWrapper));
+
+        mpjLambdaWrapper.orderByDesc(SystemLoginLog::getLoginTime);
+        return PageData.from(systemLoginLogJoinMapper.selectJoinPage(page, SystemLoginLog.class,mpjLambdaWrapper));
     }
 
     @Override
@@ -129,4 +140,67 @@
         Wrapper<SystemLoginLog> wrapper = new QueryWrapper<>(systemLoginLog);
         return systemLoginLogMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public StagingLoginVO getStagingLoginVO(){
+        StagingLoginVO stagingLoginVO = new StagingLoginVO();
+        //浠婃棩娲昏穬鐢ㄦ埛锛氱粺璁″綋澶╃櫥褰曠敤鎴锋暟锛屼竴涓郴缁熺敤鎴峰湪涓嶅悓鐨勪紒涓氱櫥褰曪紝绠椾袱涓敤鎴凤紱涓�涓敤鎴峰湪涓�涓紒涓氬唴澶氭鐧诲綍锛岀畻涓�涓敤鎴�
+        stagingLoginVO.setDayActiveUserNum(
+            systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>()
+                    .select(" COMPANY_USER_ID ")
+                    .isNotNull(" COMPANY_ID ")
+                    .isNotNull(" COMPANY_USER_ID ")
+                    .apply(" LOGIN_TIME like concat(CURDATE(),'%') ")
+                    .groupBy(" COMPANY_ID , COMPANY_USER_ID ")
+            ).size()
+        );
+        //浠婃棩娲昏穬浼佷笟锛氱粺璁″綋澶╃櫥褰曠殑浼佷笟鏁帮紝涓�涓紒涓氱殑涓嶅悓鐢ㄦ埛鐧诲綍锛岀畻涓�涓紒涓氭暟锛�
+        stagingLoginVO.setDayActiveCompanyNum(
+                systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>()
+                        .select(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_USER_ID ")
+                        .apply(" LOGIN_TIME like concat(CURDATE(),'%') ")
+                        .groupBy(" COMPANY_ID ")
+                ).size()
+        );
+        //缁熻鏈湀锛堣嚜鐒舵湀锛夌櫥褰曠殑浼佷笟鏁帮紝閫昏緫鍚屼笂锛�
+        stagingLoginVO.setMonthActiveCompanyNum(
+                systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>()
+                        .select(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_USER_ID ")
+                        .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ")
+                        .groupBy(" COMPANY_ID ")
+                ).size()
+        );
+        //鏈湀鐧诲綍2娆″強浠ヤ笂浼佷笟鏁帮細缁熻鏈湀锛堣嚜鐒舵湀锛夌櫥褰�2娆″強浠ヤ笂鐨勪紒涓氭暟锛岄�昏緫鍚屼笂锛�
+        stagingLoginVO.setMonthTwoCompanyNum(
+                systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>()
+                        .select(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_USER_ID ")
+                        .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ")
+                        .groupBy(" COMPANY_ID ")
+                        .having(" count(1) > 1 ")
+                ).size()
+        );
+        //鏈湀鐧诲綍2娆″強浠ヤ笂浼佷笟鏁�(缇氱緤)锛氱粺璁℃湰鏈堬紙鑷劧鏈堬級鐧诲綍2娆″強浠ヤ笂锛堢櫥褰曟潵婧愪簬缇氱緤骞冲彴锛夌殑浼佷笟鏁帮紝閫昏緫鍚屼笂锛�
+        stagingLoginVO.setMonthTwoCompanyLYNum(
+                systemLoginLogMapper.selectList(new QueryWrapper<SystemLoginLog>()
+                        .select(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_ID ")
+                        .isNotNull(" COMPANY_USER_ID ")
+                        .apply(" LOGIN_TIME like concat(date_format(NOW(), '%Y-%m'),'%') ")
+                        .eq("ORGIN",2)
+                        .groupBy(" COMPANY_ID ")
+                        .having(" count(1) > 1 ")
+                ).size()
+        );
+        return stagingLoginVO;
+    }
+
+
+
 }

--
Gitblit v1.9.3