haogh 1 tahun lalu
induk
melakukan
3091955bd8

+ 5 - 4
src/main/java/com/qmth/exam/reserve/controller/admin/StudentApplyController.java

@@ -65,8 +65,9 @@ public class StudentApplyController extends BaseController {
 
     @ApiOperation(value = "考点列表")
     @PostMapping(value = "/agent/list")
-    public List<CategoryVO> listAgent(@ApiParam("教学点ID") @RequestParam Long id) {
-        return examSiteService.listExamSite(id);
+    public List<CategoryVO> listAgent(@ApiParam("教学点ID") @RequestParam Long id,
+                                      @ApiParam("查询启用的考点或查询所有的考点") @RequestParam(required = false) Boolean flag) {
+        return examSiteService.listExamSite(id, flag);
     }
 
     @ApiOperation(value = "考生预约名单详情分页")
@@ -100,7 +101,7 @@ public class StudentApplyController extends BaseController {
         if (Role.TEACHING.equals(user.getRole())) {
             teachingId = user.getCategoryId();
         }
-        List<Map<String, Object>> failRecords = new ArrayList<Map<String, Object>>();
+        List<Map<String, Object>> failRecords = new ArrayList<>();
         try {
             failRecords = studentApplyService.importPreExam(user, teachingId, level, file.getInputStream());
         } catch (IOException e) {
@@ -169,7 +170,7 @@ public class StudentApplyController extends BaseController {
             response.setHeader("Content-Disposition", "inline; filename=" + fileName + ".xlsx");
             response.setContentType("application/vnd.ms-excel");
             ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
-            List<CategoryVO> examSiteList = examSiteService.listExamSite(teachingId);
+            List<CategoryVO> examSiteList = examSiteService.listExamSite(teachingId, Boolean.FALSE);
             if(examSiteList == null || examSiteList.isEmpty()) {
                 throw new StatusException("当前教学点下没有考点");
             }

+ 1 - 1
src/main/java/com/qmth/exam/reserve/service/ExamSiteService.java

@@ -13,7 +13,7 @@ import java.util.Map;
 
 public interface ExamSiteService extends IService<ExamSiteEntity> {
 
-    List<CategoryVO> listExamSite(Long teachingId);
+    List<CategoryVO> listExamSite(Long teachingId, Boolean flag);
 
     List<ExamSiteInfo> getExamSiteListForStudent(Long categoryId);
 

+ 15 - 8
src/main/java/com/qmth/exam/reserve/service/impl/CategoryServiceImpl.java

@@ -239,14 +239,17 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryDao, CategoryEntity
         if (req.getCityId() == null) {
             throw new StatusException("请选择教学点所在城市");
         }
-        if (req.getId() == null) {
-            LambdaQueryWrapper<CategoryEntity> wrapper = new LambdaQueryWrapper<>();
-            wrapper.eq(CategoryEntity::getCode, req.getCode());
-            wrapper.eq(CategoryEntity::getOrgId, orgId);
-            CategoryEntity categoryEntity = baseMapper.selectOne(wrapper);
-            if (categoryEntity != null) {
-                throw new StatusException("教学点代码已经存在");
-            }
+        checkTeachingExist(orgId, req, req.getId() != null);
+    }
+
+    private void checkTeachingExist(Long orgId, TeachingSaveReq req, boolean idFlag) {
+        LambdaQueryWrapper<CategoryEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CategoryEntity::getCode, req.getCode());
+        wrapper.eq(CategoryEntity::getOrgId, orgId);
+        wrapper.notIn(idFlag, CategoryEntity::getId, req.getId());
+        CategoryEntity categoryEntity = baseMapper.selectOne(wrapper);
+        if (categoryEntity != null) {
+            throw new StatusException("教学点代码已经存在");
         }
     }
 
@@ -290,12 +293,16 @@ public class CategoryServiceImpl extends ServiceImpl<CategoryDao, CategoryEntity
             String code = trimAndNullIfBlank(line.get(EXCEL_HEADER[0]));
             if (StringUtils.isBlank(code)) {
                 msg.append(" 教学点代码不能为空");
+            } else if (code.length() > 20) {
+                msg.append(" 教学点代码不能超过20个字符");
             } else {
                 category.setCode(code);
             }
             String name = trimAndNullIfBlank(line.get(EXCEL_HEADER[1]));
             if (StringUtils.isBlank(name)) {
                 msg.append(" 教学点名称不能为空");
+            } else if (name.length() > 50) {
+                msg.append(" 教学点名称不能超过50个字符");
             } else {
                 category.setName(name);
             }

+ 18 - 6
src/main/java/com/qmth/exam/reserve/service/impl/ExamRoomServiceImpl.java

@@ -108,18 +108,24 @@ public class ExamRoomServiceImpl extends ServiceImpl<ExamRoomDao, ExamRoomEntity
             String code = trimAndNullIfBlank(line.get(EXCEL_HEADER[0]));
             if (StringUtils.isBlank(code)) {
                 msg.append(" 考场号不能为空");
+            } else if(code.length() > 20) {
+                msg.append(" 考场号不能超过20个字符");
             } else {
                 room.setCode(code);
             }
             String name = trimAndNullIfBlank(line.get(EXCEL_HEADER[1]));
             if (StringUtils.isBlank(name)) {
                 msg.append(" 考场名称不能为空");
+            } else if (name.length() > 100) {
+                msg.append(" 考场名称不能超过100个字符");
             } else {
                 room.setName(name);
             }
             String address = trimAndNullIfBlank(line.get(EXCEL_HEADER[2]));
             if (StringUtils.isBlank(address)) {
                 msg.append(" 考场地址不能为空");
+            } else if (address.length() > 200) {
+                msg.append(" 考场地址不能超过200个字符");
             } else {
                 room.setAddress(address);
             }
@@ -241,12 +247,18 @@ public class ExamRoomServiceImpl extends ServiceImpl<ExamRoomDao, ExamRoomEntity
         if (req.getExamSiteId() == null) {
             throw new StatusException("请选择考点");
         }
-        if (req.getId() == null) {
-            ExamRoomEntity examRoomEntity = getExamRoom(req.getExamSiteId(), req.getCode());
-            if (examRoomEntity != null) {
-                ExamSiteEntity site = examSiteService.getById(req.getExamSiteId());
-                throw new StatusException("考点:" + site.getName() + "下已存在代码为:" + req.getCode() + "的考场");
-            }
+        checkExamRoomExist(req, req.getId() != null);
+    }
+
+    private void checkExamRoomExist(ExamRoomSaveReq req, boolean idFlag) {
+        LambdaQueryWrapper<ExamRoomEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ExamRoomEntity::getExamSiteId, req.getExamSiteId());
+        wrapper.eq(ExamRoomEntity::getCode, req.getCode());
+        wrapper.notIn(idFlag, ExamRoomEntity::getId, req.getId());
+        ExamRoomEntity examRoomEntity = baseMapper.selectOne(wrapper);
+        if (examRoomEntity != null) {
+            ExamSiteEntity site = examSiteService.getById(req.getExamSiteId());
+            throw new StatusException(site.getName() + "下已存在代码为:" + req.getCode() + "的考场");
         }
     }
 

+ 20 - 10
src/main/java/com/qmth/exam/reserve/service/impl/ExamSiteServiceImpl.java

@@ -44,10 +44,11 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteDao, ExamSiteEntity
     private ExamSiteCacheService examSiteCacheService;
 
     @Override
-    public List<CategoryVO> listExamSite(Long teachingId) {
+    public List<CategoryVO> listExamSite(Long teachingId, Boolean flag) {
+        flag = flag != null && flag;
         QueryWrapper<ExamSiteEntity> wrapper = new QueryWrapper<>();
         LambdaQueryWrapper<ExamSiteEntity> lw = wrapper.lambda();
-        lw.eq(ExamSiteEntity::getEnable, Boolean.TRUE);
+        lw.eq(flag, ExamSiteEntity::getEnable, Boolean.TRUE);
         lw.eq(ExamSiteEntity::getCategoryId, teachingId);
         lw.orderByAsc(ExamSiteEntity::getCode);
         List<ExamSiteEntity> list = this.baseMapper.selectList(wrapper);
@@ -152,12 +153,16 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteDao, ExamSiteEntity
             String code = trimAndNullIfBlank(line.get(EXCEL_HEADER[0]));
             if (StringUtils.isBlank(code)) {
                 msg.append(" 考点代码不能为空");
+            } else if (code.length() > 20) {
+                msg.append(" 考点代码不能超过20个字符");
             } else {
                 site.setCode(code);
             }
             String name = trimAndNullIfBlank(line.get(EXCEL_HEADER[1]));
             if (StringUtils.isBlank(name)) {
                 msg.append(" 考点名称不能为空");
+            } else if (name.length() > 100) {
+                msg.append(" 考点名称不能超过100个字符");
             } else {
                 site.setName(name);
             }
@@ -182,6 +187,8 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteDao, ExamSiteEntity
             String address = trimAndNullIfBlank(line.get(EXCEL_HEADER[3]));
             if (StringUtils.isBlank(address)) {
                 msg.append(" 考点地址不能为空");
+            } else if (address.length() > 200) {
+                msg.append(" 考点地址不能超过200个字符");
             } else {
                 site.setAddress(address);
             }
@@ -258,14 +265,17 @@ public class ExamSiteServiceImpl extends ServiceImpl<ExamSiteDao, ExamSiteEntity
         if (req.getTeachingId() == null) {
             throw new StatusException("请选择考点所属教学点");
         }
-        if (req.getId() == null) {
-            LambdaQueryWrapper<ExamSiteEntity> wrapper = new LambdaQueryWrapper<>();
-            wrapper.eq(ExamSiteEntity::getCategoryId, req.getTeachingId());
-            wrapper.eq(ExamSiteEntity::getCode, req.getCode());
-            ExamSiteEntity existSite = baseMapper.selectOne(wrapper);
-            if (existSite != null) {
-                throw new StatusException("考点代码:" + req.getCode() + "已经存在");
-            }
+        checkExamSiteExist(req, req.getId() != null);
+    }
+
+    private void checkExamSiteExist(ExamSiteSaveReq req, boolean idFlag) {
+        LambdaQueryWrapper<ExamSiteEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ExamSiteEntity::getCategoryId, req.getTeachingId());
+        wrapper.eq(ExamSiteEntity::getCode, req.getCode());
+        wrapper.notIn(idFlag, ExamSiteEntity::getId, req.getId());
+        ExamSiteEntity existSite = baseMapper.selectOne(wrapper);
+        if (existSite != null) {
+            throw new StatusException("考点代码:" + req.getCode() + "已经存在");
         }
     }
 

+ 1 - 1
src/main/java/com/qmth/exam/reserve/service/impl/StudentApplyServiceImpl.java

@@ -104,7 +104,7 @@ public class StudentApplyServiceImpl extends ServiceImpl<StudentApplyDao, Studen
             req.setTaskId(task.getId());
         }
         if (req.getTeachingId() != null) {
-            List<CategoryVO> listExamSite = examSiteService.listExamSite(req.getTeachingId());
+            List<CategoryVO> listExamSite = examSiteService.listExamSite(req.getTeachingId(), Boolean.FALSE);
             List<Long> examSiteIds = listExamSite.stream().map(CategoryVO::getId).collect(Collectors.toList());
             if (!examSiteIds.isEmpty()) {
                 req.setExamSiteIds(examSiteIds);

+ 1 - 1
src/main/resources/mapper/CategoryMapper.xml

@@ -27,7 +27,7 @@
         <if test="req.enable != null">
             and c.enable=#{req.enable}
         </if>
-        order by c.code
+        order by c.update_time desc
     </select>
     
     <update id="updateTeachingCapacity">

+ 1 - 1
src/main/resources/mapper/ExamRoomMapper.xml

@@ -32,6 +32,6 @@
         <if test="req.name != null and req.name != ''">
             AND r.name like concat('%',#{req.name}, '%')
         </if>
-        order by r.code
+        order by r.update_time desc
     </select>
 </mapper>

+ 1 - 0
src/main/resources/mapper/ExamSiteMapper.xml

@@ -44,6 +44,7 @@
         <if test="req.enable != null">
             and s.enable=#{req.enable}
         </if>
+        order by s.update_time desc
     </select>
     
     <update id="updateExamSiteCapacity">