diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreDictService.java b/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreDictService.java index d6d6f253..cb785572 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreDictService.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreDictService.java @@ -271,18 +271,14 @@ public class CoreDictService extends CoreBaseService { * @return */ public String getOrDefault(String type, String defaultValue) { - List passRateList = findAllByType(type); - if (ObjectUtil.isNotEmpty(passRateList)) { - String passRateValue = passRateList.stream().sorted(((o1, o2) -> o2.getSort() - o1.getSort())).findFirst().get().getValue(); - if (ObjectUtil.isNotEmpty(passRateValue)) { - return passRateValue; + List list = findAllByType(type); + if (ObjectUtil.isNotEmpty(list)) { + String value = list.stream().sorted(((o1, o2) -> o2.getSort() - o1.getSort())).findFirst().get().getValue(); + if (ObjectUtil.isNotEmpty(value)) { + return value; } } return defaultValue; } - - - - } diff --git a/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionCurriculumResourcesDao.java b/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionCurriculumResourcesDao.java index b18419e1..76b66d8a 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionCurriculumResourcesDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionCurriculumResourcesDao.java @@ -2,9 +2,11 @@ package com.ibeetl.jlw.dao; import com.ibeetl.jlw.entity.CourseInfo; import com.ibeetl.jlw.entity.UniversitiesCollegesJurisdictionCurriculumResources; +import com.ibeetl.jlw.entity.UniversitiesCollegesJurisdictionExperimentalSystem; import com.ibeetl.jlw.web.query.UniversitiesCollegesJurisdictionCurriculumResourcesQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; +import org.beetl.sql.mapper.annotation.Param; import org.beetl.sql.mapper.annotation.SqlResource; import org.beetl.sql.mapper.annotation.Update; import org.springframework.stereotype.Repository; @@ -49,4 +51,16 @@ public interface UniversitiesCollegesJurisdictionCurriculumResourcesDao extends * @return */ List getAllOverdueAuth(); + + /** + * 功能描述:
+ * 获取所有的过期的授权课程, 指定前移几天和后移几天 + * + * @param beforeDays + * @param afterDays + * @return {@link List< UniversitiesCollegesJurisdictionExperimentalSystem >} + * @Author: lx + * @Date: 2023/3/19 23:38 + */ + List getAllOverdueAuthByBeforeAndAfterDays(@Param("beforeDays") Long beforeDays, @Param("afterDays") Long afterDays); } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionExperimentalSystemDao.java b/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionExperimentalSystemDao.java index 55cf30be..f12bfee1 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionExperimentalSystemDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/UniversitiesCollegesJurisdictionExperimentalSystemDao.java @@ -4,6 +4,7 @@ import com.ibeetl.jlw.entity.UniversitiesCollegesJurisdictionExperimentalSystem; import com.ibeetl.jlw.web.query.UniversitiesCollegesJurisdictionExperimentalSystemQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; +import org.beetl.sql.mapper.annotation.Param; import org.beetl.sql.mapper.annotation.SqlResource; import org.beetl.sql.mapper.annotation.Update; import org.springframework.stereotype.Repository; @@ -30,4 +31,16 @@ public interface UniversitiesCollegesJurisdictionExperimentalSystemDao extends B * @return */ List getAllOverdueAuth(); + + /** + * 功能描述:
+ * 获取所有的过期的授权应用, 指定前移几天和后移几天 + * + * @param beforeDays + * @param afterDays + * @return {@link List< UniversitiesCollegesJurisdictionExperimentalSystem>} + * @Author: lx + * @Date: 2023/3/19 23:38 + */ + List getAllOverdueAuthByBeforeAndAfterDays(@Param("beforeDays") Long beforeDays, @Param("afterDays") Long afterDays); } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/service/WebPlatformService.java b/web/src/main/java/com/ibeetl/jlw/service/WebPlatformService.java index 8d4193f4..635ee3df 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/WebPlatformService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/WebPlatformService.java @@ -1,5 +1,6 @@ package com.ibeetl.jlw.service; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.ObjectUtil; @@ -7,27 +8,32 @@ import cn.hutool.core.util.StrUtil; import cn.jlw.token.TokenService; import com.ibeetl.admin.console.service.RoleConsoleService; import com.ibeetl.admin.console.service.UserConsoleService; +import com.ibeetl.admin.core.entity.CoreDict; import com.ibeetl.admin.core.entity.CoreOrg; import com.ibeetl.admin.core.entity.CoreRole; import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.enums.MenuEnums; import com.ibeetl.admin.core.rbac.UserLoginInfo; +import com.ibeetl.admin.core.service.CoreDictService; import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.admin.core.util.HttpRequestLocal; -import com.ibeetl.jlw.entity.Student; -import com.ibeetl.jlw.entity.StudentExtendSchoolInfo; -import com.ibeetl.jlw.entity.Teacher; -import com.ibeetl.jlw.entity.TeacherExtendSchoolInfo; +import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionCurriculumResourcesDao; +import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionExperimentalSystemDao; +import com.ibeetl.jlw.entity.*; +import com.ibeetl.jlw.web.IndexController; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import javax.validation.constraints.NotNull; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import static cn.hutool.core.util.ObjectUtil.defaultIfBlank; +import static cn.hutool.core.util.ObjectUtil.defaultIfNull; import static com.ibeetl.admin.core.service.CorePlatformService.*; @@ -50,6 +56,12 @@ public class WebPlatformService { @Autowired private UserConsoleService userConsoleService; @Autowired private RoleConsoleService roleConsoleService; + @Autowired + private UniversitiesCollegesJurisdictionExperimentalSystemDao universitiesCollegesJurisdictionExperimentalSystemDao; + @Autowired + private UniversitiesCollegesJurisdictionCurriculumResourcesDao universitiesCollegesJurisdictionCurriculumResourcesDao; + @Autowired + private CoreDictService coreDictService; /** * 根据身份,将用户信息存到Session中 @@ -271,4 +283,59 @@ public class WebPlatformService { return userId; } + + /** + * 功能描述:
+ * 获取快要过期的授权应用和理论课程类课程 + * + * @Author: lx + * @Date: 2023/3/19 22:49 + */ + public List getAuthResourcesAndSystemInfo() { + + // 返回值 + List result = new ArrayList<>(10); + + // 数据字典中,授权相关的通知时间配置 + List authSettingDict = coreDictService.findAllByType("auth_setting"); + + // 查询到期前多少天,会给弹框提醒,没查询到数据字典的话,默认10天 + String beforeSendDayAsString = authSettingDict.stream().filter(item -> item.getName().equals("before_send_day")).map(item -> item.getValue()).findFirst().orElse("15"); + // 查询到期后多少天,继续给弹框提醒,直到多少天后,没查询到数据字典的话,默认3天 + String afterSendDayAsString = authSettingDict.stream().filter(item -> item.getName().equals("after_send_day")).map(item -> item.getValue()).findFirst().orElse("3"); + + Long beforeDays = Long.valueOf(beforeSendDayAsString); + Long afterDays = Long.valueOf(afterSendDayAsString); + + // 查询需要通知续约的应用和课程 + List systemList = + universitiesCollegesJurisdictionExperimentalSystemDao.getAllOverdueAuthByBeforeAndAfterDays(beforeDays, afterDays); + List resourcesList = + universitiesCollegesJurisdictionCurriculumResourcesDao.getAllOverdueAuthByBeforeAndAfterDays(beforeDays, afterDays); + + // 快要到期的数据处理 + List authApplicationList = systemList.stream().map(item -> { + IndexController.AuthResourcesAndSystemInfo info = new IndexController.AuthResourcesAndSystemInfo(); + info.setName(item.get("name") + ""); + info.setUseEndTime(item.getUseEndTime()); + info.setLastDay(DateUtil.betweenDay(DateUtil.date(), item.getUseEndTime(), true)); + info.setType(defaultIfNull(item.get("type"), "应用授权") + ""); + return info; + }).collect(Collectors.toList()); + + // 快要到期的数据处理 + List authCourseInfoList = resourcesList.stream().map(item -> { + IndexController.AuthResourcesAndSystemInfo info = new IndexController.AuthResourcesAndSystemInfo(); + info.setName(defaultIfNull(item.get("name"), "") + ""); + info.setUseEndTime(item.getUseEndTime()); + info.setLastDay(DateUtil.betweenDay(DateUtil.date(), item.getUseEndTime(), true)); + info.setType(defaultIfNull(item.get("type"), "课程授权") + ""); + return info; + }).collect(Collectors.toList()); + + result.addAll(authApplicationList); + result.addAll(authCourseInfoList); + + return result; + } } 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 eff45393..14b6e0ed 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java @@ -36,6 +36,7 @@ import com.ibeetl.jlw.dao.UniversitiesCollegesDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.service.*; import com.ibeetl.jlw.web.query.CompetitionQuery; +import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -1080,4 +1081,39 @@ public class IndexController { return environment.getProperty("weinxin.auth-text-value", "kR8QcYpBTyrYJWvG"); } + + @Data + public static class AuthResourcesAndSystemInfo { + /** + * 对应名称 + */ + private String name; + /** + * 最后使用时间 + */ + private Date useEndTime; + /** + * 剩余天数 + */ + private Long lastDay; + /** + * 类型 + */ + private String type; + } + + /** + * 功能描述:
+ * 获取快要过期的授权应用和理论课程类课程 + * + * @param coreUser + * @return {@link JsonResult< List< AuthResourcesAndSystemInfo>>} + * @Author: lx + * @Date: 2023/3/19 22:49 + */ + @GetMapping("getAuthResourcesAndSystemInfo.json") + @ResponseBody + public JsonResult> getAuthResourcesAndSystemInfo(@SCoreUser CoreUser coreUser) { + return JsonResult.success(webPlatformService.getAuthResourcesAndSystemInfo()); + } } diff --git a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md index 1cc4a77a..f02751da 100644 --- a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md +++ b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionCurriculumResources.md @@ -409,7 +409,18 @@ getAllOverdueAuth === * 获取所有的过期的授权课程 - select * + select t.*, ta.course_info_name as `name`, '课程授权' as `type` from universities_colleges_jurisdiction_curriculum_resources t + left join course_info ta on ta.course_info_id = t.course_info_id where not now() between t.use_start_time and t.use_end_time - \ No newline at end of file + +getAllOverdueAuthByBeforeAndAfterDays +=== +* 获取所有的过期的授权应用, 指定前移几天和后移几天 + + select t.*, ta.course_info_name as `name`, '课程授权' as `type` + from universities_colleges_jurisdiction_curriculum_resources t + left join course_info ta on ta.course_info_id = t.course_info_id + where 1 = 1 + AND now() between CONCAT(DATE_FORMAT(date_add(t.use_start_time, interval -#{beforeDays} day), '%Y-%m-%d'), ' 00:00:00') + AND CONCAT(DATE_FORMAT(date_add(t.use_end_time, interval #{afterDays} day), '%Y-%m-%d'), ' 23:59:59') diff --git a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionExperimentalSystem.md b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionExperimentalSystem.md index da52e936..7a0ef20b 100644 --- a/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionExperimentalSystem.md +++ b/web/src/main/resources/sql/jlw/universitiesCollegesJurisdictionExperimentalSystem.md @@ -217,6 +217,19 @@ getAllOverdueAuth === * 获取所有的过期的授权应用 - select * + select t.*, ta.application_name as `name`, '应用授权' as `type` from universities_colleges_jurisdiction_experimental_system t - where not now() between t.use_start_time and t.use_end_time \ No newline at end of file + left join resources_application ta on ta.resources_application_id = t.type_id + where not now() between t.use_start_time and t.use_end_time + +getAllOverdueAuthByBeforeAndAfterDays +=== +* 获取所有的过期的授权应用, 指定前移几天和后移几天 + + select t.*, ta.application_name as `name`, '应用授权' as `type` + from universities_colleges_jurisdiction_experimental_system t + left join resources_application ta on ta.resources_application_id = t.type_id + where 1 = 1 + AND now() between CONCAT(DATE_FORMAT(date_add(t.use_start_time, interval -#{beforeDays} day), '%Y-%m-%d'), ' 00:00:00') + AND CONCAT(DATE_FORMAT(date_add(t.use_end_time, interval #{afterDays} day), '%Y-%m-%d'), ' 23:59:59') +