From 38b0d234cb261722bdf2c9df3088b5cd8f92db1e Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 10:26:05 +0800 Subject: [PATCH 1/6] 1 --- .../com/ibeetl/jlw/service/StatisticalAnalysisService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java index dfa82e17..d118b487 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/StatisticalAnalysisService.java @@ -269,8 +269,9 @@ public class StatisticalAnalysisService { if (stime != null && etime != null) { logDaoLambdaQuery.andBetween(SysLog::getCreateTime, stime, etime); } + long loginCount = logDaoLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").count(); - long loginDistinctCount = logDaoLambdaQuery.distinct().andLike("request_url", "%login%").andLike("result", "%成功%").select("user_id").stream().count(); + long loginDistinctCount = CollectionUtil.emptyIfNull(logDaoLambdaQuery.distinct().andLike("request_url", "%login%").andLike("result", "%成功%").select("user_id")).stream().count(); //登录人数 data.put("loginNumber", loginDistinctCount); From 6209da9464b5d0a88869063fb09f0eb155d0da43 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 10:57:20 +0800 Subject: [PATCH 2/6] 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 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); From e3617fd3df71db0a998135dd4d75179058bec696 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 14:58:58 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E9=80=80=E5=87=BA=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ibeetl/jlw/dao/TeacherDao.java | 3 ++ .../api/teacher/ApiTeacherService.java | 38 ++++++++++++++++ .../com/ibeetl/jlw/web/IndexController.java | 2 +- .../web/api/teacher/ApiTeacherController.java | 14 ++++++ web/src/main/resources/sql/jlw/teacher.md | 45 ++++++++++++++++++- 5 files changed, 100 insertions(+), 2 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java index 20c9b833..13fdffa3 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java @@ -2,6 +2,7 @@ package com.ibeetl.jlw.dao; import com.ibeetl.jlw.entity.Teacher; import com.ibeetl.jlw.entity.TeacherExtendSchoolInfo; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; import com.ibeetl.jlw.web.query.TeacherQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; @@ -50,4 +51,6 @@ public interface TeacherDao extends BaseMapper{ * @return */ List getTeacherExtendSchoolInfoListByUserIds(String userIds); + + List getTeacherUserInfoRuleInfo(Long userId, Long teacherId); } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java index 914d78c8..9093c843 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java @@ -2,10 +2,15 @@ package com.ibeetl.jlw.service.api.teacher; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.service.CoreUserService; +import com.ibeetl.jlw.dao.TeacherDao; import com.ibeetl.jlw.dao.TeacherMergeApplicationDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.api.CurrentUserInfo; import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; import com.ibeetl.jlw.service.*; import com.ibeetl.jlw.service.api.ApiIndexBaseService; import com.ibeetl.jlw.web.query.ResourcesApplicationQuery; @@ -19,6 +24,8 @@ import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; +import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; + /** *

* 教师端-API接口 @@ -43,6 +50,10 @@ public class ApiTeacherService { private ResourcesApplicationService resourcesApplicationService; @Autowired private TeacherService teacherService; + @Autowired + private TeacherDao teacherDao; + @Autowired + private CoreUserService coreUserService; /** * 教师端-首页数据 @@ -88,4 +99,31 @@ public class ApiTeacherService { .myOpenCourseList(openCourseList) .build(); } + + /** + * 功能描述:
+ * 教师端-用户中心 + * + * @return {@link TeacherUserInfoData} + * @Author: 87966 + * @Date: 2022/12/21 14:52 + */ + public TeacherUserInfoData userInfo() { + CoreUser user = getUser(); + Assert.isTrue(user.isTeacher(), "该接口只能教师访问!"); + Long userId = user.getId(); + + Teacher teacher = teacherDao.getByUserId(userId); + CoreUser coreUser = coreUserService.getUserById(userId); + + List ruleInfoList = teacherDao.getTeacherUserInfoRuleInfo(userId, null); + + TeacherUserInfoData.TeacherRuleInfo teacherRuleInfo = null; + if (ObjectUtil.isNotEmpty(ruleInfoList)) { + teacherRuleInfo = ruleInfoList.get(0); + } + + return TeacherUserInfoData.builder() + .teacherInfo(teacher).userInfo(coreUser).ruleInfo(teacherRuleInfo).build(); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java index 63079ed7..12e19977 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java @@ -1045,7 +1045,7 @@ public class IndexController { @PostMapping("/logout.json") @ResponseBody - public JsonResult logout() { + public JsonResult logout(@SCoreUser CoreUser coreUser) { return JsonResult.success(platformService.logout()); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java b/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java index 2f674630..da65fe99 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java @@ -2,10 +2,12 @@ package com.ibeetl.jlw.web.api.teacher; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; import com.ibeetl.jlw.service.api.teacher.ApiTeacherService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -32,4 +34,16 @@ public class ApiTeacherController { return JsonResult.success(apiTeacherService.index()); } + + /** + * 教师端-首页面板 + * @return + */ + @GetMapping("userInfo.do") + public JsonResult userInfo() { + return JsonResult.success(apiTeacherService.userInfo()); + } + + + } diff --git a/web/src/main/resources/sql/jlw/teacher.md b/web/src/main/resources/sql/jlw/teacher.md index 26e7577d..f635294d 100644 --- a/web/src/main/resources/sql/jlw/teacher.md +++ b/web/src/main/resources/sql/jlw/teacher.md @@ -510,4 +510,47 @@ getTeacherExtendSchoolInfoListByUserIds AND td.universities_colleges_status = 1 WHERE 1 = 1 - AND FIND_IN_SET(t.user_id,#userIds#) \ No newline at end of file + AND FIND_IN_SET(t.user_id,#userIds#) + + + +getTeacherUserInfoRuleInfo +=== +* 通过用户ID 获取教师的学校信息 用户中心 + + SELECT + t.teacher_name, + tb.university_system_name, + tc.university_faculty_name, + td.universities_colleges_name, + concat( td.universities_colleges_province, universities_colleges_city ) AS universities_colleges_address, + ( + SELECT + replace(GROUP_CONCAT(class_name), ',', '、') + FROM + school_class ab + WHERE + ab.class_id IN ( + SELECT DISTINCT + a.school_class_id + FROM + teacher_open_course_merge_school_class a + WHERE + a.teacher_open_course_id IN ( SELECT DISTINCT teacher_open_course_id FROM teacher_open_course_merge_teacher b WHERE b.teacher_id = t.teacher_id ))) AS class_names + FROM + teacher t + INNER JOIN university_system tb ON tb.university_system_id = t.university_system_id + AND tb.university_system_status = 1 + INNER JOIN university_faculty tc ON tc.university_faculty_id = t.university_faculty_id + AND tc.university_faculty_status = 1 + INNER JOIN universities_colleges td ON td.universities_colleges_id = t.universities_colleges_id + AND td.universities_colleges_status = 1 + WHERE + 1 = 1 + @if(!isEmpty(teacherId)){ + and t.teacher_id =#teacherId# + @} + @if(!isEmpty(userId)){ + and t.user_id =#userId# + @} + From 6e94cfc61b618c4b621ff7a9cb02d879ae2320ca Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 15:03:53 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E9=80=80=E5=87=BA=EF=BC=8C=E5=8A=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/teacher/TeacherUserInfoData.java | 59 +++++++++++++++++++ web/src/main/resources/sql/jlw/teacher.md | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java diff --git a/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java b/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java new file mode 100644 index 00000000..63b55dfc --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java @@ -0,0 +1,59 @@ +package com.ibeetl.jlw.entity.api.teacher; + +import com.ibeetl.admin.core.entity.BaseEntity; +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.jlw.entity.Teacher; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import org.beetl.sql.fetch.annotation.Fetch; + +/** + * 教师端-首页实体 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Accessors(chain = true) +@Fetch(level = 2) +public class TeacherUserInfoData { + + private Teacher teacherInfo; + + private CoreUser userInfo; + + private TeacherRuleInfo ruleInfo; + + @Data + public static class TeacherRuleInfo extends BaseEntity { + + /** + * 教师姓名 + */ + private String teacherName; + /** + * 学校名称 + */ + private String universitiesCollegesName; + /** + * 学校所在省市 + */ + private String universitiesCollegesAddress; + /** + * 院系名称 + */ + private String universityFacultyName; + /** + * 专业名称 + */ + private String universitySystemName; + /** + * 班级名称,多个顿号隔开 + */ + private String classNames; + + } +} diff --git a/web/src/main/resources/sql/jlw/teacher.md b/web/src/main/resources/sql/jlw/teacher.md index f635294d..d16fd3c2 100644 --- a/web/src/main/resources/sql/jlw/teacher.md +++ b/web/src/main/resources/sql/jlw/teacher.md @@ -526,7 +526,7 @@ getTeacherUserInfoRuleInfo concat( td.universities_colleges_province, universities_colleges_city ) AS universities_colleges_address, ( SELECT - replace(GROUP_CONCAT(class_name), ',', '、') + GROUP_CONCAT(class_name separator '、') FROM school_class ab WHERE From d27d93f4aef8aed675a1743f008fa609e4ae41b4 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 15:27:44 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=95=99=E5=B8=88=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=AD=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; From c6e281d230d8957625c6a5e00fef83c6122212b8 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Wed, 21 Dec 2022 18:36:06 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=EF=BC=9B=20=E5=AD=A6=E7=94=9F=E9=87=8D=E5=A4=8D=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E8=AF=BE=E7=A8=8B=EF=BC=8Cbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ibeetl/jlw/dao/TeacherDao.java | 4 +-- .../jlw/entity/StudentExtendSchoolInfo.java | 8 +++++ .../jlw/entity/TeacherExtendSchoolInfo.java | 9 +++++ .../api/student/StudentUserCenterData.java | 34 ++++++++++++++++++ ...foData.java => TeacherUserCenterData.java} | 15 +++++--- .../TeacherOpenCourseMergeStudentService.java | 10 ++++++ .../api/student/ApiStudentService.java | 36 ++++++++++++++++--- .../api/teacher/ApiTeacherService.java | 12 +++---- .../web/api/student/ApiStudentController.java | 12 +++++++ .../web/api/teacher/ApiTeacherController.java | 12 +++---- web/src/main/resources/sql/jlw/student.md | 8 +++-- web/src/main/resources/sql/jlw/teacher.md | 8 +++-- 12 files changed, 140 insertions(+), 28 deletions(-) create mode 100644 web/src/main/java/com/ibeetl/jlw/entity/api/student/StudentUserCenterData.java rename web/src/main/java/com/ibeetl/jlw/entity/api/teacher/{TeacherUserInfoData.java => TeacherUserCenterData.java} (89%) diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java index 13fdffa3..4dd01ec2 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherDao.java @@ -2,7 +2,7 @@ package com.ibeetl.jlw.dao; import com.ibeetl.jlw.entity.Teacher; import com.ibeetl.jlw.entity.TeacherExtendSchoolInfo; -import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData; import com.ibeetl.jlw.web.query.TeacherQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; @@ -52,5 +52,5 @@ public interface TeacherDao extends BaseMapper{ */ List getTeacherExtendSchoolInfoListByUserIds(String userIds); - List getTeacherUserInfoRuleInfo(Long userId, Long teacherId); + List getTeacherUserInfoRuleInfo(Long userId, Long teacherId); } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/entity/StudentExtendSchoolInfo.java b/web/src/main/java/com/ibeetl/jlw/entity/StudentExtendSchoolInfo.java index 139310ea..f2f9d93c 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/StudentExtendSchoolInfo.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/StudentExtendSchoolInfo.java @@ -51,6 +51,14 @@ public class StudentExtendSchoolInfo extends Student implements ExtendSchoolInfo * 院校名称 */ private String universitiesCollegesName; + /** + * 院校所在省份 + */ + private String universitiesCollegesProvince; + /** + * 院校所在市区 + */ + private String universitiesCollegesCity; } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherExtendSchoolInfo.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherExtendSchoolInfo.java index 85025a7e..181bed43 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherExtendSchoolInfo.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherExtendSchoolInfo.java @@ -41,4 +41,13 @@ public class TeacherExtendSchoolInfo extends Teacher implements ExtendSchoolInfo * 院校名称 */ private String universitiesCollegesName; + + /** + * 院校所在省份 + */ + private String universitiesCollegesProvince; + /** + * 院校所在市区 + */ + private String universitiesCollegesCity; } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/api/student/StudentUserCenterData.java b/web/src/main/java/com/ibeetl/jlw/entity/api/student/StudentUserCenterData.java new file mode 100644 index 00000000..ee4cc84b --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/api/student/StudentUserCenterData.java @@ -0,0 +1,34 @@ +package com.ibeetl.jlw.entity.api.student; + +import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.jlw.entity.Student; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + * 教师端-首页实体 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Accessors(chain = true) +public class StudentUserCenterData { + + /** + * 学生信息 + */ + private Student studentInfo; + /** + * 用户信息 + */ + private CoreUser userInfo; + /** + * 活跃度信息 + */ + private StudentActiveInfo activeInfo; + +} diff --git a/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java b/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserCenterData.java similarity index 89% rename from web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java rename to web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserCenterData.java index 63b55dfc..65ba8e3a 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserInfoData.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/api/teacher/TeacherUserCenterData.java @@ -8,7 +8,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; -import org.beetl.sql.fetch.annotation.Fetch; /** * 教师端-首页实体 @@ -18,13 +17,19 @@ import org.beetl.sql.fetch.annotation.Fetch; @AllArgsConstructor @Builder @Accessors(chain = true) -@Fetch(level = 2) -public class TeacherUserInfoData { +public class TeacherUserCenterData { + /** + * 教师信息 + */ private Teacher teacherInfo; - + /** + * 用户信息 + */ private CoreUser userInfo; - + /** + * 权限信息 + */ private TeacherRuleInfo ruleInfo; @Data diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java index 4ceeb0af..878c37cf 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeStudentService.java @@ -114,6 +114,16 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService @@ -53,6 +54,8 @@ public class ApiStudentService { @Autowired private UniversitiesCollegesService universitiesCollegesService; @Autowired private PasswordConfig.PasswordEncryptService passwordEncryptService; @Autowired private CoreUserService coreUserService; + @Autowired + private SysLogService sysLogService; /** * 教师端-首页数据 @@ -220,4 +223,29 @@ public class ApiStudentService { Assert.notNull(student, "该接口只能学生查看!"); return studentDao.studentActiveInfo(student.getStudentId()); } + + public StudentUserCenterData userCenter() { + + CoreUser user = getUser(); + Assert.isTrue(user.isStudent(), "该接口只能学生访问!"); + Long userId = user.getId(); + + List extendStudentList = studentDao.getStudentExtendSchoolInfoListByUserIds(userId.toString()); + StudentExtendSchoolInfo studentExtendSchoolInfo = null; + if (ObjectUtil.isNotEmpty(extendStudentList)) { + studentExtendSchoolInfo = extendStudentList.get(0); + } + CoreUser coreUser = coreUserService.getUserById(userId); + + // 设置登录时间和最后登录时间 + sysLogService.setLoginLogInfo(userId, coreUser); + + // 活跃度 + StudentActiveInfo studentActiveInfo = studentActiveInfo(); + + + return StudentUserCenterData.builder().userInfo(coreUser) + .studentInfo(studentExtendSchoolInfo).activeInfo(studentActiveInfo) + .build(); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java index af349790..3d3243eb 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/api/teacher/ApiTeacherService.java @@ -10,7 +10,7 @@ import com.ibeetl.jlw.dao.TeacherMergeApplicationDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.api.CurrentUserInfo; import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData; -import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData; import com.ibeetl.jlw.service.*; import com.ibeetl.jlw.service.api.ApiIndexBaseService; import com.ibeetl.jlw.web.query.ResourcesApplicationQuery; @@ -106,11 +106,11 @@ public class ApiTeacherService { * 功能描述:
* 教师端-用户中心 * - * @return {@link TeacherUserInfoData} + * @return {@link TeacherUserCenterData} * @Author: 87966 * @Date: 2022/12/21 14:52 */ - public TeacherUserInfoData userInfo() { + public TeacherUserCenterData userCenter() { CoreUser user = getUser(); Assert.isTrue(user.isTeacher(), "该接口只能教师访问!"); Long userId = user.getId(); @@ -121,14 +121,14 @@ public class ApiTeacherService { // 设置登录时间和最后登录时间 sysLogService.setLoginLogInfo(userId, coreUser); - List ruleInfoList = teacherDao.getTeacherUserInfoRuleInfo(userId, null); + List ruleInfoList = teacherDao.getTeacherUserInfoRuleInfo(userId, null); - TeacherUserInfoData.TeacherRuleInfo teacherRuleInfo = null; + TeacherUserCenterData.TeacherRuleInfo teacherRuleInfo = null; if (ObjectUtil.isNotEmpty(ruleInfoList)) { teacherRuleInfo = ruleInfoList.get(0); } - return TeacherUserInfoData.builder() + return TeacherUserCenterData.builder() .teacherInfo(teacher).userInfo(coreUser).ruleInfo(teacherRuleInfo).build(); } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/api/student/ApiStudentController.java b/web/src/main/java/com/ibeetl/jlw/web/api/student/ApiStudentController.java index 6a0c779f..5926b88f 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/api/student/ApiStudentController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/api/student/ApiStudentController.java @@ -2,12 +2,14 @@ package com.ibeetl.jlw.web.api.student; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.api.student.StudentIndexData; +import com.ibeetl.jlw.entity.api.student.StudentUserCenterData; import com.ibeetl.jlw.entity.dto.StudentEditPasswordDTO; import com.ibeetl.jlw.entity.dto.StudentRegisterDTO; import com.ibeetl.jlw.service.api.student.ApiStudentService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -62,4 +64,14 @@ public class ApiStudentController { public JsonResult studentActiveInfo() { return JsonResult.success(apiStudentService.studentActiveInfo()); } + + + /** + * 学生端-用户中心 + * @return + */ + @GetMapping("userCenter.do") + public JsonResult userCenter() { + return JsonResult.success(apiStudentService.userCenter()); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java b/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java index da65fe99..f748480d 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/api/teacher/ApiTeacherController.java @@ -2,7 +2,7 @@ package com.ibeetl.jlw.web.api.teacher; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData; -import com.ibeetl.jlw.entity.api.teacher.TeacherUserInfoData; +import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData; import com.ibeetl.jlw.service.api.teacher.ApiTeacherService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -36,14 +36,12 @@ public class ApiTeacherController { /** - * 教师端-首页面板 + * 教师端-用户中心 * @return */ - @GetMapping("userInfo.do") - public JsonResult userInfo() { - return JsonResult.success(apiTeacherService.userInfo()); + @GetMapping("userCenter.do") + public JsonResult userCenter() { + return JsonResult.success(apiTeacherService.userCenter()); } - - } diff --git a/web/src/main/resources/sql/jlw/student.md b/web/src/main/resources/sql/jlw/student.md index 426bb474..fc641b54 100644 --- a/web/src/main/resources/sql/jlw/student.md +++ b/web/src/main/resources/sql/jlw/student.md @@ -1388,7 +1388,9 @@ getStudentExtendSchoolInfo tc.university_faculty_id, tc.university_faculty_name, td.universities_colleges_id, - td.universities_colleges_name + td.universities_colleges_name, + td.universities_colleges_city, + td.universities_colleges_province FROM student t LEFT JOIN school_class ta ON ta.class_id = t.class_id @@ -1417,7 +1419,9 @@ getStudentExtendSchoolInfoListByUserIds tc.university_faculty_id, tc.university_faculty_name, td.universities_colleges_id, - td.universities_colleges_name + td.universities_colleges_name, + td.universities_colleges_city, + td.universities_colleges_province FROM student t LEFT JOIN school_class ta ON ta.class_id = t.class_id diff --git a/web/src/main/resources/sql/jlw/teacher.md b/web/src/main/resources/sql/jlw/teacher.md index d16fd3c2..07409785 100644 --- a/web/src/main/resources/sql/jlw/teacher.md +++ b/web/src/main/resources/sql/jlw/teacher.md @@ -475,7 +475,9 @@ getTeacherExtendSchoolInfo tc.university_faculty_id, tc.university_faculty_name, td.universities_colleges_id, - td.universities_colleges_name + td.universities_colleges_name, + td.universities_colleges_city, + td.universities_colleges_province FROM teacher t LEFT JOIN university_system tb ON tb.university_system_id = t.university_system_id @@ -499,7 +501,9 @@ getTeacherExtendSchoolInfoListByUserIds tc.university_faculty_id, tc.university_faculty_name, td.universities_colleges_id, - td.universities_colleges_name + td.universities_colleges_name, + td.universities_colleges_city, + td.universities_colleges_province FROM teacher t LEFT JOIN university_system tb ON tb.university_system_id = t.university_system_id