updates
This commit is contained in:
parent
4d0e381880
commit
39a83b732d
|
|
@ -85,6 +85,8 @@ public class ShiroConfig {
|
|||
filterChainDefinitionMap.put("/wx/user/cancelQrCode/**","anon");//取消微信二维码登录
|
||||
filterChainDefinitionMap.put("/wx/user/updateQrCodeStatus/**","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");//小程序手机号登录
|
||||
|
|
|
|||
|
|
@ -220,4 +220,6 @@ public class SysUser implements Serializable {
|
|||
* 抖音openId
|
||||
*/
|
||||
private String dyOpenId;
|
||||
|
||||
private String ip;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ public class SysLoginModel {
|
|||
@ApiModelProperty(value = "验证码key")
|
||||
private String checkKey;
|
||||
|
||||
@ApiModelProperty(value = "手机号")
|
||||
private String phone;
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
|
@ -52,4 +54,11 @@ public class SysLoginModel {
|
|||
this.checkKey = checkKey;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -426,4 +426,17 @@ public interface ISysUserService extends IService<SysUser> {
|
|||
*/
|
||||
void checkUserAdminRejectDel(String ids);
|
||||
|
||||
/**
|
||||
* 判断手机号是否可使用
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
boolean checkPhoneAvailable(String phone);
|
||||
|
||||
/**
|
||||
* 判断同ip是否注册过账号
|
||||
* @param ipAddr
|
||||
* @return
|
||||
*/
|
||||
boolean checkIpAvailable(String ipAddr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.AppExportUserVo;
|
||||
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.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
|
|
@ -1824,4 +1825,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,25 @@
|
|||
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.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.oConvertUtils;
|
||||
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.service.ISysUserService;
|
||||
import org.jeecg.modules.web.service.WebUserService;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* @author ZhouWenTao
|
||||
|
|
@ -21,6 +30,8 @@ import javax.annotation.Resource;
|
|||
@Api(tags = "前台用户接口")
|
||||
@Slf4j
|
||||
public class WebUserController {
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private WebUserService webUserService;
|
||||
@Resource
|
||||
|
|
@ -28,6 +39,48 @@ public class WebUserController {
|
|||
@Resource
|
||||
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)
|
||||
@ApiOperation(value = "手机号密码登录")
|
||||
public Result<?> loginPasswd(@RequestBody SysLoginModel sysLoginModel){
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -78,6 +79,7 @@ public class RecommendMajorDTO implements Serializable {
|
|||
private String rulesEnrollProbability;
|
||||
@ApiModelProperty(value = "录取概率计算规则运算符")
|
||||
private String probabilityOperator;
|
||||
|
||||
@ApiModelProperty(value = "学年制")
|
||||
private Integer studyYear=0;
|
||||
private Integer semester;
|
||||
|
|
@ -150,4 +152,11 @@ public class RecommendMajorDTO implements Serializable {
|
|||
private String xkfl;
|
||||
@ApiModelProperty(value = "专业类")
|
||||
private String zyl;
|
||||
|
||||
@ApiModelProperty(value = "内部折合分数")
|
||||
private BigDecimal privateStudentScore;
|
||||
@ApiModelProperty(value = "内部录取方式")
|
||||
private String privateRulesEnrollProbability;
|
||||
@ApiModelProperty(value = "内部录取方式运算符")
|
||||
private String privateProbabilityOperator;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,4 +76,8 @@ public class YxConstant {
|
|||
public static BigDecimal bigDecimal025 = new BigDecimal("0.25");
|
||||
|
||||
public static final String REDIS_SCORE_KEY="USER_SCORE_";
|
||||
|
||||
|
||||
//同ip仅可注册账户数量
|
||||
public static final Integer ipRegisterNum = 3;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,4 +132,15 @@ public class YxCalculationMajor implements Serializable {
|
|||
@Excel(name = "考试类型(统考/校考)", width = 15)
|
||||
@ApiModelProperty(value = "考试类型(统考/校考)")
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,18 +64,8 @@ public class YxSchoolMajor implements Serializable {
|
|||
@Excel(name = "科类(文科/理科)", width = 15)
|
||||
@ApiModelProperty(value = "科类(文科/理科)")
|
||||
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)
|
||||
@ApiModelProperty(value = "文化分省控线")
|
||||
|
|
@ -164,4 +154,24 @@ public class YxSchoolMajor implements Serializable {
|
|||
@Excel(name = "考试类型(统考/校考)", width = 15)
|
||||
@ApiModelProperty(value = "考试类型(统考/校考)")
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,5 +19,7 @@ public interface YxCalculationMajorMapper extends BaseMapper<YxCalculationMajor>
|
|||
List<RecommendMajorDTO> recommendMajorListBenOrZhuan(@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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,19 +4,34 @@
|
|||
<insert id="insertBatch" 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, 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)
|
||||
VALUES
|
||||
<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.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}
|
||||
)
|
||||
</foreach>
|
||||
</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
|
||||
|
|
@ -31,6 +46,7 @@
|
|||
cm.detail as majorDetail,
|
||||
cm.category,
|
||||
cm.batch,
|
||||
cm.private_student_converted_score as privateStudentScore,
|
||||
cm.student_old_converted_score as studentScore,
|
||||
cm.student_converted_score,
|
||||
cm.enroll_probability,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
sm.english_score_limitation,
|
||||
sm.chinese_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_sx as rulesEnrollProbabilitySx,
|
||||
sm.probability_operator as probabilityOperator,
|
||||
|
|
|
|||
|
|
@ -97,10 +97,10 @@ public class BiaoyanService {
|
|||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
|
||||
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
|
||||
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
//没有计算方式 或 没有往年录取分数线信息 ,或者没有过该批次 时跳过
|
||||
|
|
@ -142,10 +142,18 @@ public class BiaoyanService {
|
|||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//算分数
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setPrivateStudentScore(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
|
||||
/*rulesEnrollProbability = "文*0.067+专*0.25";
|
||||
probabilityOperator = "文*0.067+专*0.25";
|
||||
|
|
@ -155,8 +163,19 @@ public class BiaoyanService {
|
|||
}else{
|
||||
//使用主考科目成绩,将当期成绩按照专业录取分数方式折算
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
|
||||
recommendMajorDTO.setPrivateStudentScore(studentScore);
|
||||
|
||||
//算页面展示分数
|
||||
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)) {
|
||||
|
|
|
|||
|
|
@ -77,17 +77,16 @@ public class BoYinService {
|
|||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
index ++;
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
|
||||
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
|
||||
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
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())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
|
|
@ -119,13 +118,29 @@ public class BoYinService {
|
|||
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setPrivateStudentScore(studentScore);
|
||||
//展示
|
||||
if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
|
||||
activeCurrentUserScore.getCulturalScore(),
|
||||
activeCurrentUserScore.getProfessionalScore(),
|
||||
recommendMajorDTO.getProbabilityOperator()));
|
||||
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
|
||||
}
|
||||
}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));
|
||||
recommendMajorDTO.setStudentConvertedScore(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(),
|
||||
by,
|
||||
recommendMajorDTO.getProbabilityOperator()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -104,10 +104,8 @@ public class MusicService {
|
|||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
|
||||
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
|
||||
|
||||
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
|
|
@ -115,7 +113,8 @@ public class MusicService {
|
|||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
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())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
|
|
@ -198,8 +197,15 @@ public class MusicService {
|
|||
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setPrivateStudentScore(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
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
|
||||
//内部算分 专业分用 0.25
|
||||
|
|
@ -211,8 +217,18 @@ public class MusicService {
|
|||
}else{
|
||||
//使用主考科目成绩,将当期成绩按照专业录取分数方式折算
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
|
||||
recommendMajorDTO.setPrivateStudentScore(studentScore);
|
||||
|
||||
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)) {
|
||||
|
|
|
|||
|
|
@ -78,10 +78,10 @@ public class WuDaoService {
|
|||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
index++;
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
|
||||
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
|
|
@ -132,13 +132,30 @@ public class WuDaoService {
|
|||
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setPrivateStudentScore(studentScore);
|
||||
//展示
|
||||
if(StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())){
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
|
||||
activeCurrentUserScore.getCulturalScore(),
|
||||
activeCurrentUserScore.getProfessionalScore(),
|
||||
recommendMajorDTO.getProbabilityOperator()));
|
||||
recommendMajorDTO.setStudentConvertedScore(recommendMajorDTO.getStudentScore());
|
||||
}
|
||||
}else{
|
||||
//使用主考科目成绩,将当期成绩按照专业录取分数方式折算
|
||||
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, 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()));
|
||||
}
|
||||
}
|
||||
|
||||
//判断录取方式,分数是否过省控线
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
|
||||
this.checkEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
recommendMajorDTOList.stream().filter(r->r.getSchoolCode().equals("1470")).collect(Collectors.toList());
|
||||
long endTime = new Date().getTime();
|
||||
log.warn("测算专业录取率-耗费时长:" + (endTime - startTime));
|
||||
//保存结果到用户的专业结果表
|
||||
|
|
@ -86,6 +85,8 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
yxCalculationMajor.setDetail(recommendMajorDTO.getMajorDetail());
|
||||
yxCalculationMajor.setScoreId(userScore.getId());
|
||||
yxCalculationMajor.setStudentOldConvertedScore(recommendMajorDTO.getStudentScore());
|
||||
yxCalculationMajor.setStudentConvertedScore(recommendMajorDTO.getStudentConvertedScore());
|
||||
yxCalculationMajor.setPrivateStudentConvertedScore(recommendMajorDTO.getPrivateStudentScore());
|
||||
//其他分数要求
|
||||
if(true){
|
||||
//语文成绩
|
||||
|
|
@ -105,13 +106,14 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
otherScoreLimitation.append("语文成绩不低于").append(recommendMajorDTO.getProfessionalScoreLimitation().doubleValue()).append("分,");
|
||||
}
|
||||
if (otherScoreLimitation.length()>0) {
|
||||
//recommendMajorDTO.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2));
|
||||
yxCalculationMajor.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2));
|
||||
}
|
||||
}
|
||||
calculationMajorList.add(yxCalculationMajor);
|
||||
}
|
||||
long saveStartTime = new Date().getTime();
|
||||
baseMapper.insertBatch(userScore.getCalculationTableName(),calculationMajorList);
|
||||
baseMapper.insertBatchNew(userScore.getCalculationTableName(),userScore.getId(),calculationMajorList);
|
||||
//super.saveBatch(calculationMajorList,500);
|
||||
long saveEndTime = new Date().getTime();
|
||||
log.warn("插入数据耗费时长:" + (saveEndTime - saveStartTime));
|
||||
|
|
@ -352,7 +354,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
yxCalculationMajor.setId(null);
|
||||
yxCalculationMajor.setScoreId(newScoreId);
|
||||
}
|
||||
baseMapper.insertBatch(newCalculationMajorTableName,list);
|
||||
baseMapper.insertBatch(newCalculationMajorTableName,newScoreId,list);
|
||||
}
|
||||
|
||||
private void setSchoolTagsList(List<RecommendMajorDTO> recommendMajorList) {
|
||||
|
|
@ -421,26 +423,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
} else {
|
||||
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 rulesEnrollProbability = null;
|
||||
String probabilityOperator = null;
|
||||
String showRulesEnrollProbability = null;
|
||||
String showProbabilityOperator = null;
|
||||
String nowBatch = activeCurrentUserScore.getBatch();
|
||||
BigDecimal studentScore = null;//学生折合分
|
||||
BigDecimal privateStudentScore = null;//学生折合分显示用
|
||||
BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore();//学生的文化分
|
||||
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分
|
||||
BigDecimal professionalScore2 = null;
|
||||
BigDecimal nowYearDiff = null;//当前年分差
|
||||
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
|
||||
BigDecimal culturalControlLine = null;//文化分省控线
|
||||
|
|
@ -471,10 +455,10 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
|
||||
probabilityOperator = recommendMajorDTO.getPrivateProbabilityOperator();
|
||||
culturalControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
//没有计算方式 跳过
|
||||
|
|
@ -508,9 +492,17 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
continue;
|
||||
}
|
||||
|
||||
//算分用
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
recommendMajorDTO.setPrivateStudentScore(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("文过专排主科")) {
|
||||
|
|
@ -546,9 +538,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
// recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
// recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
//==============================================
|
||||
}
|
||||
}
|
||||
long endTime = new Date().getTime();
|
||||
|
|
|
|||
|
|
@ -231,6 +231,27 @@ public class ScoreUtil {
|
|||
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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue