diff --git a/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/SchInfoController.java b/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/SchInfoController.java index 935401f..198498c 100644 --- a/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/SchInfoController.java +++ b/src/main/java/com/yunhai/bschclassmanage/controller/oapi/oa/SchInfoController.java @@ -1,31 +1,69 @@ package com.yunhai.bschclassmanage.controller.oapi.oa; +import com.yunhai.bschclassmanage.Repository.SchInfoRepository; import com.yunhai.bschclassmanage.config.Config; +import com.yunhai.bschclassmanage.entity.SchInfo; import com.yunhai.bschclassmanage.model.vo.oa.SchInfoVO; import com.yunhai.bschclassmanage.service.ISchInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @RestController @RequestMapping(Config.OAPI+"/SchInfo/") @CrossOrigin(originPatterns = {"*"}, allowCredentials = "true") public class SchInfoController { - - @Autowired - private ISchInfoService schInfoService; + @Autowired private ISchInfoService schInfoService; + @Autowired private SchInfoRepository schInfoRepository; @GetMapping("GetSchlist") - public ResponseEntity> GetSchlist(@RequestParam(required = false)String SchIDArr) { + public ResponseEntity> GetSchlist(@RequestParam(required = false) String SchIDArr) { return ResponseEntity.ok(schInfoService.getSchVOList(SchIDArr)); } + @GetMapping("AllList") + public ResponseEntity> AllList() { return ResponseEntity.ok(schInfoService.getSchVOList(null)); } + @GetMapping("GetSchFirst") - public ResponseEntity GetSchFirst(@RequestParam String SchID) { - return ResponseEntity.ok(schInfoService.GetSchFirst(SchID)); + public ResponseEntity GetSchFirst(@RequestParam(required = false) String SchID) { + return ResponseEntity.ok(SchID == null ? null : schInfoService.GetSchFirst(SchID)); } + @GetMapping("GetUserSchFirst") + public ResponseEntity GetUserSchFirst(@RequestParam(required = false) Integer UserSchID) { + return ResponseEntity.ok(UserSchID == null ? null : schInfoService.GetSchFirst(UserSchID)); + } + @GetMapping("GetUserSchlist") + public ResponseEntity> GetUserSchlist(@RequestParam(required = false) String UserSchIds) { + if (UserSchIds == null || UserSchIds.trim().isEmpty()) return ResponseEntity.ok(Collections.emptyList()); + Set ids = parseInts(UserSchIds); + return ResponseEntity.ok(schInfoRepository.findAll().stream() + .filter(s -> ids.contains(s.getId()) || ids.contains(s.getSchId())) + .map(this::toVo).collect(Collectors.toList())); + } + + @GetMapping("GetSchoolByGroupId") + public ResponseEntity> GetSchoolByGroupId(@RequestParam(required = false) Integer groupId) { + if (groupId == null || groupId == 0) return ResponseEntity.ok(Collections.emptyList()); + return ResponseEntity.ok(schInfoRepository.findAll().stream() + .filter(s -> Objects.equals(s.getSchId(), groupId)).map(this::toVo).collect(Collectors.toList())); + } + + @GetMapping("GetSchoolBySchoolenId") + public ResponseEntity>> GetSchoolBySchoolenId(@RequestParam(required = false) Integer groupId) { + return ResponseEntity.ok(Collections.emptyList()); + } + + private SchInfoVO toVo(SchInfo s) { + return SchInfoVO.builder().schSerId(s.getSchSerId()).userSchSerId(s.getId()).schName(s.getName()).build(); + } + private Set parseInts(String value) { + Set result = new HashSet<>(); + for (String token : value.split(",")) try { result.add(Integer.valueOf(token.trim())); } catch (NumberFormatException ignored) { } + return result; + } }