From 5a4e4f0ac1e40f45ce4e78b1ae57637c84a64fc7 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 26 十月 2023 13:34:46 +0800
Subject: [PATCH] 添加统计日志

---
 server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java              |    3 +
 server/src/main/java/doumeemes/task/ScheduleTool.java                            |    4 +-
 server/src/main/resources/application.yml                                        |    2 
 server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java |   53 ++++++++++++++++++++++++++
 4 files changed, 59 insertions(+), 3 deletions(-)

diff --git a/server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java b/server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java
index bbed668..423e65b 100644
--- a/server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java
+++ b/server/src/main/java/doumeemes/dao/system/model/SystemLoginLog.java
@@ -58,6 +58,9 @@
     @TableField(exist = false)
     private String  companyUserName;
 
+    @TableField(exist = false)
+    private Integer rootDepartId;
+
     @ApiModelProperty(value = "鐧诲綍鐢ㄦ埛鍚�")
     @ExcelColumn(name="鐧诲綍鐢ㄦ埛鍚�")
     private String loginUsername;
diff --git a/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java
index d4ae173..2d05c6d 100644
--- a/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/BizLingyangServiceImpl.java
@@ -8,6 +8,7 @@
 import doumeemes.core.utils.DateUtil;
 import doumeemes.core.utils.Utils;
 import doumeemes.dao.business.BizLingyangMapper;
+import doumeemes.dao.business.CompanyUserMapper;
 import doumeemes.dao.business.model.BizLingyang;
 import doumeemes.dao.business.model.Company;
 import doumeemes.dao.business.model.CompanyUser;
@@ -18,6 +19,8 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import doumeemes.service.business.CompanyUserService;
+import doumeemes.service.ext.CompanyUserExtService;
 import doumeemes.service.system.SystemLoginLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -38,6 +41,9 @@
 
     @Autowired
     private BizLingyangMapper bizLingyangMapper;
+    @Autowired
+    @Lazy
+    private CompanyUserMapper companyUserMapper;
     @Autowired
     @Lazy
     private SystemDictDataBiz systemDictDataBiz;
@@ -93,6 +99,53 @@
         mpjLambdaWrapper.selectAll(SystemLoginLog.class);
         mpjLambdaWrapper.leftJoin(Company.class,Company::getId,SystemLoginLog::getCompanyId);
         mpjLambdaWrapper.leftJoin(CompanyUser.class,CompanyUser::getId,SystemLoginLog::getCompanyUserId);
+        mpjLambdaWrapper.select("(select count(b.id) from system_trace_log b where to_days(b.OPERA_TIME) =to_days('"+ DateUtil.getPlusTime2(date) +"') and b.company_id=t1.id ) as logNum");
+        mpjLambdaWrapper.selectAs( CompanyUser::getLingyangUserid,SystemLoginLog::getLingyangUserid);
+        mpjLambdaWrapper.selectAs( CompanyUser::getRootDepartId,SystemLoginLog::getRootDepartId);
+        mpjLambdaWrapper.selectAs(Company::getCreditCode, SystemLoginLog::getCompanyCode);
+        mpjLambdaWrapper.eq(SystemLoginLog::getSuccess, Constants.ONE);
+        mpjLambdaWrapper.eq(SystemLoginLog::getOrgin, Constants.USER_LOGIN_ORIGIN.lingyang);
+        mpjLambdaWrapper.apply("to_days(login_time) =to_days('"+ DateUtil.getPlusTime2(date) +"')" );
+        mpjLambdaWrapper.select("count(t.id) as num");
+        mpjLambdaWrapper.groupBy(SystemLoginLog::getCompanyId);
+        List<SystemLoginLog> list = systemLoginLogJoinMapper.selectJoinList(SystemLoginLog.class,mpjLambdaWrapper);
+
+        if(list!=null && list.size()>0){
+            //鍒犻櫎鑰佺殑
+            bizLingyangMapper.delete(new QueryWrapper<BizLingyang>()
+                    .lambda().apply("to_days(create_time) =to_days('"+ DateUtil.getPlusTime2(date) +"')" )
+            );
+            for(SystemLoginLog log : list){
+                CompanyUser user = new CompanyUser();
+                user.setDeleted(Constants.ZERO);
+                user.setRootDepartId(log.getRootDepartId());
+                user = companyUserMapper.selectOne(new QueryWrapper<>(user).lambda().orderByDesc(CompanyUser::getIsMaster).last("limit 1" ));
+                BizLingyang model = new BizLingyang();
+                model.setCompanyId(log.getCompanyId());
+                model.setCreateTime(date);
+                model.setUserPhone(user !=null? user.getPhone():log.getLoginUsername());
+                model.setCreditCode(log.getCompanyCode());
+                try {
+                    model.setUserId(user !=null?Long.parseLong(user.getLingyangUserid()):Long.parseLong(log.getLingyangUserid()));
+                }catch (Exception e){
+                }
+                model.setAppKey(systemDictDataBiz.queryByCode(Constants.LINGYANG_PARAM,Constants.LINGYANG_APPKEY ).getCode());
+                model.setActionTimes(log.getNum() + log.getLogNum());
+                model.setLoginTimes(log.getNum());
+                bizLingyangMapper.insert(model);
+            }
+        }
+
+    }
+//    @Override
+    @Transactional
+    public void   syncLingDataGroupByUser(Date date) {
+//        Date date = new Date();
+        QueryWrapper<SystemLoginLog> param = 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.select("(select count(b.id) from system_trace_log b where to_days(b.OPERA_TIME) =to_days('"+ DateUtil.getPlusTime2(date) +"') and b.company_id=t1.id and b.company_user_id=t2.id) as logNum");
         mpjLambdaWrapper.selectAs( CompanyUser::getLingyangUserid,SystemLoginLog::getLingyangUserid);
         mpjLambdaWrapper.selectAs(Company::getCreditCode, SystemLoginLog::getCompanyCode);
diff --git a/server/src/main/java/doumeemes/task/ScheduleTool.java b/server/src/main/java/doumeemes/task/ScheduleTool.java
index 138422a..dda8a70 100644
--- a/server/src/main/java/doumeemes/task/ScheduleTool.java
+++ b/server/src/main/java/doumeemes/task/ScheduleTool.java
@@ -104,8 +104,8 @@
      * 姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅
      * @throws Exception
      */
-//    @Scheduled(cron="0 59 23 * * ?")
-    @Scheduled(fixedDelay = 1000 * 60 * 60 * 1)
+    @Scheduled(cron="0 59 23 * * ?")
+//    @Scheduled(fixedDelay = 1000 * 60 * 60 * 1)
     public void syncLingData() throws Exception {
         System.out.println("姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅--------Begin------");
         //TODO--------------姣忓ぉ瀹氭椂缁熻缇氱緤鏁版嵁淇℃伅------------
diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml
index f8bd246..ae670ec 100644
--- a/server/src/main/resources/application.yml
+++ b/server/src/main/resources/application.yml
@@ -9,7 +9,7 @@
 #  application:
 #  name: doumeemes
   profiles:
-    active: standardPro
+    active: standardLingyang
   # JSON杩斿洖閰嶇疆
   jackson:
     # 榛樿鏃跺尯

--
Gitblit v1.9.3