注册和登录增加推荐人id
This commit is contained in:
@ -13,4 +13,7 @@ public class AlipayMiniProgramRegRequest {
|
||||
|
||||
@ApiModelProperty(value = "签名")
|
||||
private String sign;
|
||||
|
||||
@ApiModelProperty(value = "推荐人userId")
|
||||
private Long referralUserId;
|
||||
}
|
||||
|
||||
@ -8,13 +8,16 @@ import lombok.Data;
|
||||
@Data
|
||||
public class WxMiniProgramRegRequest {
|
||||
@ApiModelProperty(value = "微信code")
|
||||
String code;
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "微信手机号加密数据")
|
||||
String phoneEncryptedData;
|
||||
private String phoneEncryptedData;
|
||||
|
||||
@ApiModelProperty(value = "微信手机号加密数据iv")
|
||||
String phoneIv;
|
||||
private String phoneIv;
|
||||
|
||||
@ApiModelProperty(value = "推荐人userId")
|
||||
private Long referralUserId;
|
||||
|
||||
// @ApiModelProperty(value = "微信用户加密数据")
|
||||
// String userEncryptedData;
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package com.sczx.user.mapper;
|
||||
|
||||
import com.sczx.user.po.BaseUserReferralPO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户引荐信息 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author zhangli
|
||||
* @since 2025-08-19 23:47:42
|
||||
*/
|
||||
public interface BaseUserReferralMapper extends BaseMapper<BaseUserReferralPO> {
|
||||
|
||||
}
|
||||
66
src/main/java/com/sczx/user/po/BaseUserReferralPO.java
Normal file
66
src/main/java/com/sczx/user/po/BaseUserReferralPO.java
Normal file
@ -0,0 +1,66 @@
|
||||
package com.sczx.user.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户引荐信息
|
||||
* </p>
|
||||
*
|
||||
* @author zhangli
|
||||
* @since 2025-08-19 23:47:42
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("zc_base_user_referral")
|
||||
@ApiModel(value = "BaseUserReferralPO对象", description = "用户引荐信息")
|
||||
public class BaseUserReferralPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("id主键")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("被引荐人id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("被引荐人手机号")
|
||||
private String userPhoneNumber;
|
||||
|
||||
@ApiModelProperty("引荐人id")
|
||||
private Long referralUserId;
|
||||
|
||||
@ApiModelProperty("引荐人手机号")
|
||||
private String referralUserPhoneNumber;
|
||||
|
||||
@ApiModelProperty("奖励截止日期")
|
||||
private LocalDate awardDeadline;
|
||||
|
||||
@ApiModelProperty("奖励比例")
|
||||
private BigDecimal awardRate;
|
||||
|
||||
@ApiModelProperty("引荐订单")
|
||||
private String referralOrderNo;
|
||||
|
||||
@ApiModelProperty("删除标志(0代表存在 2代表删除)")
|
||||
private String delFlag;
|
||||
|
||||
@ApiModelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.sczx.user.repository;
|
||||
|
||||
import com.sczx.user.po.BaseUserReferralPO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户引荐信息 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangli
|
||||
* @since 2025-08-19 23:47:42
|
||||
*/
|
||||
public interface BaseUserReferralRepo extends IService<BaseUserReferralPO> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.sczx.user.repository.impl;
|
||||
|
||||
import com.sczx.user.po.BaseUserReferralPO;
|
||||
import com.sczx.user.mapper.BaseUserReferralMapper;
|
||||
import com.sczx.user.repository.BaseUserReferralRepo;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户引荐信息 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author zhangli
|
||||
* @since 2025-08-19 23:47:42
|
||||
*/
|
||||
@Service
|
||||
public class BaseUserReferralRepoImpl extends ServiceImpl<BaseUserReferralMapper, BaseUserReferralPO> implements BaseUserReferralRepo {
|
||||
|
||||
}
|
||||
@ -9,6 +9,8 @@ import com.sczx.user.convert.UserInfoConvert;
|
||||
import com.sczx.user.dto.*;
|
||||
import com.sczx.user.exception.BizException;
|
||||
import com.sczx.user.po.BaseUserPO;
|
||||
import com.sczx.user.po.BaseUserReferralPO;
|
||||
import com.sczx.user.repository.BaseUserReferralRepo;
|
||||
import com.sczx.user.repository.BaseUserRepo;
|
||||
import com.sczx.user.service.IUserService;
|
||||
import com.sczx.user.thirdpart.dto.WechatDecryptedPhoneInfo;
|
||||
@ -21,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Objects;
|
||||
@ -50,6 +53,9 @@ public class UserServiceImpl implements IUserService {
|
||||
@Autowired
|
||||
private AlipayInteg alipayInteg;
|
||||
|
||||
@Autowired
|
||||
private BaseUserReferralRepo baseUserReferralRepo;
|
||||
|
||||
|
||||
@Override
|
||||
public String getWxOpenId(String code) {
|
||||
@ -130,6 +136,7 @@ public class UserServiceImpl implements IUserService {
|
||||
return getLoginResponse(openid,MiniProgramTypeEnum.WECHAT.getType());
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public LoginResponse wxMiniProgramLoginOrReg(WxMiniProgramRegRequest wxMiniProgramRegRequest) {
|
||||
try{
|
||||
@ -175,6 +182,23 @@ public class UserServiceImpl implements IUserService {
|
||||
baseUserPO.setNickName(phoneNumber);
|
||||
baseUserPO.setRoleId(1);
|
||||
baseUserRepo.saveOrUpdate(baseUserPO);
|
||||
|
||||
if(Objects.nonNull(wxMiniProgramRegRequest.getReferralUserId())){
|
||||
LambdaQueryWrapper<BaseUserReferralPO> queryReferralWrapper = new LambdaQueryWrapper<>();
|
||||
queryReferralWrapper.eq(BaseUserReferralPO::getUserId, baseUserPO.getId()).last( " limit 1");
|
||||
BaseUserReferralPO baseUserReferralPO = baseUserReferralRepo.getOne(queryReferralWrapper);
|
||||
if(Objects.isNull(baseUserReferralPO)){
|
||||
baseUserReferralPO = new BaseUserReferralPO();
|
||||
BaseUserPO referralUserPO = baseUserRepo.getById(wxMiniProgramRegRequest.getReferralUserId());
|
||||
baseUserReferralPO.setUserId(baseUserPO.getId());
|
||||
baseUserReferralPO.setUserPhoneNumber(phoneNumber);
|
||||
baseUserReferralPO.setReferralUserId(wxMiniProgramRegRequest.getReferralUserId());
|
||||
baseUserReferralPO.setReferralUserPhoneNumber(referralUserPO.getPhoneNumber());
|
||||
//TODO-获取推荐奖励
|
||||
//保存推荐信息
|
||||
baseUserReferralRepo.save(baseUserReferralPO);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if(StringUtils.isBlank(baseUserPO.getWechatOpenid())){
|
||||
baseUserPO.setWechatOpenid(openid);
|
||||
@ -188,6 +212,7 @@ public class UserServiceImpl implements IUserService {
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public LoginResponse alipayMiniProgramLoginOrReg(AlipayMiniProgramRegRequest alipayMiniProgramRegRequest) {
|
||||
try {
|
||||
@ -211,6 +236,23 @@ public class UserServiceImpl implements IUserService {
|
||||
baseUserPO.setPassword(MD5Utils.md5Hex(phoneNumber, StandardCharsets.UTF_8.name()));
|
||||
baseUserPO.setRoleId(1);
|
||||
baseUserRepo.saveOrUpdate(baseUserPO);
|
||||
|
||||
if(Objects.nonNull(alipayMiniProgramRegRequest.getReferralUserId())){
|
||||
LambdaQueryWrapper<BaseUserReferralPO> queryReferralWrapper = new LambdaQueryWrapper<>();
|
||||
queryReferralWrapper.eq(BaseUserReferralPO::getUserId, baseUserPO.getId()).last( " limit 1");
|
||||
BaseUserReferralPO baseUserReferralPO = baseUserReferralRepo.getOne(queryReferralWrapper);
|
||||
if(Objects.isNull(baseUserReferralPO)){
|
||||
baseUserReferralPO = new BaseUserReferralPO();
|
||||
BaseUserPO referralUserPO = baseUserRepo.getById(alipayMiniProgramRegRequest.getReferralUserId());
|
||||
baseUserReferralPO.setUserId(baseUserPO.getId());
|
||||
baseUserReferralPO.setUserPhoneNumber(phoneNumber);
|
||||
baseUserReferralPO.setReferralUserId(alipayMiniProgramRegRequest.getReferralUserId());
|
||||
baseUserReferralPO.setReferralUserPhoneNumber(referralUserPO.getPhoneNumber());
|
||||
//TODO-获取推荐奖励
|
||||
//保存推荐信息
|
||||
baseUserReferralRepo.save(baseUserReferralPO);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 5. 返回登录信息
|
||||
return getLoginResponse(baseUserPO,MiniProgramTypeEnum.ALIPAY);
|
||||
|
||||
5
src/main/resources/mapper/BaseUserReferralMapper.xml
Normal file
5
src/main/resources/mapper/BaseUserReferralMapper.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sczx.user.mapper.BaseUserReferralMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user