From d27d93f4aef8aed675a1743f008fa609e4ae41b4 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 15:27:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=B8=88=E7=94=A8=E6=88=B7=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ibeetl/jlw/service/SysLogService.java | 42 +++++++++++++++++++ .../service/UniversitiesCollegesService.java | 37 +++------------- .../api/teacher/ApiTeacherService.java | 5 +++ 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/service/SysLogService.java b/web/src/main/java/com/ibeetl/jlw/service/SysLogService.java index 56b4e4b5..72fceaa3 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/SysLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/SysLogService.java @@ -1,6 +1,9 @@ package com.ibeetl.jlw.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.Header; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -14,6 +17,7 @@ import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.SysLog; 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; @@ -169,4 +173,42 @@ public class SysLogService extends CoreBaseService { } + /** + * 设置用户的登录次数和最后登录时间等信息 + * 这样查询日志表来统计登录信息,不太好,但是没得时间了 + * @param userId + * @param dbUser + */ + public void setLoginLogInfo(Long userId, CoreUser dbUser) { + if (ObjectUtil.isAllEmpty(userId, dbUser)) { + return; + } + + LambdaQuery 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 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); + } + } \ No newline at end of file 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 0ead1e3a..82de3e61 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java @@ -1,8 +1,6 @@ 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; @@ -13,7 +11,6 @@ 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; @@ -21,7 +18,6 @@ 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; @@ -53,7 +49,8 @@ public class UniversitiesCollegesService extends CoreBaseServicequeryByCondition(PageQuery query){ PageQuery ret = universitiesCollegesDao.queryByCondition(query); @@ -223,37 +220,12 @@ public class UniversitiesCollegesService extends CoreBaseService 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 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); + // 设置登录时间和最后登录时间 + sysLogService.setLoginLogInfo(userId, dbUser); // 构建返回实体 UniversitiesCollegesUserInfo universitiesCollegesUserInfo = new UniversitiesCollegesUserInfo(); // 当前的登录的学校管理员登录信息 - // TODO 需要增加 登录次数和登录天数信息和最后登录时间。 universitiesCollegesUserInfo.setCoreUser(dbUser); // 院校信息 @@ -266,6 +238,7 @@ public class UniversitiesCollegesService extends CoreBaseService ruleInfoList = teacherDao.getTeacherUserInfoRuleInfo(userId, null); TeacherUserInfoData.TeacherRuleInfo teacherRuleInfo = null;