From 6209da9464b5d0a88869063fb09f0eb155d0da43 Mon Sep 17 00:00:00 2001
From: Mlxa0324 <mlx950324@163.com>
Date: Wed, 21 Dec 2022 10:57:20 +0800
Subject: [PATCH] 1

---
 .../service/UniversitiesCollegesService.java  | 37 ++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java
index 5a10378d..0ead1e3a 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java
@@ -1,6 +1,8 @@
 package com.ibeetl.jlw.service;
 
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
@@ -11,6 +13,7 @@ import com.ibeetl.admin.core.entity.CoreOrg;
 import com.ibeetl.admin.core.entity.CoreUser;
 import com.ibeetl.admin.core.service.CoreBaseService;
 import com.ibeetl.admin.core.service.CoreUserService;
+import com.ibeetl.jlw.dao.SysLogDao;
 import com.ibeetl.jlw.dao.UniversitiesCollegesDao;
 import com.ibeetl.jlw.entity.*;
 import com.ibeetl.jlw.entity.dto.CreateUserDTO;
@@ -18,6 +21,7 @@ import com.ibeetl.jlw.web.query.SchoolClassQuery;
 import com.ibeetl.jlw.web.query.UniversitiesCollegesQuery;
 import org.beetl.sql.core.SqlId;
 import org.beetl.sql.core.engine.PageQuery;
+import org.beetl.sql.core.query.LambdaQuery;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -49,6 +53,7 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
     @Autowired private OrgConsoleService orgConsoleService;
     @Autowired private CoreUserService coreUserService;
     @Autowired private WebPlatformService webPlatformService;
+    @Autowired private SysLogDao sysLogDao;
 
     public PageQuery<UniversitiesColleges>queryByCondition(PageQuery query){
         PageQuery ret =  universitiesCollegesDao.queryByCondition(query);
@@ -215,11 +220,41 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
         CoreUser user = getUser();
         Assert.isTrue(user.isUniAdmin(), "该接口只有学校管理管理员可以使用!");
 
+        Long userId = user.getId();
+
+        CoreUser dbUser = coreUserService.getUserById(userId);
+
+        LambdaQuery<SysLog> sysLogLambdaQuery = sysLogDao.createLambdaQuery();
+
+
+        long loginCount = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").andEq(SysLog::getUserId, userId).count();
+        // 登录次数
+        dbUser.set("loginCount", loginCount);
+
+
+        //最后登陆时间
+        SysLog lastLoginLog = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%")
+                .andEq(SysLog::getUserId, userId).desc(SysLog::getResultTime).limit(0, 1).single("result_time");
+
+        // 最后登录时间,默认置空
+        dbUser.set("lastLoginTime", "-");
+        if (lastLoginLog != null) {
+            dbUser.set("lastLoginTime", lastLoginLog.getResultTime());
+        }
+
+
+        // 登录天数
+        List<SysLog> loginDaysLogList = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%")
+                .andEq(SysLog::getUserId, userId).desc(SysLog::getResultTime).select(SysLog::getResultTime);
+
+        long loginDays = CollectionUtil.emptyIfNull(loginDaysLogList).stream().map(item -> DateUtil.formatDate(item.getResultTime())).distinct().count();
+        dbUser.set("loginDays", loginDays);
+
         // 构建返回实体
         UniversitiesCollegesUserInfo universitiesCollegesUserInfo = new UniversitiesCollegesUserInfo();
         // 当前的登录的学校管理员登录信息
         // TODO 需要增加 登录次数和登录天数信息和最后登录时间。
-        universitiesCollegesUserInfo.setCoreUser(user);
+        universitiesCollegesUserInfo.setCoreUser(dbUser);
 
         // 院校信息
         UniversitiesColleges universitiesColleges = (UniversitiesColleges) webPlatformService.getUserInfoFromSessionByIdentity(user);