From 39a83b732d00971ebf163942ae240a3c889bd6c7 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Sat, 18 May 2024 22:09:40 +0800 Subject: [PATCH] updates --- .../org/jeecg/config/shiro/ShiroConfig.java | 2 + .../jeecg/modules/system/entity/SysUser.java | 2 + .../modules/system/model/SysLoginModel.java | 9 ++++ .../system/service/ISysUserService.java | 13 +++++ .../service/impl/SysUserServiceImpl.java | 18 +++++++ .../web/controller/WebUserController.java | 53 +++++++++++++++++++ .../modules/web/dto/RecommendMajorDTO.java | 9 ++++ .../jeecg/modules/yx/constant/YxConstant.java | 4 ++ .../modules/yx/entity/YxCalculationMajor.java | 11 ++++ .../modules/yx/entity/YxSchoolMajor.java | 32 +++++++---- .../yx/mapper/YxCalculationMajorMapper.java | 4 +- .../mapper/xml/YxCalculationMajorMapper.xml | 24 +++++++-- .../yx/mapper/xml/YxSchoolMajorMapper.xml | 2 + .../yx/service/impl/BiaoyanService.java | 31 ++++++++--- .../modules/yx/service/impl/BoYinService.java | 35 ++++++++---- .../modules/yx/service/impl/MusicService.java | 34 ++++++++---- .../modules/yx/service/impl/WuDaoService.java | 29 +++++++--- .../impl/YxCalculationMajorServiceImpl.java | 51 +++++++----------- .../org/jeecg/modules/yx/util/ScoreUtil.java | 21 ++++++++ 19 files changed, 306 insertions(+), 78 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 4f624cb..8a52ab3 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -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");//小程序手机号登录 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java index 6679819..ef36393 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java @@ -220,4 +220,6 @@ public class SysUser implements Serializable { * 抖音openId */ private String dyOpenId; + + private String ip; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java index e565be6..f02c3c2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/model/SysLoginModel.java @@ -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; + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index d08d249..74dbdf3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -426,4 +426,17 @@ public interface ISysUserService extends IService { */ void checkUserAdminRejectDel(String ids); + /** + * 判断手机号是否可使用 + * @param phone + * @return + */ + boolean checkPhoneAvailable(String phone); + + /** + * 判断同ip是否注册过账号 + * @param ipAddr + * @return + */ + boolean checkIpAvailable(String ipAddr); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 91d0bab..f86e002 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -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 impl throw new JeecgBootException("admin用户,不允许删除!"); } } + + @Override + public boolean checkPhoneAvailable(String phone) { + if (StringUtils.isBlank(phone)) { + return false; + } + long count = this.count(new LambdaQueryWrapper().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().eq(SysUser::getIp, ipAddr).eq(SysUser::getStatus, 1).eq(SysUser::getDelFlag, 0)); + return count<= YxConstant.ipRegisterNum; + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserController.java index a13a7b5..8b15e4f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebUserController.java @@ -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){ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java index 5eca316..a767b9f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/RecommendMajorDTO.java @@ -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; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java index 26d3e07..991f7ee 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java @@ -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; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxCalculationMajor.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxCalculationMajor.java index 5242d14..b7f6970 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxCalculationMajor.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxCalculationMajor.java @@ -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; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java index 2cb8013..c5cf3d0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java @@ -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; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java index 0f98b2d..efb7a95 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxCalculationMajorMapper.java @@ -19,5 +19,7 @@ public interface YxCalculationMajorMapper extends BaseMapper List recommendMajorListBenOrZhuan(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); List recommendMajorList(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO); - void insertBatch(@Param("tableName") String tableName,@Param("list") List list); + void insertBatch(@Param("tableName") String tableName,@Param("scoreId")String scoreId,@Param("list") List list); + + void insertBatchNew(@Param("tableName") String tableName,@Param("scoreId")String scoreId,@Param("list") List list); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml index bf2df0f..bc99a86 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml @@ -4,19 +4,34 @@ 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 - ( - #{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} ) + + 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 + + (#{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} + ) + +