Sfoglia il codice sorgente

周次查询调整

dzx 11 mesi fa
parent
commit
fbf29dbb74

+ 1 - 0
src/main/java/com/xjrsoft/module/base/service/IBaseSemesterService.java

@@ -13,4 +13,5 @@ import com.xjrsoft.module.base.entity.BaseSemester;
  */
 public interface IBaseSemesterService extends IService<BaseSemester> {
 
+    BaseSemester getCurrentSemester();
 }

+ 22 - 0
src/main/java/com/xjrsoft/module/base/service/impl/BaseSemesterServiceImpl.java

@@ -1,11 +1,17 @@
 package com.xjrsoft.module.base.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.mapper.BaseSemesterMapper;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * <p>
  * 学期表 服务实现类
@@ -17,4 +23,20 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseSemesterServiceImpl extends ServiceImpl<BaseSemesterMapper, BaseSemester> implements IBaseSemesterService {
 
+    @Override
+    public BaseSemester getCurrentSemester() {
+        LocalDateTime now = LocalDateTime.now();
+        List<BaseSemester> semesterList = this.list(
+                new QueryWrapper<BaseSemester>().lambda()
+                        .eq(BaseSemester::getDeleteMark, DeleteMark.NODELETE.getCode())
+                        .le(BaseSemester::getStartDate, now)
+                        .ge(BaseSemester::getEndDate, now)
+                        .orderByDesc(BaseSemester::getStartDate)
+        );
+        if(semesterList.isEmpty()){
+            return null;
+        }
+        BaseSemester baseSemester = semesterList.get(0);
+        return baseSemester;
+    }
 }

+ 8 - 31
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -5,7 +5,6 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
@@ -13,7 +12,6 @@ import com.google.gson.JsonParser;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.courseTable.entity.ClassTime;
@@ -55,7 +53,6 @@ import javax.validation.Valid;
 import java.io.ByteArrayOutputStream;
 import java.time.DayOfWeek;
 import java.time.Duration;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
@@ -109,13 +106,9 @@ public class ScheduleController {
     @SaCheckPermission("schedule:detail")
     public RT<CourseTableVo> courseInfo(CourseTableDto dto){
         if(dto.getSemesterId() == null){
-            LambdaQueryWrapper<BaseSemester> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper
-                    .orderByDesc(BaseSemester::getStartDate)
-                    .select(BaseSemester.class,x -> VoToColumnUtil.fieldsToColumns(BaseSemester.class).contains(x.getProperty()));
-            List<BaseSemester> semesterList = semesterService.list(queryWrapper);
-            if(!semesterList.isEmpty()){
-                dto.setSemesterId(semesterList.get(0).getId());
+            BaseSemester semester = semesterService.getCurrentSemester();
+            if(semester != null){
+                dto.setSemesterId(semester.getId());
             }
         }
         CourseTableVo list = courseTableService.getList(dto);
@@ -163,19 +156,11 @@ public class ScheduleController {
     @ApiOperation(value="获取当前周次")
     @SaCheckPermission("schedule:detail")
     public RT<Integer> currentWeek(CourseTableDto dto){
-        LocalDateTime now = LocalDateTime.now();
-        List<BaseSemester> semesterList = semesterService.list(
-                new QueryWrapper<BaseSemester>().lambda()
-                        .eq(BaseSemester::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .le(BaseSemester::getStartDate, now)
-                        .ge(BaseSemester::getEndDate, now)
-                        .orderByDesc(BaseSemester::getStartDate)
-        );
-        if(semesterList.isEmpty()){
+        BaseSemester baseSemester = semesterService.getCurrentSemester();
+        if(baseSemester == null){
             return RT.error("未能查询到当前周次");
         }
-        BaseSemester baseSemester = semesterList.get(0);
-
+        LocalDateTime now = LocalDateTime.now();
         if(dto.getScheduleDate() != null){
             now = dto.getScheduleDate();
         }
@@ -384,18 +369,10 @@ public class ScheduleController {
         if(dto.getSemesterId() != null){
             baseSemester = semesterService.getById(dto.getSemesterId());
         }else{
-            LocalDateTime now = LocalDateTime.now();
-            List<BaseSemester> semesterList = semesterService.list(
-                    new QueryWrapper<BaseSemester>().lambda()
-                            .eq(BaseSemester::getDeleteMark, DeleteMark.NODELETE.getCode())
-                            .le(BaseSemester::getStartDate, now)
-                            .ge(BaseSemester::getEndDate, now)
-                            .orderByDesc(BaseSemester::getStartDate)
-            );
-            if(semesterList.isEmpty()){
+            baseSemester = semesterService.getCurrentSemester();
+            if(baseSemester == null){
                 return RT.ok(new ArrayList<>());
             }
-            baseSemester = semesterList.get(0);
         }
         LocalDateTime startDateTime = LocalDateTime.ofInstant(baseSemester.getStartDate().toInstant(), ZoneId.systemDefault());
         LocalDateTime endDateTime = LocalDateTime.ofInstant(baseSemester.getEndDate().toInstant(), ZoneId.systemDefault());