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 CoreBaseServicequeryByCondition(PageQuery query){ PageQuery ret = universitiesCollegesDao.queryByCondition(query); @@ -215,11 +220,41 @@ 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); + // 构建返回实体 UniversitiesCollegesUserInfo universitiesCollegesUserInfo = new UniversitiesCollegesUserInfo(); // 当前的登录的学校管理员登录信息 // TODO 需要增加 登录次数和登录天数信息和最后登录时间。 - universitiesCollegesUserInfo.setCoreUser(user); + universitiesCollegesUserInfo.setCoreUser(dbUser); // 院校信息 UniversitiesColleges universitiesColleges = (UniversitiesColleges) webPlatformService.getUserInfoFromSessionByIdentity(user);