This commit is contained in:
zhouwentao 2024-05-18 22:09:40 +08:00
parent 4d0e381880
commit 39a83b732d
19 changed files with 306 additions and 78 deletions

View File

@ -85,6 +85,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/wx/user/cancelQrCode/**","anon");//取消微信二维码登录 filterChainDefinitionMap.put("/wx/user/cancelQrCode/**","anon");//取消微信二维码登录
filterChainDefinitionMap.put("/wx/user/updateQrCodeStatus/**","anon");// filterChainDefinitionMap.put("/wx/user/updateQrCodeStatus/**","anon");//
filterChainDefinitionMap.put("/wx/user/getQrCodeStatus/**","anon");// filterChainDefinitionMap.put("/wx/user/getQrCodeStatus/**","anon");//
filterChainDefinitionMap.put("/web/user/checkPhoneAvailable","anon");//判断手机号是否可用
filterChainDefinitionMap.put("/web/user/register","anon");//前台页面注册
filterChainDefinitionMap.put("/mini/user/phoneLogin","anon");//小程序手机号登录 filterChainDefinitionMap.put("/mini/user/phoneLogin","anon");//小程序手机号登录

View File

@ -220,4 +220,6 @@ public class SysUser implements Serializable {
* 抖音openId * 抖音openId
*/ */
private String dyOpenId; private String dyOpenId;
private String ip;
} }

View File

@ -20,6 +20,8 @@ public class SysLoginModel {
@ApiModelProperty(value = "验证码key") @ApiModelProperty(value = "验证码key")
private String checkKey; private String checkKey;
@ApiModelProperty(value = "手机号")
private String phone;
public String getUsername() { public String getUsername() {
return username; return username;
} }
@ -52,4 +54,11 @@ public class SysLoginModel {
this.checkKey = checkKey; this.checkKey = checkKey;
} }
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
} }

View File

@ -426,4 +426,17 @@ public interface ISysUserService extends IService<SysUser> {
*/ */
void checkUserAdminRejectDel(String ids); void checkUserAdminRejectDel(String ids);
/**
* 判断手机号是否可使用
* @param phone
* @return
*/
boolean checkPhoneAvailable(String phone);
/**
* 判断同ip是否注册过账号
* @param ipAddr
* @return
*/
boolean checkIpAvailable(String ipAddr);
} }

View File

@ -47,6 +47,7 @@ import org.jeecg.modules.system.vo.lowapp.DepartAndUserInfo;
import org.jeecg.modules.system.vo.lowapp.DepartInfo; import org.jeecg.modules.system.vo.lowapp.DepartInfo;
import org.jeecg.modules.system.vo.lowapp.AppExportUserVo; import org.jeecg.modules.system.vo.lowapp.AppExportUserVo;
import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo; import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo;
import org.jeecg.modules.yx.constant.YxConstant;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ExportParams;
@ -1824,4 +1825,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
throw new JeecgBootException("admin用户不允许删除"); throw new JeecgBootException("admin用户不允许删除");
} }
} }
@Override
public boolean checkPhoneAvailable(String phone) {
if (StringUtils.isBlank(phone)) {
return false;
}
long count = this.count(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhone, phone).eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0));
return count==0;
}
@Override
public boolean checkIpAvailable(String ipAddr){
if (StringUtils.isBlank(ipAddr)) {
return false;
}
long count = this.count(new LambdaQueryWrapper<SysUser>().eq(SysUser::getIp, ipAddr).eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0));
return count<= YxConstant.ipRegisterNum;
}
} }

View File

@ -1,16 +1,25 @@
package org.jeecg.modules.web.controller; package org.jeecg.modules.web.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.util.IpUtils;
import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.mini.wx.model.WeXinConfig; import org.jeecg.modules.mini.wx.model.WeXinConfig;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.model.SysLoginModel; import org.jeecg.modules.system.model.SysLoginModel;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.web.service.WebUserService; import org.jeecg.modules.web.service.WebUserService;
import org.jeecg.modules.yx.constant.YxConstant;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
/** /**
* @author ZhouWenTao * @author ZhouWenTao
@ -21,6 +30,8 @@ import javax.annotation.Resource;
@Api(tags = "前台用户接口") @Api(tags = "前台用户接口")
@Slf4j @Slf4j
public class WebUserController { public class WebUserController {
@Resource
private ISysUserService sysUserService;
@Resource @Resource
private WebUserService webUserService; private WebUserService webUserService;
@Resource @Resource
@ -28,6 +39,48 @@ public class WebUserController {
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@RequestMapping(value = "checkPhoneAvailable")
@ApiOperation(value = "判断手机号是否可用")
public Result<?> checkPhoneAvailable(String phone){
return Result.OK(sysUserService.checkPhoneAvailable(phone));
}
@RequestMapping(value = "register",method = RequestMethod.POST)
@ApiOperation(value = "账号注册")
public Result<?> register(@RequestBody SysLoginModel sysLoginModel, HttpServletRequest request){
String ipAddr = IpUtils.getIpAddr(request);
String phone = sysLoginModel.getPhone();
String password = sysLoginModel.getPassword();
if (!sysUserService.checkPhoneAvailable(phone)) {
return Result.error("手机号已被注册");
}
if(!sysUserService.checkIpAvailable(ipAddr)){
return Result.error(String.format("当前IP已注册过%s个用户不可再继续注册",YxConstant.ipRegisterNum));
}
//如果手机号也没有那就说明这个是新用户
String salt = oConvertUtils.randomGen(8);
//新用户
SysUser user = new SysUser();
user.setUsername(phone);
user.setRealname(phone);
user.setSalt(salt);
String encryptPassword = PasswordUtil.encrypt(phone, password, salt);
user.setPassword(encryptPassword);
user.setStatus(1);
user.setPhone(phone);
user.setUserIdentity(CommonConstant.USER_IDENTITY_1);
user.setDelFlag(CommonConstant.DEL_FLAG_0);
user.setOrgCode(null);
user.setIp(ipAddr);
sysUserService.saveUser(user, null, null, null);
//注册成功后直接登录
sysLoginModel.setUsername(sysLoginModel.getPhone());
return webUserService.loginPasswd(sysLoginModel);
//return Result.OK("注册成功!");
}
@RequestMapping(value = "/login/passwd", method = RequestMethod.POST) @RequestMapping(value = "/login/passwd", method = RequestMethod.POST)
@ApiOperation(value = "手机号密码登录") @ApiOperation(value = "手机号密码登录")
public Result<?> loginPasswd(@RequestBody SysLoginModel sysLoginModel){ public Result<?> loginPasswd(@RequestBody SysLoginModel sysLoginModel){

View File

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll; import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -78,6 +79,7 @@ public class RecommendMajorDTO implements Serializable {
private String rulesEnrollProbability; private String rulesEnrollProbability;
@ApiModelProperty(value = "录取概率计算规则运算符") @ApiModelProperty(value = "录取概率计算规则运算符")
private String probabilityOperator; private String probabilityOperator;
@ApiModelProperty(value = "学年制") @ApiModelProperty(value = "学年制")
private Integer studyYear=0; private Integer studyYear=0;
private Integer semester; private Integer semester;
@ -150,4 +152,11 @@ public class RecommendMajorDTO implements Serializable {
private String xkfl; private String xkfl;
@ApiModelProperty(value = "专业类") @ApiModelProperty(value = "专业类")
private String zyl; private String zyl;
@ApiModelProperty(value = "内部折合分数")
private BigDecimal privateStudentScore;
@ApiModelProperty(value = "内部录取方式")
private String privateRulesEnrollProbability;
@ApiModelProperty(value = "内部录取方式运算符")
private String privateProbabilityOperator;
} }

View File

@ -76,4 +76,8 @@ public class YxConstant {
public static BigDecimal bigDecimal025 = new BigDecimal("0.25"); public static BigDecimal bigDecimal025 = new BigDecimal("0.25");
public static final String REDIS_SCORE_KEY="USER_SCORE_"; public static final String REDIS_SCORE_KEY="USER_SCORE_";
//同ip仅可注册账户数量
public static final Integer ipRegisterNum = 3;
} }

View File

@ -132,4 +132,15 @@ public class YxCalculationMajor implements Serializable {
@Excel(name = "考试类型(统考/校考)", width = 15) @Excel(name = "考试类型(统考/校考)", width = 15)
@ApiModelProperty(value = "考试类型(统考/校考)") @ApiModelProperty(value = "考试类型(统考/校考)")
private String kslx; private String kslx;
@Excel(name = "内部录取方式", width = 15)
@ApiModelProperty(value = "内部录取方式")
private String privateRulesEnrollProbability;
@Excel(name = "内部录取方式运算符", width = 15)
@ApiModelProperty(value = "内部录取方式运算符")
private String privateProbabilityOperator;
@Excel(name = "内部折合分数", width = 15)
@ApiModelProperty(value = "内部折合分数")
private java.math.BigDecimal privateStudentConvertedScore;
} }

View File

@ -64,18 +64,8 @@ public class YxSchoolMajor implements Serializable {
@Excel(name = "科类(文科/理科)", width = 15) @Excel(name = "科类(文科/理科)", width = 15)
@ApiModelProperty(value = "科类(文科/理科)") @ApiModelProperty(value = "科类(文科/理科)")
private java.lang.String category; private java.lang.String category;
/**录取方式缩写*/
@Excel(name = "录取方式缩写", width = 15)
@ApiModelProperty(value = "录取方式缩写")
private String rulesEnrollProbabilitySx;
/**录取概率规则*/
@Excel(name = "录取方式", width = 15)
@ApiModelProperty(value = "录取方式")
private String rulesEnrollProbability;
@Excel(name = "录取概率计算规则运算符", width = 15)
@ApiModelProperty(value = "录取概率计算规则运算符")
private String probabilityOperator;
@Excel(name = "文化分省控线", width = 15) @Excel(name = "文化分省控线", width = 15)
@ApiModelProperty(value = "文化分省控线") @ApiModelProperty(value = "文化分省控线")
@ -164,4 +154,24 @@ public class YxSchoolMajor implements Serializable {
@Excel(name = "考试类型(统考/校考)", width = 15) @Excel(name = "考试类型(统考/校考)", width = 15)
@ApiModelProperty(value = "考试类型(统考/校考)") @ApiModelProperty(value = "考试类型(统考/校考)")
private String kslx; private String kslx;
/**录取方式缩写*/
@Excel(name = "录取方式缩写", width = 15)
@ApiModelProperty(value = "录取方式缩写")
private String rulesEnrollProbabilitySx;
/**录取概率规则*/
@Excel(name = "录取方式", width = 15)
@ApiModelProperty(value = "录取方式")
private String rulesEnrollProbability;
@Excel(name = "录取方式运算符", width = 15)
@ApiModelProperty(value = "录取方式运算符")
private String probabilityOperator;
@Excel(name = "内部录取方式", width = 15)
@ApiModelProperty(value = "内部录取方式")
private String privateRulesEnrollProbability;
@Excel(name = "内部录取方式运算符", width = 15)
@ApiModelProperty(value = "内部录取方式运算符")
private String privateProbabilityOperator;
} }

View File

@ -19,5 +19,7 @@ public interface YxCalculationMajorMapper extends BaseMapper<YxCalculationMajor>
List<RecommendMajorDTO> recommendMajorListBenOrZhuan(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); List<RecommendMajorDTO> recommendMajorListBenOrZhuan(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO);
List<RecommendMajorDTO> recommendMajorList(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); List<RecommendMajorDTO> recommendMajorList(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO);
void insertBatch(@Param("tableName") String tableName,@Param("list") List<YxCalculationMajor> list); void insertBatch(@Param("tableName") String tableName,@Param("scoreId")String scoreId,@Param("list") List<YxCalculationMajor> list);
void insertBatchNew(@Param("tableName") String tableName,@Param("scoreId")String scoreId,@Param("list") List<YxCalculationMajor> list);
} }

View File

@ -4,19 +4,34 @@
<insert id="insertBatch" parameterType="java.util.List"> <insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ${tableName} (id, score_id, school_code, major_code, major_name, enrollment_code, tuition, INSERT INTO ${tableName} (id, score_id, school_code, major_code, major_name, enrollment_code, tuition,
detail, category, rules_enroll_probability, batch, student_old_converted_score, student_converted_score, detail, category, rules_enroll_probability, batch, student_old_converted_score, student_converted_score,
enroll_probability, probability_operator, create_time, major_type, major_type_child, plan_num, main_subjects, enroll_probability, probability_operator, major_type, major_type_child, plan_num, main_subjects,
limitation, other_score_limitation,rules_enroll_probability_sx,kslx) limitation, other_score_limitation,rules_enroll_probability_sx,kslx)
VALUES VALUES
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (#{item.id},#{item.scoreId}, #{item.schoolCode}, #{item.majorCode}, #{item.majorName},
#{item.id}, #{item.scoreId}, #{item.schoolCode}, #{item.majorCode}, #{item.majorName},
#{item.enrollmentCode}, #{item.tuition}, #{item.detail}, #{item.category}, #{item.rulesEnrollProbability}, #{item.enrollmentCode}, #{item.tuition}, #{item.detail}, #{item.category}, #{item.rulesEnrollProbability},
#{item.batch}, #{item.studentOldConvertedScore}, #{item.studentConvertedScore}, #{item.enrollProbability}, #{item.batch}, #{item.studentOldConvertedScore}, #{item.studentConvertedScore}, #{item.enrollProbability},
#{item.probabilityOperator}, #{item.createTime}, #{item.majorType}, #{item.majorTypeChild}, #{item.planNum}, #{item.probabilityOperator}, #{item.majorType}, #{item.majorTypeChild}, #{item.planNum},
#{item.mainSubjects}, #{item.limitation}, #{item.otherScoreLimitation},#{item.rulesEnrollProbabilitySx},#{item.kslx} #{item.mainSubjects}, #{item.limitation}, #{item.otherScoreLimitation},#{item.rulesEnrollProbabilitySx},#{item.kslx}
) )
</foreach> </foreach>
</insert> </insert>
<insert id="insertBatchNew" parameterType="java.util.List">
INSERT INTO ${tableName} (id,score_id, school_code, major_code, major_name, enrollment_code, tuition,
detail, category, rules_enroll_probability, batch, student_old_converted_score, student_converted_score,
enroll_probability, probability_operator, major_type, major_type_child, plan_num, main_subjects,
limitation, other_score_limitation,rules_enroll_probability_sx,kslx,private_student_converted_score,private_rules_enroll_probability,private_probability_operator)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id},#{item.scoreId}, #{item.schoolCode}, #{item.majorCode}, #{item.majorName},
#{item.enrollmentCode}, #{item.tuition}, #{item.detail}, #{item.category}, #{item.rulesEnrollProbability},
#{item.batch}, #{item.studentOldConvertedScore}, #{item.studentConvertedScore}, #{item.enrollProbability},
#{item.probabilityOperator}, #{item.majorType}, #{item.majorTypeChild}, #{item.planNum},
#{item.mainSubjects}, #{item.limitation}, #{item.otherScoreLimitation},#{item.rulesEnrollProbabilitySx},#{item.kslx},
#{item.privateStudentConvertedScore},#{item.privateRulesEnrollProbability},#{item.privateProbabilityOperator}
)
</foreach>
</insert>
<select id="recommendMajorList" resultType="org.jeecg.modules.web.dto.RecommendMajorDTO"> <select id="recommendMajorList" resultType="org.jeecg.modules.web.dto.RecommendMajorDTO">
SELECT SELECT
@ -31,6 +46,7 @@
cm.detail as majorDetail, cm.detail as majorDetail,
cm.category, cm.category,
cm.batch, cm.batch,
cm.private_student_converted_score as privateStudentScore,
cm.student_old_converted_score as studentScore, cm.student_old_converted_score as studentScore,
cm.student_converted_score, cm.student_converted_score,
cm.enroll_probability, cm.enroll_probability,

View File

@ -27,6 +27,8 @@
sm.english_score_limitation, sm.english_score_limitation,
sm.chinese_score_limitation, sm.chinese_score_limitation,
sm.cultural_score_limitation, sm.cultural_score_limitation,
sm.private_rules_enroll_probability as privateRulesEnrollProbability,
sm.private_probability_operator as privateProbabilityOperator,
sm.rules_enroll_probability as rulesEnrollProbability, sm.rules_enroll_probability as rulesEnrollProbability,
sm.rules_enroll_probability_sx as rulesEnrollProbabilitySx, sm.rules_enroll_probability_sx as rulesEnrollProbabilitySx,
sm.probability_operator as probabilityOperator, sm.probability_operator as probabilityOperator,

View File

@ -97,10 +97,10 @@ public class BiaoyanService {
if (CollectionUtils.isNotEmpty(recommendMajorList)) { if (CollectionUtils.isNotEmpty(recommendMajorList)) {
//遍历专业列表 //遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
//取出往年的分数信息, 算出 三年平均差值 //取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList(); historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
probabilityOperator = recommendMajorDTO.getProbabilityOperator(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore(); culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore(); specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
//没有计算方式 没有往年录取分数线信息 或者没有过该批次 时跳过 //没有计算方式 没有往年录取分数线信息 或者没有过该批次 时跳过
@ -142,10 +142,18 @@ public class BiaoyanService {
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue; continue;
} }
//算分数
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore); //算页面展示分数
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
}
//内部算分 专业分用 0.25 //内部算分 专业分用 0.25
/*rulesEnrollProbability = "文*0.067+专*0.25"; /*rulesEnrollProbability = "文*0.067+专*0.25";
probabilityOperator = "文*0.067+专*0.25"; probabilityOperator = "文*0.067+专*0.25";
@ -155,8 +163,19 @@ public class BiaoyanService {
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
//算页面展示分数
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
//计算分
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator()));
//折合分
recommendMajorDTO.setStudentConvertedScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator()));
}
} }
if (CollectionUtils.isEmpty(historyMajorEnrollList)) { if (CollectionUtils.isEmpty(historyMajorEnrollList)) {

View File

@ -77,17 +77,16 @@ public class BoYinService {
//遍历专业列表 //遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
index ++; index ++;
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
//取出往年的分数信息, 算出 三年平均差值 probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore(); culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore(); specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
//没有计算方式 跳过 //没有计算方式 跳过
if (StringUtils.isBlank(rulesEnrollProbability)) { if (StringUtils.isBlank(rulesEnrollProbability)) {
continue; continue;
} }
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList()); //取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList().stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
//没有往年录取分数线信息 //没有往年录取分数线信息
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) { if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
@ -119,13 +118,29 @@ public class BoYinService {
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore); //展示
if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
activeCurrentUserScore.getProfessionalScore(),
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
}
}else{ }else{
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(),by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(),by, probabilityOperator);
recommendMajorDTO.setPrivateStudentScore(studentScore);
//将当期成绩按照专业录取分数方式折算 //将当期成绩按照专业录取分数方式折算
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore,
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
by,
recommendMajorDTO.getProbabilityOperator()));
}
} }

View File

@ -104,10 +104,8 @@ public class MusicService {
if (CollectionUtils.isNotEmpty(recommendMajorList)) { if (CollectionUtils.isNotEmpty(recommendMajorList)) {
//遍历专业列表 //遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
//取出往年的分数信息, 算出 三年平均差值 probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore(); culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore(); specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
@ -115,7 +113,8 @@ public class MusicService {
if (StringUtils.isBlank(rulesEnrollProbability)) { if (StringUtils.isBlank(rulesEnrollProbability)) {
continue; continue;
} }
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList()); //取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList().stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
//没有往年录取分数线信息 //没有往年录取分数线信息
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) { if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
@ -198,8 +197,15 @@ public class MusicService {
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore); if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
//TODO 这里改
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(), activeCurrentUserScore.getCulturalScore(),
activeCurrentUserScore.getProfessionalScore(),
recommendMajorDTO.getFirstLevelDiscipline(),
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
}
/*//展示分数 专业分用用 0.167 /*//展示分数 专业分用用 0.167
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
//内部算分 专业分用 0.25 //内部算分 专业分用 0.25
@ -211,8 +217,18 @@ public class MusicService {
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore2,
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore3,
recommendMajorDTO.getProbabilityOperator()));
}
} }
if ("文过专排主科".equals(rulesEnrollProbability)) { if ("文过专排主科".equals(rulesEnrollProbability)) {

View File

@ -78,10 +78,10 @@ public class WuDaoService {
//遍历专业列表 //遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
index++; index++;
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
//取出往年的分数信息, 算出 三年平均差值 //取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList(); historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
probabilityOperator = recommendMajorDTO.getProbabilityOperator(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
//没有计算方式 跳过 //没有计算方式 跳过
if (StringUtils.isBlank(rulesEnrollProbability)) { if (StringUtils.isBlank(rulesEnrollProbability)) {
continue; continue;
@ -132,13 +132,30 @@ public class WuDaoService {
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore); //展示
if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
activeCurrentUserScore.getProfessionalScore(),
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
}
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
//展示
if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore,
recommendMajorDTO.getProbabilityOperator()));
recommendMajorDTO.setStudentConvertedScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
professionalScore3,
recommendMajorDTO.getProbabilityOperator()));
}
} }
//判断录取方式分数是否过省控线 //判断录取方式分数是否过省控线

View File

@ -72,7 +72,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList); yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
this.checkEnrollProbability(recommendMajorDTOList, userScore); this.checkEnrollProbability(recommendMajorDTOList, userScore);
} }
recommendMajorDTOList.stream().filter(r->r.getSchoolCode().equals("1470")).collect(Collectors.toList());
long endTime = new Date().getTime(); long endTime = new Date().getTime();
log.warn("测算专业录取率-耗费时长:" + (endTime - startTime)); log.warn("测算专业录取率-耗费时长:" + (endTime - startTime));
//保存结果到用户的专业结果表 //保存结果到用户的专业结果表
@ -86,6 +85,8 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
yxCalculationMajor.setDetail(recommendMajorDTO.getMajorDetail()); yxCalculationMajor.setDetail(recommendMajorDTO.getMajorDetail());
yxCalculationMajor.setScoreId(userScore.getId()); yxCalculationMajor.setScoreId(userScore.getId());
yxCalculationMajor.setStudentOldConvertedScore(recommendMajorDTO.getStudentScore()); yxCalculationMajor.setStudentOldConvertedScore(recommendMajorDTO.getStudentScore());
yxCalculationMajor.setStudentConvertedScore(recommendMajorDTO.getStudentConvertedScore());
yxCalculationMajor.setPrivateStudentConvertedScore(recommendMajorDTO.getPrivateStudentScore());
//其他分数要求 //其他分数要求
if(true){ if(true){
//语文成绩 //语文成绩
@ -105,13 +106,14 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
otherScoreLimitation.append("语文成绩不低于").append(recommendMajorDTO.getProfessionalScoreLimitation().doubleValue()).append("分,"); otherScoreLimitation.append("语文成绩不低于").append(recommendMajorDTO.getProfessionalScoreLimitation().doubleValue()).append("分,");
} }
if (otherScoreLimitation.length()>0) { if (otherScoreLimitation.length()>0) {
//recommendMajorDTO.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2));
yxCalculationMajor.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2)); yxCalculationMajor.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2));
} }
} }
calculationMajorList.add(yxCalculationMajor); calculationMajorList.add(yxCalculationMajor);
} }
long saveStartTime = new Date().getTime(); long saveStartTime = new Date().getTime();
baseMapper.insertBatch(userScore.getCalculationTableName(),calculationMajorList); baseMapper.insertBatchNew(userScore.getCalculationTableName(),userScore.getId(),calculationMajorList);
//super.saveBatch(calculationMajorList,500); //super.saveBatch(calculationMajorList,500);
long saveEndTime = new Date().getTime(); long saveEndTime = new Date().getTime();
log.warn("插入数据耗费时长:" + (saveEndTime - saveStartTime)); log.warn("插入数据耗费时长:" + (saveEndTime - saveStartTime));
@ -352,7 +354,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
yxCalculationMajor.setId(null); yxCalculationMajor.setId(null);
yxCalculationMajor.setScoreId(newScoreId); yxCalculationMajor.setScoreId(newScoreId);
} }
baseMapper.insertBatch(newCalculationMajorTableName,list); baseMapper.insertBatch(newCalculationMajorTableName,newScoreId,list);
} }
private void setSchoolTagsList(List<RecommendMajorDTO> recommendMajorList) { private void setSchoolTagsList(List<RecommendMajorDTO> recommendMajorList) {
@ -421,26 +423,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
} else { } else {
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore); betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
} }
//zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorDTOList,userScore);
/*if ("高职高专".equals(batch)) {
} else {
//判断 专业类别
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
//如果当前专业是(美术设计类,书法类,体育类)
//不需要换算为往年分数
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
} else if ("音乐类".equals(professionalCategory)) {
//音乐类的
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
} else if ("表演类".equals(professionalCategory)) {
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
} else if ("舞蹈类".equals(professionalCategory)) {
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
} else if ("播音与主持类".equals(professionalCategory)) {
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
}
}*/
} }
/** /**
@ -453,11 +435,13 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
String professionalCategory = activeCurrentUserScore.getProfessionalCategory(); String professionalCategory = activeCurrentUserScore.getProfessionalCategory();
String rulesEnrollProbability = null; String rulesEnrollProbability = null;
String probabilityOperator = null; String probabilityOperator = null;
String showRulesEnrollProbability = null;
String showProbabilityOperator = null;
String nowBatch = activeCurrentUserScore.getBatch(); String nowBatch = activeCurrentUserScore.getBatch();
BigDecimal studentScore = null;//学生折合分 BigDecimal studentScore = null;//学生折合分
BigDecimal privateStudentScore = null;//学生折合分显示用
BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore();//学生的文化分 BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore();//学生的文化分
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分 BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分
BigDecimal professionalScore2 = null;
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null;//文化分省控线 BigDecimal culturalControlLine = null;//文化分省控线
@ -471,10 +455,10 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
if (CollectionUtils.isNotEmpty(recommendMajorList)) { if (CollectionUtils.isNotEmpty(recommendMajorList)) {
//遍历专业列表 //遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
//取出往年的分数信息, 算出 三年平均差值 //取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList(); historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
probabilityOperator = recommendMajorDTO.getProbabilityOperator(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
culturalControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getCulturalScore(); culturalControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getCulturalScore();
specialControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getSpecialScore(); specialControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getSpecialScore();
//没有计算方式 跳过 //没有计算方式 跳过
@ -508,9 +492,17 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue; continue;
} }
//算分用
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setPrivateStudentScore(studentScore);
recommendMajorDTO.setStudentScore(studentScore); if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
//recommendMajorDTO.setStudentConvertedScore(studentScore);
//计算展示用分数
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
activeCurrentUserScore.getCulturalScore(),
activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator()));
}
//录取方式计算 //录取方式计算
if (rulesEnrollProbability.equals("文过专排主科")) { if (rulesEnrollProbability.equals("文过专排主科")) {
@ -546,9 +538,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
// recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
// recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
//==============================================
} }
} }
long endTime = new Date().getTime(); long endTime = new Date().getTime();

View File

@ -231,6 +231,27 @@ public class ScoreUtil {
return activeCurrentUserScore.getProfessionalScore(); return activeCurrentUserScore.getProfessionalScore();
} }
public static BigDecimal convertIntoScore(String rulesEnrollProbability,BigDecimal culturalScore,BigDecimal professionalScore,String operator){
BigDecimal score=new BigDecimal(0);
if (rulesEnrollProbability==null || culturalScore==null || professionalScore==null) {
return score;
}
if(StringUtils.isNotBlank(operator)) {
score = new BigDecimal("0");
String[] operators = operator.split("\\+");
for (String d : operators) {
String[] split = d.split("\\*");
if (split[0].contains("")) {
score = score.add(culturalScore.multiply(new BigDecimal(split[1])));
} else {
score = score.add(professionalScore.multiply(new BigDecimal(split[1])));
}
}
}
score = score.divide(decimal1,4, RoundingMode.HALF_UP);
return score;
}
/** /**
* 折合 分数成绩 * 折合 分数成绩
* @param rulesEnrollProbability 分数折合方式(专过文排/文过专排/+/专7文3/专5文5/专3文7) * @param rulesEnrollProbability 分数折合方式(专过文排/文过专排/+/专7文3/专5文5/专3文7)