diff --git a/ruoyi-admin/src/main/java/com/ruoyi/hezhi/api/kaoshi/ApiLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/hezhi/api/kaoshi/ApiLoginController.java index 9a318892a67deccabfd6c08fb9b0037aa69d1c53..5326b68637f6fc831104053642f2e55471454806 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/hezhi/api/kaoshi/ApiLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/hezhi/api/kaoshi/ApiLoginController.java @@ -349,6 +349,24 @@ public class ApiLoginController { return AjaxResult.success(jsonObject); } + /** + * 给邀请人发送积分 + * + * @param higherUserId 参数 + * @return 结果 + */ + @RepeatSubmit + @GetMapping("/giveScore") + public AjaxResult giveScore(Long higherUserId) { + // 参数校验 + if (higherUserId==null) { + return AjaxResult.error(); + } + + JSONObject jsonObject = tbStudentService.giveScore(higherUserId); + return AjaxResult.success(jsonObject); + } + /** * 小程序注册 * @@ -372,7 +390,6 @@ public class ApiLoginController { * @param memberUserId 用户id * @return 结果 */ - @RepeatSubmit @GetMapping("/getQrCode") public AjaxResult getQrCode(String memberUserId){ try { diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 5a8ffe0061590755164312e95ef6a4de749e8394..3b0479bce6c1a7866af67f79a5beaef3169a2d2a 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -214,7 +214,7 @@ wx: # appSecret: 4778276c6b80b6e6745f37e04f11d991 appSecret: af6b5009cdaebc647c5d6327ad25e848 # 小程序码跳转页面 - wxPath: pages/homePage/index?higherUserId= + wxPath: pages/registerIndex/registerIndex?higherUserId= # 二维码跳转 qrCodeLink: https://server.xuexin.com/miniprogram/ # 小程序发货 diff --git a/ruoyi-system/src/main/java/com/ruoyi/hezhi/domain/dto/MemberUserLoginDTO.java b/ruoyi-system/src/main/java/com/ruoyi/hezhi/domain/dto/MemberUserLoginDTO.java index c356fd5af77e56c1dc4acfb30ece4c983978c258..9a9277427d5b0c76ebae694fc1e366194454b42c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/hezhi/domain/dto/MemberUserLoginDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/hezhi/domain/dto/MemberUserLoginDTO.java @@ -30,6 +30,9 @@ public class MemberUserLoginDTO implements Serializable { @NotBlank(message = "手机号code不能为空", groups = {MemberUserLogin.class,MemberUserRegister.class}) private String phoneCode; + /** 邀请人id */ + private Long higherUserId; + /** 头像 */ // @NotBlank(message = "头像不能为空", groups = {MemberUserRegister.class}) private String avatarUrl; diff --git a/ruoyi-system/src/main/java/com/ruoyi/hezhi/mapper/TbExamRegistrationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/hezhi/mapper/TbExamRegistrationMapper.java index 079789389073cd7f4baff451cd3320f0db5229b2..f470009cee84b8e4a4752b64d99227d03913d745 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/hezhi/mapper/TbExamRegistrationMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/hezhi/mapper/TbExamRegistrationMapper.java @@ -150,6 +150,8 @@ public interface TbExamRegistrationMapper TbExamRegistration selectTbExamRegistrationByCode(TbExamRegistration tbExamRegistration); + TbExamRegistration selectTbExamRegistrationByBatchIndex(TbExamRegistration tbExamRegistration); + int importDataList(@Param("list") List listTbExamRegistration); int updateTbExamRegistrationByOrderNos(@Param("orderNos") List orderNos); diff --git a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/ITbStudentService.java b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/ITbStudentService.java index 133d819aa04a9c3af856c053576acfaffb56de92..12626770ece9f3eaa859e305ceec9182cf673d43 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/ITbStudentService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/ITbStudentService.java @@ -128,6 +128,7 @@ public interface ITbStudentService * @return JSONObject */ JSONObject memberUserLogin(MemberUserLoginDTO memberUserLoginDTO); + JSONObject giveScore(Long higherUserId); /** * 小程序注册 diff --git a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbExamRegistrationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbExamRegistrationServiceImpl.java index ce9f706d8d424c29e30a969a75b15790f616911c..1399515439a3160c4716223c3abd7c01faf85e9f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbExamRegistrationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbExamRegistrationServiceImpl.java @@ -239,8 +239,8 @@ public class TbExamRegistrationServiceImpl implements ITbExamRegistrationService tbExamRegistration.setMemberUserId(userId); } //校验当前数据是否在库中已存在 - TbExamRegistration tbExamRegistrations = tbExamRegistrationMapper.selectTbExamRegistrationByCode(tbExamRegistration); - if(ObjectUtils.isNotEmpty(tbExamRegistrations) && tbExamRegistrations.getIsPay() == 1){ + TbExamRegistration tbExamRegistrations = tbExamRegistrationMapper.selectTbExamRegistrationByBatchIndex(tbExamRegistration); + if(ObjectUtils.isNotEmpty(tbExamRegistrations)){ // 数据已存在,记录失败原因 throw new ServiceException("已报名"); } @@ -1449,8 +1449,8 @@ public class TbExamRegistrationServiceImpl implements ITbExamRegistrationService } //校验当前数据是否在库中已存在 - TbExamRegistration tbExamRegistrations = tbExamRegistrationMapper.selectTbExamRegistrationByCode(tbExamRegistration); - if(ObjectUtils.isNotEmpty(tbExamRegistrations) && tbExamRegistrations.getIsPay() == 1){ + TbExamRegistration tbExamRegistrations = tbExamRegistrationMapper.selectTbExamRegistrationByBatchIndex(tbExamRegistration); + if(ObjectUtils.isNotEmpty(tbExamRegistrations)){//根据批次batchIndex和MemberUserId和考试Id查出数据,同批次不能重复报名 // 数据已存在,记录失败原因 erreList.put(item.getContactInformation(), "已报名"); continue; diff --git a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbStudentServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbStudentServiceImpl.java index f869157981827f883106ece1a9f2112d4c1a5315..a8a40b7b5ba7449bb432607c77bd0c9bfc770c3a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbStudentServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/hezhi/service/impl/TbStudentServiceImpl.java @@ -15,10 +15,14 @@ import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.common.weixin.config.WeiXinConfig; import com.ruoyi.common.weixin.config.WeiXinXcxMemberConfig; import com.ruoyi.common.weixin.utils.WeiXinXcxMemberUtils; +import com.ruoyi.hezhi.domain.TbConfig; +import com.ruoyi.hezhi.domain.TbMemberScore; import com.ruoyi.hezhi.domain.TbStudent; import com.ruoyi.hezhi.domain.dto.ImportStudentDTO; import com.ruoyi.hezhi.domain.dto.MemberUserLoginDTO; import com.ruoyi.hezhi.domain.dto.StudentDTO; +import com.ruoyi.hezhi.mapper.TbConfigMapper; +import com.ruoyi.hezhi.mapper.TbMemberScoreMapper; import com.ruoyi.hezhi.mapper.TbStudentMapper; import com.ruoyi.hezhi.service.ITbSmsCodeService; import com.ruoyi.hezhi.service.ITbStudentService; @@ -34,6 +38,7 @@ import javax.annotation.Resource; import java.awt.*; import java.io.BufferedInputStream; import java.io.PrintWriter; +import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; import java.util.*; @@ -65,6 +70,10 @@ public class TbStudentServiceImpl implements ITbStudentService { private SqlSessionFactory sqlSessionFactory; @Resource private WeiXinConfig weiXinConfig; + @Resource + private TbConfigMapper tbConfigMapper; + @Resource + private TbMemberScoreMapper tbMemberScoreMapper; /** * 查询学员 @@ -621,6 +630,7 @@ public class TbStudentServiceImpl implements ITbStudentService { String loginCode = memberUserLoginDTO.getLoginCode(); String phoneCode = memberUserLoginDTO.getPhoneCode(); + Long higherUserId = memberUserLoginDTO.getHigherUserId(); // 微信授权获取openId // String openId = loginCode; @@ -683,12 +693,57 @@ public class TbStudentServiceImpl implements ITbStudentService { student.setDelFlag(0); tbStudentMapper.insertTbStudent(student); +// + TbConfig aboutIntegral = tbConfigMapper.selectTbConfigByIdentifying("aboutIntegral"); + + // 邀请人送积分数 + String scoreString = aboutIntegral.getConfigString4(); + //转换为Decimal + BigDecimal score = new BigDecimal(scoreString); + if (score.compareTo(BigDecimal.ZERO) > 0 && higherUserId != null) {//不是0积分并且邀请人id不为空 + // 给邀请人赠送积分 + TbMemberScore memberScore = new TbMemberScore(); + memberScore.setMemberUserId(higherUserId); + memberScore.setName("邀请用户赠送积分"); + memberScore.setScore(score); + memberScore.setType(2); + memberScore.setIncomeExpenses(1); + memberScore.setCreateTime(DateUtils.getNowDate()); + tbMemberScoreMapper.insertTbMemberScore(memberScore); + } + // 登录成功 result.put("AuthToken", student.getStudentId()); } return result; } + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject giveScore(Long higherUserId) { + JSONObject result = new JSONObject(); + + TbConfig aboutIntegral = tbConfigMapper.selectTbConfigByIdentifying("aboutIntegral"); + + // 邀请人送积分数 + String scoreString = aboutIntegral.getConfigString4(); + //转换为Decimal + BigDecimal score = new BigDecimal(scoreString); + if (score.compareTo(BigDecimal.ZERO) > 0 && higherUserId != null) {//不是0积分并且邀请人id不为空 + // 给邀请人赠送积分 + TbMemberScore memberScore = new TbMemberScore(); + memberScore.setMemberUserId(higherUserId); + memberScore.setName("邀请用户赠送积分"); + memberScore.setScore(score); + memberScore.setType(2); + memberScore.setIncomeExpenses(1); + memberScore.setCreateTime(DateUtils.getNowDate()); + tbMemberScoreMapper.insertTbMemberScore(memberScore); + } + + return result; + } + @Override public JSONObject memberUserRegister(MemberUserLoginDTO memberUserLoginDTO) { JSONObject result = new JSONObject(); diff --git a/ruoyi-system/src/main/resources/mapper/hezhi/TbExamRegistrationMapper.xml b/ruoyi-system/src/main/resources/mapper/hezhi/TbExamRegistrationMapper.xml index e5b031ec6b6025700f6865a8b0c5859f3ecb7448..2ce8ec725180d1d8a6c652c0937936b2f0491a63 100644 --- a/ruoyi-system/src/main/resources/mapper/hezhi/TbExamRegistrationMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/hezhi/TbExamRegistrationMapper.xml @@ -1262,6 +1262,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" exam_registration_id desc limit 1 +