From 4ef7a221d1ee061ecaf7e43c8c781c9866e661df Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Mon, 13 May 2024 18:45:57 +0800 Subject: [PATCH] updates --- .../jeecg/modules/mini/dto/MiniSchoolDTO.java | 2 + .../ArtRecommendMajorController.java | 3 +- .../web/controller/WebMajorController.java | 26 +++++++++++++ .../controller/WebVolunteerController.java | 38 ++++++++++++------- .../modules/web/service/WebMajorService.java | 9 ++++- .../jeecg/modules/yx/constant/YxConstant.java | 2 + .../jeecg/modules/yx/dto/UserScoreInfo.java | 2 + .../yx/mapper/YxHistoryMajorEnrollMapper.java | 2 +- .../mapper/xml/YxHistoryMajorEnrollMapper.xml | 26 +++++++++---- .../modules/yx/mapper/xml/YxMajorMapper.xml | 3 ++ .../service/IYxHistoryMajorEnrollService.java | 2 +- .../yx/service/impl/UserScoreService.java | 6 +++ .../impl/YxCalculationMajorServiceImpl.java | 4 -- .../impl/YxHistoryMajorEnrollServiceImpl.java | 4 +- .../yx/service/impl/YxSchoolServiceImpl.java | 2 +- 15 files changed, 96 insertions(+), 35 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/dto/MiniSchoolDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/dto/MiniSchoolDTO.java index 1633add..6e13092 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/dto/MiniSchoolDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/mini/dto/MiniSchoolDTO.java @@ -3,6 +3,7 @@ package org.jeecg.modules.mini.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,6 +21,7 @@ import java.util.Set; */ @Data @ApiModel(value = "小程序端-院校信息对象") +@JsonInclude(JsonInclude.Include.NON_NULL) public class MiniSchoolDTO implements Serializable { /**主键*/ 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 5cb5916..7c98e5b 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 @@ -42,8 +42,7 @@ public class ArtRecommendMajorController { IYxCalculationMajorService yxCalculationMajorService; @Resource MiniTestCulturalService testCulturalService; - @Resource - private RedisUtil redisUtil; + @ApiOperation(value = "获取可报专业总数") @GetMapping("/recommendMajorCount") 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 index 830e854..b3ae5b0 100644 --- 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 @@ -7,11 +7,16 @@ 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.common.util.AssertUtils; import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.mini.service.MiniTestCulturalService; 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.IYxCalculationMajorService; import org.jeecg.modules.yx.service.IYxMajorService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -37,7 +42,16 @@ public class WebMajorController { @Resource WebMajorService webMajorService; @Resource + MiniTestCulturalService testCulturalService; + @Resource + IYxCalculationMajorService yxCalculationMajorService; + @Resource RedisUtil redisUtil; + @GetMapping(value = "/recommendMajor/page") + public Result recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) { + return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO)); + } + /** * 网站前台 查专业 列表 */ @@ -84,4 +98,16 @@ public class WebMajorController { public Result schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO) { return Result.OK(webMajorService.schoolMajorList(queryRecommendMajorVO)); } + + @ApiOperation(value = "文化分测算") + @GetMapping(value = "/testCultural") + public Result testCultural(QueryRecommendMajorVO queryRecommendMajorVO) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //根据 院校代码,获取 院校的招生专业,计算各专业的录取分数 + String schoolCode = queryRecommendMajorVO.getSchoolCode(); + String year = queryRecommendMajorVO.getYear(); + AssertUtils.notNull(loginUser, "未获取到登录信息"); + AssertUtils.notNull(year, "请选择年份"); + return Result.OK(testCulturalService.testCultural(schoolCode, year)); + } } 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 index bf7e56f..1278a6f 100644 --- 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 @@ -12,9 +12,12 @@ 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.web.vo.SaveVolunteerVO; import org.jeecg.modules.yx.dto.VolunteerDTO; +import org.jeecg.modules.yx.entity.YxUserScore; import org.jeecg.modules.yx.entity.YxVolunteer; import org.jeecg.modules.yx.entity.YxVolunteerRecord; +import org.jeecg.modules.yx.service.IYxUserScoreService; import org.jeecg.modules.yx.service.IYxVolunteerRecordService; import org.jeecg.modules.yx.service.IYxVolunteerService; import org.jeecg.modules.yx.service.impl.UserScoreService; @@ -38,6 +41,8 @@ public class WebVolunteerController { private IYxVolunteerRecordService yxVolunteerRecordService; @Resource private IYxVolunteerService yxVolunteerService; + @Resource + private IYxUserScoreService yxUserScoreService; @GetMapping(value = "/volunteerList") @ApiOperation(value = "获取志愿表列表") @@ -102,21 +107,26 @@ public class WebVolunteerController { 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; + @ApiOperation(value = "切换志愿单", notes = "切换志愿单") + @PostMapping(value = "/switchVolunteer") + public Result switchVolunteer(@RequestBody SaveVolunteerVO saveVolunteerVO) { + String id = saveVolunteerVO.getId(); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + YxVolunteer volunteer = yxVolunteerService.getById(id); + if (volunteer!=null) { + String scoreId = volunteer.getScoreId(); + if (StringUtils.isNotBlank(scoreId)) { + //修改当前用户的所有志愿单状态 0 + yxVolunteerService.update(new LambdaUpdateWrapper().eq(YxVolunteer::getCreateBy,user.getId()).set(YxVolunteer::getState,0)); + //修改当前用户的成绩状态 0 + yxUserScoreService.update(new LambdaUpdateWrapper().eq(YxUserScore::getCreateBy,user.getId()).set(YxUserScore::getState,0)); + //开启志愿单及成绩 + //修改当前用户志愿单状态 1 + yxVolunteerService.update(new LambdaUpdateWrapper().eq(YxVolunteer::getCreateBy,user.getId()).eq(YxVolunteer::getId,id).set(YxVolunteer::getState,1)); + //修改当前用户的成绩状态 0 + yxUserScoreService.update(new LambdaUpdateWrapper().eq(YxUserScore::getCreateBy,user.getId()).eq(YxUserScore::getId,scoreId).set(YxUserScore::getState,1)); } } - if (closestNextValue == null) { - closestNextValue = valuesArray[valuesArray.length - 1] + 1; - } - System.out.println(closestNextValue); + return Result.OK("操作成功"); } } 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 index 380be8c..a75e2ed 100644 --- 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 @@ -1,13 +1,14 @@ 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.RecommendMajorDTO; import org.jeecg.modules.web.dto.WebMajorDTO; import org.jeecg.modules.web.vo.QueryRecommendMajorVO; +import org.jeecg.modules.yx.dto.UserScoreDTO; import org.jeecg.modules.yx.mapper.YxMajorMapper; +import org.jeecg.modules.yx.service.IYxUserScoreService; +import org.jeecg.modules.yx.service.impl.UserScoreService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -24,6 +25,8 @@ import java.util.stream.Collectors; public class WebMajorService { @Resource YxMajorMapper yxMajorMapper; + @Resource + UserScoreService userScoreService; /** * 网页端-专业列表 */ @@ -50,6 +53,8 @@ public class WebMajorService { * @return */ public List schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO){ + UserScoreDTO activeCurrentUserScoreInfo = userScoreService.getActiveCurrentUserScoreInfo(); + queryRecommendMajorVO.setProfessionalCategory(activeCurrentUserScoreInfo.getScoreInfo().getProfessionalCategory()); return yxMajorMapper.webSchoolMajorList(queryRecommendMajorVO); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java index ad25986..26d3e07 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java @@ -74,4 +74,6 @@ public class YxConstant { public static String newCalculationMajorName = "yx_calculation_major"; public static BigDecimal bigDecimal10 = new BigDecimal("10"); public static BigDecimal bigDecimal025 = new BigDecimal("0.25"); + + public static final String REDIS_SCORE_KEY="USER_SCORE_"; } 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 index 73f55ca..6df531c 100644 --- 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 @@ -4,6 +4,7 @@ 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 com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,6 +21,7 @@ import java.util.Date; */ @Data @ApiModel(value = "PC端用户成绩返回对象") +@JsonInclude(JsonInclude.Include.NON_NULL) public class UserScoreInfo implements Serializable { @TableId(type = IdType.ASSIGN_ID) private String id; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxHistoryMajorEnrollMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxHistoryMajorEnrollMapper.java index 3d37d5e..6c006b2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxHistoryMajorEnrollMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxHistoryMajorEnrollMapper.java @@ -14,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface YxHistoryMajorEnrollMapper extends BaseMapper { - List getDataGroupBySchoolCodeAndMaxYear(@Param("schoolCodeList") List schoolCodeList); + List getDataGroupBySchoolCodeAndMaxYear(@Param("professionalCategory")String professionalCategory,@Param("schoolCodeList") List schoolCodeList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryMajorEnrollMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryMajorEnrollMapper.xml index d7100cc..ee8b516 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryMajorEnrollMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryMajorEnrollMapper.xml @@ -4,18 +4,28 @@ 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 0a3455b..cdc49bd 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 @@ -44,6 +44,9 @@ AND sm.category = #{q.cognitioPolyclinic} + + AND sm.major_type = #{q.professionalCategory} + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryMajorEnrollService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryMajorEnrollService.java index 27ada3c..597bf20 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryMajorEnrollService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryMajorEnrollService.java @@ -23,7 +23,7 @@ public interface IYxHistoryMajorEnrollService extends IService */ - Map getDataGroupBySchoolCodeAndMaxYear(List schoolCodeList); + Map getDataGroupBySchoolCodeAndMaxYear(String professionalCategory,List schoolCodeList); /** * 给推荐专业列表写入历年分数信息 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 index 08e0a2c..d0eaa7d 100644 --- 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 @@ -7,6 +7,7 @@ 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.common.util.RedisUtil; import org.jeecg.modules.web.dto.ArtRecommendMajorBaseDTO; import org.jeecg.modules.yx.constant.YxConstant; import org.jeecg.modules.yx.dto.UserScoreInfo; @@ -24,6 +25,8 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +import org.jeecg.modules.yx.constant.YxConstant; + /** * 通用-用户分数Service * @@ -36,6 +39,8 @@ public class UserScoreService { private YxUserScoreMapper yxUserScoreMapper; @Resource private YxVolunteerMapper yxVolunteerMapper; + @Resource + private RedisUtil redisUtil; /** * 获取当前用户的分数成绩一些列信息 @@ -43,6 +48,7 @@ public class UserScoreService { public UserScoreDTO getActiveCurrentUserScoreInfo() { LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); AssertUtils.notNull(loginUser, "请先登录!"); + //从redis查询是否有成绩 try { //获取用户 UserScoreInfo userScoreInfo = this.getActiveUserScore(loginUser.getId()); 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 9f98def..9846098 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 @@ -512,10 +512,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl getDataGroupBySchoolCodeAndMaxYear(List schoolCodeList) { - List list = baseMapper.getDataGroupBySchoolCodeAndMaxYear(schoolCodeList); + public Map getDataGroupBySchoolCodeAndMaxYear(String professionalCategory,List schoolCodeList) { + List list = baseMapper.getDataGroupBySchoolCodeAndMaxYear(professionalCategory,schoolCodeList); Map dataMaps=new LinkedHashMap<>(); for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { dataMaps.put(yxHistoryMajorEnroll.getSchoolCode(),yxHistoryMajorEnroll); 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 820d0d0..b6c42b5 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 @@ -80,7 +80,7 @@ public class YxSchoolServiceImpl extends ServiceImpl i if (CollectionUtils.isNotEmpty(dtoPage.getRecords())) { //获取 院校下的上一年招生信息 List schoolCodeList = dtoPage.getRecords().stream().map(MiniSchoolDTO::getSchoolCode).collect(Collectors.toList()); - Map historyMajorEnrollMap = yxHistoryMajorEnrollService.getDataGroupBySchoolCodeAndMaxYear(schoolCodeList); + Map historyMajorEnrollMap = yxHistoryMajorEnrollService.getDataGroupBySchoolCodeAndMaxYear(professionalCategory,schoolCodeList); //获取校考数据 LambdaQueryWrapper schoolMajorLambdaQueryWrapper = new LambdaQueryWrapper<>(); schoolMajorLambdaQueryWrapper.select(YxSchoolMajor::getSchoolCode);