diff --git a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java index f82efa8..86328b8 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java @@ -6,7 +6,7 @@ public interface InviteCodeService { String inviteCode(Long memberId); - InviteCode getCodeInfo(String code); + InviteCode getCodeInfo(String code,Long userId); void addUseTotal(Long id, Integer total); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java index 07152af..274095f 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java @@ -34,7 +34,7 @@ public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { @Override public ResultData useCode(WxCUserBasicInfo cUser, String code) { //查询code 是否存在,存在再去进行操作 - InviteCode info = inviteCodeService.getCodeInfo(code); + InviteCode info = inviteCodeService.getCodeInfo(code,null); if (!ObjectUtils.isEmpty(info)) { if (cUser.getId().equals(info.getUserId())) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "不能使用自己的邀请码"); diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java index 2379b87..8543abc 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.mapper.InviteCodeMapper; import com.iformall.service.sm.InviteCodeService; import com.iformall.utils.sign.AppUtils; import io.swagger.models.auth.In; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -22,11 +23,17 @@ public class InviteCodeServiceImpl implements InviteCodeService { public String inviteCode(Long memberId) { //生成了邀请码 查一下是否重复 String inviteCode = AppUtils.getInviteCode(); - InviteCode info = getCodeInfo(inviteCode); - if (!ObjectUtils.isEmpty(info)){ + InviteCode info = getCodeInfo(inviteCode, null); + if (!ObjectUtils.isEmpty(info)) { inviteCode = AppUtils.getInviteCode(); } + //如果用户已经生成过邀请码 就直接返回 + InviteCode userInfo = getCodeInfo(null, memberId); + if (!ObjectUtils.isEmpty(userInfo)) { + return userInfo.getCode(); + } + InviteCode code = new InviteCode(); code.setId(IdWorker.get().nextId()); code.setCode(inviteCode); @@ -37,8 +44,11 @@ public class InviteCodeServiceImpl implements InviteCodeService { } @Override - public InviteCode getCodeInfo(String code) { - return inviteCodeMapper.selectOne(new LambdaQueryWrapper().eq(InviteCode::getIsDel, 0).eq(InviteCode::getCode, code)); + public InviteCode getCodeInfo(String code, Long userId) { + return inviteCodeMapper.selectOne(new LambdaQueryWrapper() + .eq(InviteCode::getIsDel, 0) + .eq(StringUtils.isNotEmpty(code), InviteCode::getCode, code) + .eq(userId != null, InviteCode::getUserId, userId)); } @Override