From 082d95d8397f55b37320e8e97fc285e1c3ca3469 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Mon, 29 Apr 2024 13:04:40 +0800 Subject: [PATCH] =?UTF-8?q?updates=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MiniArticleController.java | 17 -- .../mini/controller/MiniMajorController.java | 4 +- .../controller/MiniUserScoreController.java | 52 +---- .../ArtRecommendMajorController.java | 18 -- .../web/controller/ArtSchoolController.java | 7 - .../web/controller/WebMajorController.java | 81 ++++++++ .../controller/WebUserScoreController.java | 65 ++++++ .../controller/WebVolunteerController.java | 122 +++++++++++ .../web/dto/ArtRecommendMajorBaseDTO.java | 19 ++ .../web/dto/RecommendHistoryMajorDTO.java | 36 ++++ .../modules/web/dto/RecommendMajorDTO.java | 12 ++ .../jeecg/modules/web/dto/WebMajorDTO.java | 107 ++++++++++ .../modules/web/service/WebMajorService.java | 45 ++++ .../modules/web/vo/QueryRecommendMajorVO.java | 2 + .../yx/controller/YxScoreController.java | 53 +---- .../{UserScoreDto.java => UserScoreDTO.java} | 4 +- .../jeecg/modules/yx/dto/UserScoreInfo.java | 121 +++++++++++ .../jeecg/modules/yx/entity/YxUserScore.java | 4 +- .../modules/yx/entity/YxVolunteerRecord.java | 6 + .../yx/mapper/YxCalculationMajorMapper.java | 2 + .../modules/yx/mapper/YxMajorMapper.java | 3 + .../modules/yx/mapper/YxSchoolMapper.java | 4 + .../modules/yx/mapper/YxUserScoreMapper.java | 9 +- .../mapper/xml/YxCalculationMajorMapper.xml | 196 +++++++++++++++++- .../modules/yx/mapper/xml/YxMajorMapper.xml | 25 ++- .../modules/yx/mapper/xml/YxSchoolMapper.xml | 60 ++++++ .../yx/mapper/xml/YxUserScoreMapper.xml | 6 +- .../yx/mapper/xml/YxVolunteerRecordMapper.xml | 2 + .../yx/service/IYxVolunteerRecordService.java | 1 - .../yx/service/IYxVolunteerService.java | 16 ++ .../yx/service/impl/UserScoreService.java | 151 ++++++++++++++ .../impl/YxCalculationMajorServiceImpl.java | 6 +- .../yx/service/impl/YxSchoolServiceImpl.java | 122 ++++------- .../impl/YxVolunteerRecordServiceImpl.java | 19 +- .../service/impl/YxVolunteerServiceImpl.java | 76 ++++++- 35 files changed, 1230 insertions(+), 243 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserScoreController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebVolunteerController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendHistoryMajorDTO.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/WebMajorDTO.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/service/WebMajorService.java rename jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/{UserScoreDto.java => UserScoreDTO.java} (89%) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreInfo.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/UserScoreService.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniArticleController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniArticleController.java index fbecbda..154be3c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniArticleController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniArticleController.java @@ -1,11 +1,7 @@ package org.jeecg.modules.mini.controller; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.gson.Gson; @@ -18,29 +14,16 @@ import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.mini.service.MiniArticleService; -import org.jeecg.modules.mini.vo.ImportArticleVO; import org.jeecg.modules.mini.vo.QueryArticleVO; -import org.jeecg.modules.yx.dto.LiNianShuJuDTO; -import org.jeecg.modules.yx.dto.SchoolMajorImport3; import org.jeecg.modules.yx.entity.*; import org.jeecg.modules.yx.service.*; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.math.BigDecimal; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; /** * @Description 文章接口 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniMajorController.java index b597292..a4058be 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniMajorController.java @@ -32,8 +32,6 @@ public class MiniMajorController { @Autowired private IYxCalculationMajorService yxCalculationMajorService; @Autowired - private IYxSchoolExamMajorService yxSchoolExamMajorService; - @Autowired private RedisUtil redisUtil; @ApiOperation(value = "小程序端-智能推荐") @@ -106,7 +104,7 @@ public class MiniMajorController { dataList.add(data); } json = JSONObject.toJSONString(dataList); - //redisUtil.set(key, json, 3600); + redisUtil.set(key, json, 3600); } return Result.OK(dataList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniUserScoreController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniUserScoreController.java index d6c85d5..75b6256 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniUserScoreController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/controller/MiniUserScoreController.java @@ -13,17 +13,19 @@ import org.jeecg.modules.web.dto.ArtRecommendMajorBaseDTO; import org.jeecg.modules.web.dto.RecommendMajorDTO; import org.jeecg.modules.web.vo.QueryRecommendMajorVO; import org.jeecg.modules.yx.constant.YxConstant; -import org.jeecg.modules.yx.dto.UserScoreDto; +import org.jeecg.modules.yx.dto.UserScoreDTO; import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine; import org.jeecg.modules.yx.entity.YxScoreSegment; import org.jeecg.modules.yx.entity.YxUserScore; import org.jeecg.modules.yx.entity.YxVolunteer; import org.jeecg.modules.yx.service.*; +import org.jeecg.modules.yx.service.impl.UserScoreService; import org.jeecg.modules.yx.util.ScoreUtil; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; @@ -48,6 +50,8 @@ public class MiniUserScoreController { private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService; @Autowired private IYxScoreSegmentService yxScoreSegmentService; + @Resource + private UserScoreService userScoreService; @PostMapping(value = "/save") public Result save(@NotNull @RequestBody YxUserScore yxUserScore) { @@ -217,55 +221,13 @@ public class MiniUserScoreController { @GetMapping(value = "/getUserScoreInfo") public Result getUserScoreInfo() { //获取分数信息 - YxUserScore activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore(); - if (activeCurrentUserScore == null) { - return Result.OK(); - } - //获取当前成绩下的第志愿单 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(YxVolunteer::getScoreId, activeCurrentUserScore.getId()); - lambdaQueryWrapper.eq(YxVolunteer::getState, 1); - lambdaQueryWrapper.last("limit 1"); - YxVolunteer yxVolunteer = yxVolunteerService.getOne(lambdaQueryWrapper); - - //获取可报院校数量 - QueryRecommendMajorVO queryRecommendMajorVO = new QueryRecommendMajorVO(); - queryRecommendMajorVO.setBatch(activeCurrentUserScore.getBatch()); - ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO(); - artRecommendMajorBaseDTO.setKbd(activeCurrentUserScore.getKbdNum()); - artRecommendMajorBaseDTO.setJwt(activeCurrentUserScore.getJwtNum()); - artRecommendMajorBaseDTO.setKcj(activeCurrentUserScore.getKcjNum()); - artRecommendMajorBaseDTO.setNan(activeCurrentUserScore.getNlqNum()); - artRecommendMajorBaseDTO.setAllNumber(activeCurrentUserScore.getKbdNum() + activeCurrentUserScore.getJwtNum() + activeCurrentUserScore.getKcjNum()); - UserScoreDto userScoreDto = new UserScoreDto(); - userScoreDto.setScoreInfo(activeCurrentUserScore); - userScoreDto.setVolunteer(yxVolunteer); - userScoreDto.setFillVolunteer(artRecommendMajorBaseDTO); - return Result.OK(userScoreDto); + return Result.OK(userScoreService.getActiveCurrentUserScoreInfo()); } @ApiOperation(value = "今日编辑成绩的次数") @GetMapping(value = "/todayOfEditScoreCount") public Result todayOfEditScoreCount() { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - JSONObject jsonObject = new JSONObject(); - Date date = new Date(); - String format = YxConstant.sdf.format(date); - String startTime = format + " 00:00:00"; - String endTime = format + " 23:59:59"; - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.between(YxUserScore::getCreateTime, startTime, endTime); - lambdaQueryWrapper.eq(YxUserScore::getCreateBy, loginUser.getId()); - long useCount = yxUserScoreService.count(lambdaQueryWrapper); - long residueCount = 0; - if (YxConstant.todayMaxEditScoreCount > useCount) { - //当天没有超过更改次数 - residueCount = YxConstant.todayMaxEditScoreCount - useCount; - } - - jsonObject.put("useCount", useCount); - jsonObject.put("residueCount", residueCount); - return Result.OK(jsonObject); + return Result.OK(userScoreService.todayOfEditScoreCount()); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtRecommendMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtRecommendMajorController.java index 870e9fd..fec71cb 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtRecommendMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtRecommendMajorController.java @@ -51,29 +51,11 @@ public class ArtRecommendMajorController { return Result.OK(yxSchoolMajorService.recommendMajorCount(queryRecommendMajorVO)); } - @ApiOperation(value = "小程序端-推荐专业列表") - @GetMapping("/mini/page") - public Result miniRecommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) { - if (StringUtils.isNotBlank(queryRecommendMajorVO.getProvince())) { - queryRecommendMajorVO.setAddressList(Collections.singletonList(queryRecommendMajorVO.getProvince())); - } - ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.recommendMajorPage(queryRecommendMajorVO); - return Result.OK(artRecommendMajorBaseDTO); - } - - @ApiOperation(value = "小程序端-智能推荐") - @GetMapping("/mini/aiAuto") - public Result aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO) { - ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.aiAutoRecommendMajor(queryRecommendMajorVO); - return Result.OK(artRecommendMajorBaseDTO); - } @ApiOperation(value = "推荐专业列表") @GetMapping("/page") public Result recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) { return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO)); - /*ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.recommendMajorPage(queryRecommendMajorVO); - return Result.OK(artRecommendMajorBaseDTO);*/ } @ApiOperation(value = "学院专业列表") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtSchoolController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtSchoolController.java index 3c22f8a..ddaca1f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtSchoolController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtSchoolController.java @@ -24,13 +24,6 @@ public class ArtSchoolController { @Autowired private IYxSchoolService yxSchoolService; - @ApiOperation(value = "热门院校") - @GetMapping(value = "/hotList") - public Result hotList(){ - return Result.OK(yxSchoolService.hotList()); - } - - @ApiOperation(value = "搜索学校") @GetMapping("/search") public Result search(QueryRecommendMajorVO queryRecommendMajorVO){ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java new file mode 100644 index 0000000..89c9f43 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java @@ -0,0 +1,81 @@ +package org.jeecg.modules.web.controller; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.web.service.WebMajorService; +import org.jeecg.modules.web.vo.QueryRecommendMajorVO; +import org.jeecg.modules.yx.entity.YxMajor; +import org.jeecg.modules.yx.service.IYxMajorService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author ZhouWenTao + * @create 2024-04-26-14:42 + */ +@RequestMapping("/web/major") +@RestController +@Api(tags = "网站前台-专业信息接口") +@Slf4j +public class WebMajorController { + @Resource + IYxMajorService yxMajorService; + @Resource + WebMajorService webMajorService; + @Resource + RedisUtil redisUtil; + /** + * 网站前台 查专业 列表 + */ + @ApiOperation(value = "专业列表") + @GetMapping("/list") + public Result list(QueryRecommendMajorVO queryRecommendMajorVO){ + return Result.OK(webMajorService.webMajorList(queryRecommendMajorVO)); + } + @ApiOperation(value = "专业类型列表") + @GetMapping("/typeList") + public Result typeList(QueryRecommendMajorVO queryRecommendMajorVO){ + String educationalLevel = queryRecommendMajorVO.getEducationalLevel(); + String redisKey = "web:major:typeList"; + String json = null; + if (StringUtils.isNotBlank(educationalLevel)) { + redisKey+="_educationalLevel_"+educationalLevel; + } + //先判断redis有没有 + if(redisUtil.hasKey(redisKey)){ + json =(String) redisUtil.get(redisKey); + List javaList = JSONArray.parseArray(json).toJavaList(String.class); + return Result.OK(javaList); + }else{ + //查数据库 + LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); + if (StringUtils.isNotBlank(queryRecommendMajorVO.getEducationalLevel())) { + lambdaQueryWrapper.eq(YxMajor::getEducationalLevel,queryRecommendMajorVO.getEducationalLevel()); + } + lambdaQueryWrapper.select(YxMajor::getZyl); + lambdaQueryWrapper.isNotNull(YxMajor::getZyl); + lambdaQueryWrapper.groupBy(YxMajor::getZyl); + List list = yxMajorService.list(lambdaQueryWrapper); + if (CollectionUtils.isEmpty(list)) { + return Result.OK(new ArrayList<>()); + } + List zylList = list.stream().map(YxMajor::getZyl).collect(Collectors.toList()); + redisUtil.set(redisKey,JSONArray.toJSONString(zylList),6000); + return Result.OK(zylList); + } + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserScoreController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserScoreController.java new file mode 100644 index 0000000..dfa4613 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserScoreController.java @@ -0,0 +1,65 @@ +package org.jeecg.modules.web.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.yx.dto.UserScoreDTO; +import org.jeecg.modules.yx.entity.YxUserScore; +import org.jeecg.modules.yx.entity.YxVolunteer; +import org.jeecg.modules.yx.service.IYxUserScoreService; +import org.jeecg.modules.yx.service.IYxVolunteerService; +import org.jeecg.modules.yx.service.impl.UserScoreService; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author ZhouWenTao + * @create 2024-04-21-15:00 + */ +@RequestMapping("/web/user/score") +@RestController +@Api(tags = "前台用户成绩接口") +@Slf4j +public class WebUserScoreController { + @Resource + private UserScoreService userScoreService; + @Resource + private IYxUserScoreService yxUserScoreService; + @Resource + private IYxVolunteerService yxVolunteerService; + + @GetMapping(value = "/scoreList") + @ApiOperation(value = "获取志愿表列表") + public Result volunteerList(){ + try { + return Result.OK(userScoreService.volunteerListUser(null)); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + + @GetMapping(value = "/getUserScoreInfo") + @ApiOperation(value = "获取当前用户的成绩信息") + public Result getUserScoreInfo() { + //获取分数信息 + return Result.OK(userScoreService.getActiveCurrentUserScoreInfo()); + } + + @ApiOperation(value = "今日编辑成绩的次数") + @GetMapping(value = "/todayOfEditScoreCount") + public Result todayOfEditScoreCount() { + return Result.OK(userScoreService.todayOfEditScoreCount()); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebVolunteerController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebVolunteerController.java new file mode 100644 index 0000000..bf7e56f --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebVolunteerController.java @@ -0,0 +1,122 @@ +package org.jeecg.modules.web.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.yx.dto.VolunteerDTO; +import org.jeecg.modules.yx.entity.YxVolunteer; +import org.jeecg.modules.yx.entity.YxVolunteerRecord; +import org.jeecg.modules.yx.service.IYxVolunteerRecordService; +import org.jeecg.modules.yx.service.IYxVolunteerService; +import org.jeecg.modules.yx.service.impl.UserScoreService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author ZhouWenTao + * @create 2024-04-21-15:00 + */ +@RequestMapping("/web/volunteer") +@RestController +@Api(tags = "前台-志愿表接口") +@Slf4j +public class WebVolunteerController { + @Resource + private UserScoreService userScoreService; + @Resource + private IYxVolunteerRecordService yxVolunteerRecordService; + @Resource + private IYxVolunteerService yxVolunteerService; + + @GetMapping(value = "/volunteerList") + @ApiOperation(value = "获取志愿表列表") + public Result volunteerList(){ + try { + LoginUser loginUser=(LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = loginUser.getId(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(YxVolunteer::getCreateBy,userId); + lambdaQueryWrapper.in(YxVolunteer::getState,"0","1"); + lambdaQueryWrapper.orderByDesc(YxVolunteer::getState,YxVolunteer::getCreateTime); + return Result.OK(yxVolunteerService.list(lambdaQueryWrapper)); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + + @PostMapping(value = "/saveBatch") + @ApiOperation(value = "批量添加志愿明细信息") + public Result saveBatch(@RequestBody JSONObject jsonObject) { + JSONArray list = jsonObject.getJSONArray("list"); + if (CollectionUtils.isEmpty(list)) { + return Result.error("请求参数有误"); + } + List volunteerRecordList = list.toJavaList(YxVolunteerRecord.class); + return yxVolunteerService.saveVolunteerBatch(volunteerRecordList); + } + + @PostMapping(value = "/deleteBatch") + @ApiOperation(value = "批量删除志愿明细信息") + public Result deleteBatch(@RequestBody JSONObject jsonObject){ + JSONArray list = jsonObject.getJSONArray("list"); + List volunteerRecordIdList = list.toJavaList(String.class); + return yxVolunteerService.deleteVolunteerRecordBatch(volunteerRecordIdList); + } + + @PostMapping(value = "/editNowVolunteerName") + @ApiOperation(value = "更改当前用户的志愿表名称") + public Result editNowVolunteerName(@RequestBody YxVolunteer volunteer){ + if(StringUtils.isBlank(volunteer.getVolunteerName())){ + return Result.error("请输入志愿表名称"); + } + LoginUser loginUser=(LoginUser) SecurityUtils.getSubject().getPrincipal(); + VolunteerDTO volunteerDTO = yxVolunteerService.getActiveByCreate(loginUser.getId()); + if (volunteerDTO==null) { + return Result.error("修改失败,未获取到志愿表信息"); + } + try { + String id = volunteerDTO.getId(); + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(YxVolunteer::getId,id); + updateWrapper.set(YxVolunteer::getVolunteerName,volunteer.getVolunteerName()); + yxVolunteerService.update(updateWrapper); + return Result.OK("操作成功"); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + @ApiOperation(value = "今日编辑成绩的次数") + @GetMapping(value = "/todayOfEditScoreCount") + public Result todayOfEditScoreCount() { + return Result.OK(userScoreService.todayOfEditScoreCount()); + } + + public static void main(String[] args) { + Integer closestNextValue = null; + Integer[] valuesArray =new Integer[]{2,3,4}; + //冒泡排序 + //valuesArray.sort((a, b) => a - b); + // 找到缺失的数字或者接近的下一个值 + for (int i = 0; i < valuesArray.length; i++) { + if (valuesArray[i] == i + 1) { + closestNextValue = i + 1; + break; + } + } + if (closestNextValue == null) { + closestNextValue = valuesArray[valuesArray.length - 1] + 1; + } + System.out.println(closestNextValue); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java index 3bb43e4..6ff7f6e 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java @@ -28,4 +28,23 @@ public class ArtRecommendMajorBaseDTO implements Serializable { public ArtRecommendMajorBaseDTO() { } + + public ArtRecommendMajorBaseDTO(Integer kcj, Integer jwt, Integer kbd, Integer nan) { + this.kcj = kcj; + this.jwt = jwt; + this.kbd = kbd; + this.nan = nan; + try { + this.allNumber = kcj+jwt+kbd+nan; + }catch (Exception e){ + this.allNumber = 0; + } + } + public ArtRecommendMajorBaseDTO(Integer kcj, Integer jwt, Integer kbd, Integer nan, Integer allNumber) { + this.kcj = kcj; + this.jwt = jwt; + this.kbd = kbd; + this.nan = nan; + this.allNumber = allNumber; + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendHistoryMajorDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendHistoryMajorDTO.java new file mode 100644 index 0000000..fb5d886 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendHistoryMajorDTO.java @@ -0,0 +1,36 @@ +package org.jeecg.modules.web.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * 推荐专业的历年信息 + * @author ZhouWenTao + * @create 2024-04-24-12:28 + */ +@Data +@ApiModel(value = "专业的历年信息") +public class RecommendHistoryMajorDTO implements Serializable { + /**年份*/ + @ApiModelProperty(value = "年份") + private java.lang.String year; + /**录取方式*/ + @ApiModelProperty(value = "录取方式") + private java.lang.String rulesEnrollProbability; + /**录取概率计算规则运算符*/ + @ApiModelProperty(value = "录取方式运算符") + private java.lang.String probabilityOperator; + /**省控线*/ +// @ApiModelProperty(value = "省控线") +// private java.math.BigDecimal controlLine; + /**录取线*/ + @ApiModelProperty(value = "录取线") + private java.math.BigDecimal admissionLine; + /**招生人数*/ + @ApiModelProperty(value = "招生人数") + private java.lang.Integer enrollNum; +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java index 9cc23de..adc3ad5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java @@ -36,6 +36,8 @@ public class RecommendMajorDTO implements Serializable { private String province; @ApiModelProperty(value = "办学类型") private String propertyName; + @ApiModelProperty(value = "办学性质") + private String schoolNature; @ApiModelProperty(value = "院校类型") private String institutionType; @ApiModelProperty(value = "专业名称") @@ -78,6 +80,11 @@ public class RecommendMajorDTO implements Serializable { @ApiModelProperty(value = "学年制") private Integer studyYear=0; @ApiModelProperty(value = "历年录取数据") + private List historyList; + @ApiModelProperty(value = "历年录取数据") + private Map historyMap; + //============= + @ApiModelProperty(value = "历年录取数据") private List historyMajorEnrollList; @ApiModelProperty(value = "历年录取数据Map对象") public Map historyMajorEnrollMap; @@ -126,6 +133,11 @@ public class RecommendMajorDTO implements Serializable { @ApiModelProperty(value = "标签") private Set tagsList; + /** + * 专业折算id + */ + @ApiModelProperty(value = "专业折算id") + private String calculationMajorId; /** * 考试类型(统考/校考) */ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/WebMajorDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/WebMajorDTO.java new file mode 100644 index 0000000..48d96b7 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/WebMajorDTO.java @@ -0,0 +1,107 @@ +package org.jeecg.modules.web.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @author ZhouWenTao + * @create 2024-04-26-14:48 + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class WebMajorDTO implements Serializable { + private static final long serialVersionUID = 1L; + /**主键*/ + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**专业名称*/ + @ApiModelProperty(value = "专业名称") + private java.lang.String majorName; + /**专业代码*/ + @ApiModelProperty(value = "专业代码") + private java.lang.String majorCode; + /**专业代码字母*/ + @ApiModelProperty(value = "专业代码字母") + private java.lang.String majorCodeChar; + /**学历层次*/ + @ApiModelProperty(value = "学历层次") + private java.lang.String educationalLevel; + /**专业图标*/ + @ApiModelProperty(value = "专业图标") + private java.lang.String majorIcon; + /**学制*/ + @ApiModelProperty(value = "学制") + private java.lang.String semester; + /**学科分类*/ + @ApiModelProperty(value = "学科分类") + private java.lang.String xkfl; + /**专业类*/ + @ApiModelProperty(value = "专业类") + private java.lang.String zyl; + /**设立日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "设立日期") + private java.util.Date establishmentDate; + /**专业描述*/ + @Excel(name = "专业描述", width = 15) + @ApiModelProperty(value = "专业描述") + private java.lang.String majorDesc; + /**培养方案*/ + @Excel(name = "培养方案", width = 15) + @ApiModelProperty(value = "培养方案") + private java.lang.String cultivationDirection; + /**主要课程*/ + @Excel(name = "主要课程", width = 15) + @ApiModelProperty(value = "主要课程") + private java.lang.String mainCourses; + + /**授予学位*/ + @ApiModelProperty(value = "授予学位") + private String degree; + + /**是否是职教*/ + @ApiModelProperty(value = "是否是职教(1-是,0-否)") + private Integer isVte; + + + /**选考(学科)建议*/ + @ApiModelProperty(value = "选考(学科)建议") + private String subjectAdvice; + /**第一印象*/ + @ApiModelProperty(value = "第一印象") + private String firstImpression; + /**性别比例*/ + @ApiModelProperty(value = "性别比例") + private String sexRatio; + /**就业率*/ + @ApiModelProperty(value = "就业率") + private String employmentRate; + /**是什么*/ + @ApiModelProperty(value = "是什么") + private String ssm; + /**学什么*/ + @ApiModelProperty(value = "学什么") + private String xsm; + /**干什么*/ + @ApiModelProperty(value = "干什么") + private String gsm; + /**就业去向*/ + @ApiModelProperty(value = "就业去向") + private String employmentDestination; + /**就业地区分布*/ + @ApiModelProperty(value = "就业地区分布") + private String regionDistribution; + /**就业行业分布*/ + @ApiModelProperty(value = "就业行业分布") + private String industryDistribution; + /**就业岗位分布*/ + @ApiModelProperty(value = "就业岗位分布") + private String jobDistribution; +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/service/WebMajorService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/service/WebMajorService.java new file mode 100644 index 0000000..0c5e826 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/service/WebMajorService.java @@ -0,0 +1,45 @@ +package org.jeecg.modules.web.service; + +import com.alibaba.fastjson.JSONObject; +import net.sf.json.JSON; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.jeecg.modules.web.dto.WebMajorDTO; +import org.jeecg.modules.web.vo.QueryRecommendMajorVO; +import org.jeecg.modules.yx.mapper.YxMajorMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 网站前台-专业Service + * + * @author ZhouWenTao + * @create 2024-04-26-14:50 + */ +@Service +public class WebMajorService { + @Resource + YxMajorMapper yxMajorMapper; + /** + * 网页端-专业列表 + */ + public List webMajorList(QueryRecommendMajorVO queryRecommendMajorVO) { + List jsonObjectList = new ArrayList<>(); + List webMajorDtoList = yxMajorMapper.webMajorList(queryRecommendMajorVO); + if (CollectionUtils.isEmpty(webMajorDtoList)) { + return null; + } + Set collect = webMajorDtoList.stream().map(WebMajorDTO::getZyl).collect(Collectors.toSet()); + JSONObject js; + for (String s : collect) { + js = new JSONObject(); + js.put("majorTypeName",s); + js.put("list",webMajorDtoList.stream().filter(w->w.getZyl().equals(s)).collect(Collectors.toList())); + jsonObjectList.add(js); + } + return jsonObjectList; + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/vo/QueryRecommendMajorVO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/vo/QueryRecommendMajorVO.java index feca125..51a47a8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/vo/QueryRecommendMajorVO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/vo/QueryRecommendMajorVO.java @@ -71,4 +71,6 @@ public class QueryRecommendMajorVO extends ArtBaseDTO { @ApiModelProperty(value = "考试类型") private String kslx; + @ApiModelProperty(value = "专业类型") + private String majorType; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxScoreController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxScoreController.java index 8025f3c..901bc23 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxScoreController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxScoreController.java @@ -12,16 +12,16 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.AssertUtils; import org.jeecg.modules.web.dto.ArtRecommendMajorBaseDTO; import org.jeecg.modules.web.dto.RecommendMajorDTO; -import org.jeecg.modules.web.vo.QueryRecommendMajorVO; import org.jeecg.modules.yx.constant.YxConstant; -import org.jeecg.modules.yx.dto.UserScoreDto; import org.jeecg.modules.yx.entity.*; import org.jeecg.modules.yx.service.*; +import org.jeecg.modules.yx.service.impl.UserScoreService; import org.jeecg.modules.yx.util.ScoreUtil; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; @@ -47,6 +47,8 @@ public class YxScoreController { private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService; @Autowired private IYxScoreSegmentService yxScoreSegmentService; + @Resource + private UserScoreService userScoreService; @PostMapping(value = "/save") public Result save(@NotNull @RequestBody YxUserScore yxUserScore) { @@ -216,55 +218,12 @@ public class YxScoreController { @GetMapping(value = "/getUserScoreInfo") public Result getUserScoreInfo() { //获取分数信息 - YxUserScore activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore(); - if (activeCurrentUserScore == null) { - return Result.OK(); - } - //获取当前成绩下的第志愿单 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(YxVolunteer::getScoreId, activeCurrentUserScore.getId()); - lambdaQueryWrapper.eq(YxVolunteer::getState, 1); - lambdaQueryWrapper.last("limit 1"); - YxVolunteer yxVolunteer = yxVolunteerService.getOne(lambdaQueryWrapper); - - //获取可报院校数量 - QueryRecommendMajorVO queryRecommendMajorVO = new QueryRecommendMajorVO(); - queryRecommendMajorVO.setBatch(activeCurrentUserScore.getBatch()); - ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO(); - artRecommendMajorBaseDTO.setKbd(activeCurrentUserScore.getKbdNum()); - artRecommendMajorBaseDTO.setJwt(activeCurrentUserScore.getJwtNum()); - artRecommendMajorBaseDTO.setKcj(activeCurrentUserScore.getKcjNum()); - artRecommendMajorBaseDTO.setNan(activeCurrentUserScore.getNlqNum()); - artRecommendMajorBaseDTO.setAllNumber(activeCurrentUserScore.getKbdNum() + activeCurrentUserScore.getJwtNum() + activeCurrentUserScore.getKcjNum()); - UserScoreDto userScoreDto = new UserScoreDto(); - userScoreDto.setScoreInfo(activeCurrentUserScore); - userScoreDto.setVolunteer(yxVolunteer); - userScoreDto.setFillVolunteer(artRecommendMajorBaseDTO); - return Result.OK(userScoreDto); + return Result.OK(userScoreService.getActiveCurrentUserScoreInfo()); } - @ApiOperation(value = "今日编辑成绩的次数") @GetMapping(value = "/todayOfEditScoreCount") public Result todayOfEditScoreCount() { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - JSONObject jsonObject = new JSONObject(); - Date date = new Date(); - String format = YxConstant.sdf.format(date); - String startTime = format + " 00:00:00"; - String endTime = format + " 23:59:59"; - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.between(YxUserScore::getCreateTime, startTime, endTime); - lambdaQueryWrapper.eq(YxUserScore::getCreateBy, loginUser.getId()); - long useCount = yxUserScoreService.count(lambdaQueryWrapper); - long residueCount = 0; - if (YxConstant.todayMaxEditScoreCount > useCount) { - //当天没有超过更改次数 - residueCount = YxConstant.todayMaxEditScoreCount - useCount; - } - - jsonObject.put("useCount", useCount); - jsonObject.put("residueCount", residueCount); - return Result.OK(jsonObject); + return Result.OK(userScoreService.todayOfEditScoreCount()); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDto.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDTO.java similarity index 89% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDto.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDTO.java index 24cca09..17180b0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDto.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreDTO.java @@ -16,10 +16,10 @@ import java.io.Serializable; */ @Data @ApiModel(value = "用户成绩信息dto") -public class UserScoreDto implements Serializable { +public class UserScoreDTO implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "用户成绩信息") - private YxUserScore scoreInfo; + private UserScoreInfo scoreInfo; @ApiModelProperty(value = "志愿单信息") private YxVolunteer volunteer; @ApiModelProperty(value = "推荐专业数量信息") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreInfo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreInfo.java new file mode 100644 index 0000000..3085a2e --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/dto/UserScoreInfo.java @@ -0,0 +1,121 @@ +package org.jeecg.modules.yx.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author ZhouWenTao + * @create 2024-04-21-15:16 + */ +@Data +@ApiModel(value = "PC端用户成绩返回对象") +public class UserScoreInfo implements Serializable { + @TableId(type = IdType.ASSIGN_ID) + @JsonIgnore + private String id; + /**使用状态(0-未使用,1-使用中)*/ + @ApiModelProperty(value = "使用状态(0-未使用,1-使用中,2-草表)") + private java.lang.String state; + /**填报类型(1-普通类 2-艺术类)*/ + @Excel(name = "填报类型(1-普通类 2-艺术类)", width = 15) + @ApiModelProperty(value = "填报类型(1-普通类 2-艺术类)") + private java.lang.String type; + /**学历层次(1-本科,2-专科)*/ + @Excel(name = "学历层次(1-本科,2-专科)", width = 15) + @ApiModelProperty(value = "学历层次(1-本科,2-专科)") + private java.lang.String educationalLevel; + /**文理分科*/ + @Excel(name = "文理分科", width = 15) + @ApiModelProperty(value = "文理分科") + private java.lang.String cognitioPolyclinic; + /**专业类别(美术类/...)*/ + @Excel(name = "专业类别(美术类/...)", width = 15) + @ApiModelProperty(value = "专业类别(美术类/...)") + private java.lang.String professionalCategory; + /**子级专业类别*/ + @Excel(name = "子级专业类别", width = 15) + @ApiModelProperty(value = "子级专业类别") + private java.lang.String professionalCategoryChildren; + /**专业成绩分(语文,数学,英语...)*/ + @Excel(name = "专业成绩分", width = 15) + @ApiModelProperty(value = "专业成绩分") + private java.math.BigDecimal professionalScore; + /**文化成绩分*/ + @Excel(name = "文化成绩分", width = 15) + @ApiModelProperty(value = "文化成绩分") + private java.math.BigDecimal culturalScore; + /**创建人*/ + @ApiModelProperty(value = "创建人") + @JsonIgnore + private String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private Date updateTime; + /**高考省份*/ + @ApiModelProperty(value = "高考省份") + private String province; + + /**录取批次*/ + @ApiModelProperty(value = "录取批次") + private String batch; + + /**语文成绩*/ + @Excel(name = "语文成绩", width = 15) + @ApiModelProperty(value = "语文成绩") + private java.math.BigDecimal chineseScore; + + /**英语成绩*/ + @Excel(name = "英语成绩", width = 15) + @ApiModelProperty(value = "英语成绩") + private java.math.BigDecimal englishScore; + /**音乐表演声乐*/ + @ApiModelProperty(value = "音乐表演声乐") + private BigDecimal yybysy; + /**音乐表演器乐*/ + @ApiModelProperty(value = "音乐表演器乐") + private BigDecimal yybyqy; + /**音乐教育 */ + @ApiModelProperty(value = "音乐教育") + private BigDecimal yyjy; + /**服装表演 */ + @ApiModelProperty(value = "服装表演") + private BigDecimal fzby; + /**戏剧影视导演 */ + @ApiModelProperty(value = "戏剧影视导演") + private BigDecimal xjysdy; + /**戏剧影视表演 */ + @ApiModelProperty(value = "戏剧影视表演") + private BigDecimal xjysby; + @ApiModelProperty(value = "可保底专业数量") + private Integer kbdNum; + @ApiModelProperty(value = "较稳妥专业数量") + private Integer jwtNum; + @ApiModelProperty(value = "可冲击专业数量") + private Integer kcjNum; + @ApiModelProperty(value = "难录取专业数量") + private Integer nlqNum; + @ApiModelProperty(value = "记录结果表的表名") + @JsonIgnore + private String calculationTableName; +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxUserScore.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxUserScore.java index 5b2bc31..a144466 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxUserScore.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxUserScore.java @@ -60,9 +60,9 @@ public class YxUserScore implements Serializable { private java.lang.String professionalCategoryChildren; /**选课*/ - @Excel(name = "选课", width = 15) + /*@Excel(name = "选课", width = 15) @ApiModelProperty(value = "选课") - private java.lang.String subjects; + private java.lang.String subjects;*/ /**专业成绩分(语文,数学,英语...)*/ @Excel(name = "专业成绩分(语文,数学,英语...)", width = 15) @ApiModelProperty(value = "专业成绩分(语文,数学,英语...)") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxVolunteerRecord.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxVolunteerRecord.java index adb1474..648ba4c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxVolunteerRecord.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxVolunteerRecord.java @@ -77,6 +77,12 @@ public class YxVolunteerRecord implements Serializable { @Excel(name = "服从调剂", width = 15) @ApiModelProperty(value = "服从调剂") private Integer fctj; + + /** + * 专业折算id + */ + @ApiModelProperty(value = "专业折算id") + private String calculationMajorId; //========================= /*文理分科*/ @TableField(exist = false) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java index 667c831..0f98b2d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java @@ -15,6 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @Version: V1.0 */ public interface YxCalculationMajorMapper extends BaseMapper { + //本科/专科 + List recommendMajorListBenOrZhuan(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); List recommendMajorList(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); void insertBatch(@Param("tableName") String tableName,@Param("list") List list); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxMajorMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxMajorMapper.java index b65d909..3435ea7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxMajorMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxMajorMapper.java @@ -3,6 +3,8 @@ package org.jeecg.modules.yx.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.web.dto.WebMajorDTO; +import org.jeecg.modules.web.vo.QueryRecommendMajorVO; import org.jeecg.modules.yx.entity.YxMajor; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface YxMajorMapper extends BaseMapper { + List webMajorList(@Param("q") QueryRecommendMajorVO queryRecommendMajorVO); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxSchoolMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxSchoolMapper.java index c847eab..b952dfe 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxSchoolMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxSchoolMapper.java @@ -49,4 +49,8 @@ public interface YxSchoolMapper extends BaseMapper { * @return */ MiniSchoolDTO getMiniDtoBySchoolCode(@Param("schoolCode") String schoolCode); + + List artSchoolList1(@Param("province") String province,@Param("schoolType") String schoolType); + + List artSchoolList2(@Param("province") String province,@Param("schoolType") String schoolType ); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxUserScoreMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxUserScoreMapper.java index ba0d8b7..e8865aa 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxUserScoreMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxUserScoreMapper.java @@ -1,8 +1,7 @@ package org.jeecg.modules.yx.mapper; -import java.util.List; - import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.yx.dto.UserScoreInfo; import org.jeecg.modules.yx.entity.YxUserScore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +13,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface YxUserScoreMapper extends BaseMapper { + /** + * 根据createBy获取成绩信息,state=1 1条 + * @param createBy + * @return + */ + UserScoreInfo getByCreateByLast1(@Param(value = "createBy") String createBy); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml index 118484c..bf2df0f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml @@ -20,6 +20,7 @@ + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxMajorMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxMajorMapper.xml index cd81d04..a8b8f67 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxMajorMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxMajorMapper.xml @@ -2,4 +2,27 @@ - \ No newline at end of file + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml index d03eb79..8532a82 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml @@ -423,4 +423,64 @@ WHERE s.school_name = #{schoolName} or sc.school_name = #{schoolName} limit 1 + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxUserScoreMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxUserScoreMapper.xml index e3e30eb..4acbf7f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxUserScoreMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxUserScoreMapper.xml @@ -2,4 +2,8 @@ - \ No newline at end of file + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml index ba6439c..0008809 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml @@ -93,8 +93,10 @@ s.province as province, s.school_nature as propertyName, s.institution_type as institutionType, + cm.id as calculationMajorId, cm.major_name, cm.category, + cm.plan_num as planNum, cm.rules_enroll_probability as rulesEnrollProbability, cm.probability_operator as probabilityOperator, cm.detail as majorDetail, diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java index 0df077c..c3cfee8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java @@ -34,5 +34,4 @@ public interface IYxVolunteerRecordService extends IService { */ boolean deleteByVolunteerId(String volunteerId); - } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerService.java index 35860cb..ae44ee5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerService.java @@ -1,9 +1,11 @@ package org.jeecg.modules.yx.service; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.web.vo.SaveVolunteerVO; import org.jeecg.modules.yx.dto.VolunteerDTO; import org.jeecg.modules.yx.entity.YxVolunteer; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.yx.entity.YxVolunteerRecord; import java.util.List; @@ -14,6 +16,8 @@ import java.util.List; * @Version: V1.0 */ public interface IYxVolunteerService extends IService { + + /** * 根据创建人获取 使用中 的志愿单 * @param createBy 创建人 @@ -60,4 +64,16 @@ public interface IYxVolunteerService extends IService { * @param userId 用户id,不传就是所有用户 */ void removeOldScore(String userId); + + + + /** + * 批量添加志愿信息 + */ + Result saveVolunteerBatch(List volunteerRecordList); + + /** + * 根据 志愿明细id删除志愿 + */ + Result deleteVolunteerRecordBatch(List volunteerRecordIdList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/UserScoreService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/UserScoreService.java new file mode 100644 index 0000000..08e0a2c --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/UserScoreService.java @@ -0,0 +1,151 @@ +package org.jeecg.modules.yx.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.AssertUtils; +import org.jeecg.modules.web.dto.ArtRecommendMajorBaseDTO; +import org.jeecg.modules.yx.constant.YxConstant; +import org.jeecg.modules.yx.dto.UserScoreInfo; +import org.jeecg.modules.yx.dto.UserScoreDTO; +import org.jeecg.modules.yx.entity.YxUserScore; +import org.jeecg.modules.yx.entity.YxVolunteer; +import org.jeecg.modules.yx.mapper.YxUserScoreMapper; +import org.jeecg.modules.yx.mapper.YxVolunteerMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 通用-用户分数Service + * + * @author ZhouWenTao + * @create 2024-04-21-15:48 + */ +@Service +public class UserScoreService { + @Resource + private YxUserScoreMapper yxUserScoreMapper; + @Resource + private YxVolunteerMapper yxVolunteerMapper; + + /** + * 获取当前用户的分数成绩一些列信息 + */ + public UserScoreDTO getActiveCurrentUserScoreInfo() { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + AssertUtils.notNull(loginUser, "请先登录!"); + try { + //获取用户 + UserScoreInfo userScoreInfo = this.getActiveUserScore(loginUser.getId()); + if (userScoreInfo == null) { + return null; + } + UserScoreDTO userScoreDto = new UserScoreDTO(); + //获取 志愿单信息 + LambdaQueryWrapper yxVolunteerLambdaQueryWrapper = new LambdaQueryWrapper<>(); + yxVolunteerLambdaQueryWrapper.eq(YxVolunteer::getScoreId, userScoreInfo.getId()); + yxVolunteerLambdaQueryWrapper.eq(YxVolunteer::getState, 1); + yxVolunteerLambdaQueryWrapper.last("limit 1"); + YxVolunteer yxVolunteer = yxVolunteerMapper.selectOne(yxVolunteerLambdaQueryWrapper); + //组合参数 + userScoreDto.setScoreInfo(userScoreInfo); + if (yxVolunteer != null) { + userScoreDto.setVolunteer(yxVolunteer); + } + //获取 可报院校数量 + userScoreDto.setFillVolunteer(new ArtRecommendMajorBaseDTO(userScoreInfo.getKbdNum(), userScoreInfo.getJwtNum(), userScoreInfo.getKcjNum(), userScoreInfo.getNlqNum())); + return userScoreDto; + } catch (Exception e) { + return null; + } + } + + /** + * 根据createBy获取使用成绩 + */ + public UserScoreInfo getActiveUserScore(String createBy) { + if (StringUtils.isBlank(createBy)) { + return null; + } + return yxUserScoreMapper.getByCreateByLast1(createBy); + } + + /** + * 获取当前用户今天剩余可保存成绩次数 + */ + public JSONObject todayOfEditScoreCount() { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + AssertUtils.notNull(loginUser, "请先登录!"); + JSONObject jsonObject = new JSONObject(); + Date date = new Date(); + String format = YxConstant.sdf.format(date); + String startTime = format + " 00:00:00"; + String endTime = format + " 23:59:59"; + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.between(YxUserScore::getCreateTime, startTime, endTime); + lambdaQueryWrapper.eq(YxUserScore::getCreateBy, loginUser.getId()); + long useCount = yxUserScoreMapper.selectCount(lambdaQueryWrapper); + long residueCount = 0; + if (YxConstant.todayMaxEditScoreCount > useCount) { + //当天没有超过更改次数 + residueCount = YxConstant.todayMaxEditScoreCount - useCount; + } + + jsonObject.put("useCount", useCount); + jsonObject.put("residueCount", residueCount); + return jsonObject; + } + + /** + * 获取用户的成绩志愿单列表 + */ + public List volunteerListUser(String userId) { + if (StringUtils.isBlank(userId)) { + //如果没穿userId,则是查当前用户,否则根据userId查询 + LoginUser loginUser=(LoginUser) SecurityUtils.getSubject().getPrincipal(); + userId = loginUser.getId(); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(YxUserScore::getCreateBy,userId); + lambdaQueryWrapper.in(YxUserScore::getState,"0","1"); + lambdaQueryWrapper.orderByDesc(YxUserScore::getState,YxUserScore::getCreateTime); + //获取成绩列表 + List list = yxUserScoreMapper.selectList(lambdaQueryWrapper); + List resultDataList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(list)) { + //获取志愿表信息 + List userScoreIdList = list.stream().map(YxUserScore::getId).collect(Collectors.toList()); + List volunteerList = yxVolunteerMapper.selectList(new LambdaQueryWrapper().in(YxVolunteer::getScoreId, userScoreIdList)); + UserScoreDTO userScoreDto = null; + UserScoreInfo usi = null; + YxVolunteer yxVolunteer = null; + for (YxUserScore yxUserScore : list) { + try { + //返回对象 + userScoreDto = new UserScoreDTO(); + //成绩信息 + usi = new UserScoreInfo(); + BeanUtils.copyProperties(yxUserScore,usi); + userScoreDto.setScoreInfo(usi); + //志愿表信息 + yxVolunteer = volunteerList.stream().filter(v -> v.getScoreId().equals(yxUserScore.getId())).findAny().get(); + userScoreDto.setVolunteer(yxVolunteer); + //add到集合 + resultDataList.add(userScoreDto); + }catch (Exception e){ + continue; + } + } + } + return resultDataList; + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java index c296128..372e462 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java @@ -292,9 +292,9 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO); + List recommendMajorList = baseMapper.recommendMajorListBenOrZhuan(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO); yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java index 60b3a34..820d0d0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java @@ -286,161 +286,121 @@ public class YxSchoolServiceImpl extends ServiceImpl i @Override public ArtHotSchoolDTO hotList() { ArtHotSchoolDTO artHotSchoolDTO = new ArtHotSchoolDTO(); + //获取当前省份的学校 //获取本科 String province = "河南"; - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(YxSchool::getProvince, province); - queryWrapper.eq(YxSchool::getSchoolType, "本科"); - queryWrapper.last("limit 0,10"); - List nowProvinceBenSchoolList = this.list(queryWrapper); - //获取高职高专 - queryWrapper.clear(); - queryWrapper.eq(YxSchool::getProvince, province); - queryWrapper.eq(YxSchool::getSchoolType, "专科"); - queryWrapper.last("limit 0,10"); - List nowProvinceZhuanSchoolList = this.list(queryWrapper); + List nowProvinceBenSchoolList = baseMapper.artSchoolList1(province,"本科"); + List nowProvinceZhuanSchoolList = baseMapper.artSchoolList1(province,"专科"); //获取外省的学校 - //获取本科 - queryWrapper.clear(); - queryWrapper.ne(YxSchool::getProvince, province); - queryWrapper.eq(YxSchool::getSchoolType, "本科"); - queryWrapper.last("limit 0,10"); - List otherProvinceBenSchoolList = this.list(queryWrapper); - //获取专科 - queryWrapper.clear(); - queryWrapper.ne(YxSchool::getProvince, province); - queryWrapper.eq(YxSchool::getSchoolType, "专科"); - queryWrapper.last("limit 0,10"); - List otherProvinceZhuanSchoolList = this.list(queryWrapper); + List otherProvinceBenSchoolList = baseMapper.artSchoolList2(province,"本科"); + List otherProvinceZhuanSchoolList = baseMapper.artSchoolList2(province,"专科"); //处理标签 Set tagsList; List list985211 = Arrays.asList("211", "985"); String tags = null; - List artSchoolDTOList = new ArrayList<>(); - ArtSchoolDTO artSchoolDTO = null; - for (YxSchool record : nowProvinceBenSchoolList) { - artSchoolDTO = new ArtSchoolDTO(); + for (ArtSchoolDTO artSchoolDTO : nowProvinceBenSchoolList) { tagsList = new LinkedHashSet<>(); //处理 标签,字符串转 array - tags = record.getTags(); + tags = artSchoolDTO.getTags(); if (StringUtils.isNotEmpty(tags)) { tagsList = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(tags.split(",")))); } - tagsList.add(record.getSchoolType());//学校层次 - tagsList.add(record.getSchoolNature());//办学性质 - if (StringUtils.isNotBlank(record.getInstitutionType())) { - tagsList.add(record.getInstitutionType() + "类");//院校类型 + tagsList.add(artSchoolDTO.getSchoolType());//学校层次 + tagsList.add(artSchoolDTO.getSchoolNature());//办学性质 + if (StringUtils.isNotBlank(artSchoolDTO.getInstitutionType())) { + tagsList.add(artSchoolDTO.getInstitutionType() + "类");//院校类型 } - //判断 是否是 985,211 - if (record.getIs211().equals(1)) { + if (artSchoolDTO.getIs211().equals("1")) { tagsList.add("211"); } - if (record.getIs985().equals(1)) { + if (artSchoolDTO.getIs985().equals("1")) { tagsList.add("985"); } if (tagsList.containsAll(list985211)) { tagsList.add("双一流"); } - BeanUtils.copyProperties(record, artSchoolDTO); artSchoolDTO.setTagsList(tagsList); - artSchoolDTOList.add(artSchoolDTO); } - artHotSchoolDTO.setNowProvinceBenSchoolList(artSchoolDTOList); - artSchoolDTOList = new ArrayList<>(); - for (YxSchool record : nowProvinceZhuanSchoolList) { - artSchoolDTO = new ArtSchoolDTO(); + for (ArtSchoolDTO artSchoolDTO : nowProvinceZhuanSchoolList) { tagsList = new LinkedHashSet<>(); //处理 标签,字符串转 array - tags = record.getTags(); + tags = artSchoolDTO.getTags(); if (StringUtils.isNotEmpty(tags)) { tagsList = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(tags.split(",")))); } - tagsList.add(record.getSchoolType());//学校层次 - tagsList.add(record.getSchoolNature());//办学性质 - if (StringUtils.isNotBlank(record.getInstitutionType())) { - tagsList.add(record.getInstitutionType() + "类");//院校类型 + tagsList.add(artSchoolDTO.getSchoolType());//学校层次 + tagsList.add(artSchoolDTO.getSchoolNature());//办学性质 + if (StringUtils.isNotBlank(artSchoolDTO.getInstitutionType())) { + tagsList.add(artSchoolDTO.getInstitutionType() + "类");//院校类型 } - //判断 是否是 985,211 - if (record.getIs211().equals(1)) { + if (artSchoolDTO.getIs211().equals("1")) { tagsList.add("211"); } - if (record.getIs985().equals(1)) { + if (artSchoolDTO.getIs985().equals("1")) { tagsList.add("985"); } if (tagsList.containsAll(list985211)) { tagsList.add("双一流"); } - BeanUtils.copyProperties(record, artSchoolDTO); artSchoolDTO.setTagsList(tagsList); - artSchoolDTOList.add(artSchoolDTO); } - artHotSchoolDTO.setNowProvinceZhuanSchoolList(artSchoolDTOList); - artSchoolDTOList = new ArrayList<>(); - for (YxSchool record : otherProvinceBenSchoolList) { - artSchoolDTO = new ArtSchoolDTO(); + for (ArtSchoolDTO artSchoolDTO : otherProvinceBenSchoolList) { tagsList = new LinkedHashSet<>(); //处理 标签,字符串转 array - tags = record.getTags(); + tags = artSchoolDTO.getTags(); if (StringUtils.isNotEmpty(tags)) { tagsList = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(tags.split(",")))); } - tagsList.add(record.getSchoolType());//学校层次 - tagsList.add(record.getSchoolNature());//办学性质 - if (StringUtils.isNotBlank(record.getInstitutionType())) { - tagsList.add(record.getInstitutionType() + "类");//院校类型 + tagsList.add(artSchoolDTO.getSchoolType());//学校层次 + tagsList.add(artSchoolDTO.getSchoolNature());//办学性质 + if (StringUtils.isNotBlank(artSchoolDTO.getInstitutionType())) { + tagsList.add(artSchoolDTO.getInstitutionType() + "类");//院校类型 } - //判断 是否是 985,211 - if (record.getIs211().equals(1)) { + if (artSchoolDTO.getIs211().equals("1")) { tagsList.add("211"); } - if (record.getIs985().equals(1)) { + if (artSchoolDTO.getIs985().equals("1")) { tagsList.add("985"); } if (tagsList.containsAll(list985211)) { tagsList.add("双一流"); } - BeanUtils.copyProperties(record, artSchoolDTO); artSchoolDTO.setTagsList(tagsList); - artSchoolDTOList.add(artSchoolDTO); } - artHotSchoolDTO.setOtherProvinceBenSchoolList(artSchoolDTOList); - artSchoolDTOList = new ArrayList<>(); - for (YxSchool record : otherProvinceZhuanSchoolList) { - artSchoolDTO = new ArtSchoolDTO(); + for (ArtSchoolDTO artSchoolDTO : otherProvinceZhuanSchoolList) { tagsList = new LinkedHashSet<>(); //处理 标签,字符串转 array - tags = record.getTags(); + tags = artSchoolDTO.getTags(); if (StringUtils.isNotEmpty(tags)) { tagsList = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(tags.split(",")))); } - tagsList.add(record.getSchoolType());//学校层次 - tagsList.add(record.getSchoolNature());//办学性质 - if (StringUtils.isNotBlank(record.getInstitutionType())) { - tagsList.add(record.getInstitutionType() + "类");//院校类型 + tagsList.add(artSchoolDTO.getSchoolType());//学校层次 + tagsList.add(artSchoolDTO.getSchoolNature());//办学性质 + if (StringUtils.isNotBlank(artSchoolDTO.getInstitutionType())) { + tagsList.add(artSchoolDTO.getInstitutionType() + "类");//院校类型 } - //判断 是否是 985,211 - if (record.getIs211().equals(1)) { + if (artSchoolDTO.getIs211().equals("1")) { tagsList.add("211"); } - if (record.getIs985().equals(1)) { + if (artSchoolDTO.getIs985().equals("1")) { tagsList.add("985"); } if (tagsList.containsAll(list985211)) { tagsList.add("双一流"); } - BeanUtils.copyProperties(record, artSchoolDTO); artSchoolDTO.setTagsList(tagsList); - artSchoolDTOList.add(artSchoolDTO); } - artHotSchoolDTO.setOtherProvinceZhuanSchoolList(artSchoolDTOList); - + artHotSchoolDTO.setNowProvinceBenSchoolList(nowProvinceBenSchoolList); + artHotSchoolDTO.setNowProvinceZhuanSchoolList(nowProvinceZhuanSchoolList); + artHotSchoolDTO.setOtherProvinceBenSchoolList(otherProvinceBenSchoolList); + artHotSchoolDTO.setOtherProvinceZhuanSchoolList(otherProvinceZhuanSchoolList); return artHotSchoolDTO; } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerRecordServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerRecordServiceImpl.java index 7dda2fc..a691b93 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerRecordServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerRecordServiceImpl.java @@ -1,6 +1,8 @@ package org.jeecg.modules.yx.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.AssertUtils; import org.jeecg.modules.web.vo.SaveVolunteerVO; import org.jeecg.modules.yx.constant.YxConstant; @@ -82,11 +84,11 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl !(l.getMajorCode()+l.getSchoolCode()+l.getEnrollmentCode()+l.getCategory()).equals(key)).count(); - if ("体育类".equals(majorType)) { - AssertUtils.notTrue(count>=12,batch+"仅可以填报十二个志愿"); - }else{ - AssertUtils.notTrue(count>=35,batch+"仅可以填报三十五个志愿"); - } +// if ("体育类".equals(majorType)) { +// AssertUtils.notTrue(count>=35,batch+"仅可以填报三十五个志愿"); +// }else{ + // } + AssertUtils.notTrue(count>=35,batch+"仅可以填报三十五个志愿"); }else if(YxConstant.batchList1.contains(batch)){ //本科批 yxVolunteerRecordLambdaQueryWrapper.in(YxVolunteerRecord::getBatch,YxConstant.batchList1); @@ -95,11 +97,7 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl !(l.getMajorCode()+l.getSchoolCode()+l.getEnrollmentCode()+l.getCategory()).equals(key)).count(); - if ("体育类".equals(majorType)) { - AssertUtils.notTrue(count>=12,batch+"仅可以填报十二个志愿"); - }else{ - AssertUtils.notTrue(count>=35,batch+"仅可以填报三十五个志愿"); - } + AssertUtils.notTrue(count>=35,batch+"仅可以填报三十五个志愿"); } //循环已填报专业,与当前专业对比是否一致 @@ -159,4 +157,5 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl().eq(YxVolunteerRecord::getVolunteerId,volunteerId)); } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java index fc0f0b9..d0ede3c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.AssertUtils; @@ -16,10 +17,12 @@ import org.jeecg.modules.yx.dto.VolunteerDTO; import org.jeecg.modules.yx.dto.VolunteerRecordDTO; import org.jeecg.modules.yx.entity.*; import org.jeecg.modules.yx.mapper.YxVolunteerMapper; +import org.jeecg.modules.yx.mapper.YxVolunteerRecordMapper; import org.jeecg.modules.yx.service.*; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -43,9 +46,12 @@ public class YxVolunteerServiceImpl extends ServiceImpl volunteerRecordList = saveVolunteerVO.getVolunteerRecordList(); //先保存一个志愿单 String volunteerName = saveVolunteerVO.getVolunteerName(); @@ -326,7 +335,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl 0) { throw new JeecgBootException("志愿单名称已存在!请更换"); } - AssertUtils.notNull(volunteerName, "请输入志愿单名称"); + AssertUtils.notEmpty(volunteerName, "请输入志愿单名称"); //将之前的成绩单状态改为0,再复制一份新的成绩单 yxUserScoreService.closeStatus(saveVolunteerVO.getScoreId()); YxUserScore newUserScore = yxUserScoreService.copyById(saveVolunteerVO.getScoreId()); @@ -427,4 +436,69 @@ public class YxVolunteerServiceImpl extends ServiceImpl saveVolunteerBatch(List volunteerRecordList) { + try { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + VolunteerDTO activeByCreateVolunteerDto = getActiveByCreate(loginUser.getId()); + //如果有志愿单时才可以添加志愿明细 + if (activeByCreateVolunteerDto!=null && StringUtils.isNotBlank(activeByCreateVolunteerDto.getId())) { + String volunteerId = activeByCreateVolunteerDto.getId(); + YxCalculationMajor calculationMajor = null; + for (YxVolunteerRecord yxVolunteerRecord : volunteerRecordList) { + //判断有没有专业Id + if (StringUtils.isBlank(yxVolunteerRecord.getCalculationMajorId())) { + continue; + } + calculationMajor = yxCalculationMajorService.getById(yxVolunteerRecord.getCalculationMajorId()); + if (calculationMajor == null) { + continue; + } + yxVolunteerRecord.setCreateBy(loginUser.getId()); + yxVolunteerRecord.setVolunteerId(volunteerId); + yxVolunteerRecord.setBatch(calculationMajor.getBatch()); + yxVolunteerRecord.setCategory(calculationMajor.getCategory()); + yxVolunteerRecord.setFctj(1); + yxVolunteerRecord.setEnrollmentCode(calculationMajor.getEnrollmentCode()); + yxVolunteerRecord.setEnrollProbability(calculationMajor.getEnrollProbability()); + yxVolunteerRecord.setMajorCode(calculationMajor.getMajorCode()); + yxVolunteerRecord.setSchoolCode(calculationMajor.getSchoolCode()); + yxVolunteerRecord.setStudentConvertedScore(calculationMajor.getStudentConvertedScore()); + } + } + //过滤没有专业id的数据,然后保存数据里 + volunteerRecordList = volunteerRecordList.stream().filter(v->StringUtils.isNotBlank(v.getCalculationMajorId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(volunteerRecordList)) { + yxVolunteerRecordService.saveBatch(volunteerRecordList); + } + return Result.OK("保存成功"); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + + @Override + public Result deleteVolunteerRecordBatch(List volunteerRecordIdList) { + try { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (CollectionUtils.isEmpty(volunteerRecordIdList)) { + throw new RuntimeException("请求参数有误"); + } + //根据当前用户id,获取他的志愿单 + VolunteerDTO activeByCreateVolunteerDto = getActiveByCreate(loginUser.getId()); + if (activeByCreateVolunteerDto!=null) { + //根据志愿单id+删除的志愿明细id删除 + String id = activeByCreateVolunteerDto.getId(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(YxVolunteerRecord::getVolunteerId,id); + lambdaQueryWrapper.in(YxVolunteerRecord::getId,volunteerRecordIdList); + //List volunteerRecordList = yxVolunteerRecordMapper.selectList(lambdaQueryWrapper); + yxVolunteerRecordMapper.delete(lambdaQueryWrapper); + } + return Result.OK("删除成功"); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } }