This commit is contained in:
zhouwentao 2024-03-15 23:11:42 +08:00
parent 32da580745
commit 64a3655604
9 changed files with 40 additions and 14 deletions

View File

@ -79,7 +79,7 @@ public class MiniVipController {
AssertUtils.isTrue(cardValid,"当前卡密无效或已被使用");
YxVipCard yxVipCard = yxVipCardService.getOne(new LambdaQueryWrapper<YxVipCard>().eq(YxVipCard::getCardNum, card));
VipDTO userVip = miniUserService.getUserVip(user.getId());
if (userVip!=null) {
if (userVip!=null && userVip.getVipLevel()!=0) {
if (userVip.getSkuCode().equals(yxVipCard.getSkuCode())) {
throw new JeecgBootException("该类型激活码您已重复使用");
}

View File

@ -92,7 +92,7 @@ public class MiniUserService {
vipDTO.setVipLevel(3);
}else if("1004".equals(skuCode)){
vipDTO.setVipLevel(4);
}else{
}else if("9999".equals(skuCode)){
vipDTO.setVipLevel(9);
}
YxVipSku vipSku = yxVipSkuService.getBySkuCode(skuCode);

View File

@ -64,4 +64,7 @@ public class YxConstant {
//当天最多修改成绩次数
public static final Integer todayMaxEditScoreCount =5;
public static BigDecimal bigDecimal1 = new BigDecimal("1");
public static BigDecimal bigDecimal175= new BigDecimal("175");
public static BigDecimal bigDecimal50=new BigDecimal("50");
}

View File

@ -127,7 +127,7 @@ public class YxScoreController {
//表演类型的方向
if ("舞蹈类".equals(professionalCategory)) {
//舞蹈类使用艺术舞蹈的省控线判定批次
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,"艺术舞蹈类");
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,"舞蹈类");
}else{
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,professionalCategory);
}
@ -137,7 +137,7 @@ public class YxScoreController {
//24年分数转换折合23年分数
YxScoreSegment scoreSegment = null;
if ("舞蹈类".equals(professionalCategory)) {
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,"艺术舞蹈", yxUserScore.getProvince());
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,null, yxUserScore.getProvince());
professionalScore = scoreSegment.getScore();
}else if("音乐类".equals(professionalCategory)){
if (!professionalCategoryChildren.contains("器乐")) {

View File

@ -279,7 +279,7 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
@RequestMapping(value = "/test", method = RequestMethod.POST)
public Result<?> test() {
String year = "2023";
String professionalCategory = "表演";
String professionalCategory = "舞蹈";
String professionalCategoryChild=null;
String province = "河南";
LambdaQueryWrapper<YxScoreSegment> yxScoreSegmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -289,6 +289,7 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
if (StringUtils.isNotBlank(professionalCategoryChild)) {
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategoryChild,professionalCategoryChild);
}
yxScoreSegmentLambdaQueryWrapper.isNull(YxScoreSegment::getProfessionalCategoryChild);
List<YxScoreSegment> list = yxScoreSegmentService.list(yxScoreSegmentLambdaQueryWrapper);
List<YxScoreSegment> scoreSegmentNextAddList=new ArrayList<>();
//根据5分一段表遍历折算出每个段位内4分的占比

View File

@ -216,10 +216,15 @@ public class MusicService {
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
continue;
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)==0) {
enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal100);
}else{
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
continue;
}
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
}
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
}
//录取方式计算
//录取率*0.75

View File

@ -68,9 +68,9 @@ public class WuDaoService {
//=====================分数转换 start
if ("2024".equals(YxConstant.nowYear)) {
YxScoreSegment scoreSegment = null;
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, "艺术舞蹈", activeCurrentUserScore.getProvince());
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, null, activeCurrentUserScore.getProvince());
yswd = scoreSegment.getScore();
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, "国际标准舞", activeCurrentUserScore.getProvince());
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, null, activeCurrentUserScore.getProvince());
gjbzw = scoreSegment.getScore();
}
@ -148,6 +148,8 @@ public class WuDaoService {
recommendMajorDTO.setEnrollProbability(enrollProbability);
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
} else {
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
if (nowYearProvincialControlLine == null) {
@ -159,14 +161,26 @@ public class WuDaoService {
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
//当前年分差为0并且 前年的分差也为0
enrollProbability = YxConstant.bigDecimal50;//录取率50
}else if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
continue;
} else if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)>0){
//当前年分差为0但是之前年分差大于零0
enrollProbability = YxConstant.bigDecimal1.divide(historyThreeYearDiff,4,RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal1)==0) {
//如果历年分差为1再乘0.75
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
}
}else{
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
//录取率*0.75
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
}
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
}
//录取方式计算
//录取率*0.75
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
enrollProbability = YxConstant.bigDecimal95x;
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {

View File

@ -147,6 +147,7 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, queryRecommendMajorVO.getCognitioPolyclinic());//文科/理科
hmeWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
hmeWrapper.eq(YxHistoryMajorEnroll::getMajorType,queryRecommendMajorVO.getProfessionalCategory());
hmeWrapper.ne(YxHistoryMajorEnroll::getAdmissionLine,0);
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameList);
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper);

View File

@ -93,6 +93,8 @@ public class YxScoreSegmentServiceImpl extends ServiceImpl<YxScoreSegmentMapper,
//24年是一个23年是两个
if (StringUtils.isNotBlank(professionalCategoryChild)) {
oldYearScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategoryChild,professionalCategoryChild);
}else{
oldYearScoreSegmentLambdaQueryWrapper.isNull(YxScoreSegment::getProfessionalCategoryChild);
}
}