diff --git a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 640b72f..20f9559 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.sm.InviteCodeInfo; import com.iformall.enums.*; import com.iformall.service.*; import com.iformall.service.cuser.CUserServiceFactory; @@ -35,6 +36,7 @@ import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -672,7 +674,7 @@ public class WxUserGrantController extends BaseController { @ApiImplicitParam(name = "code", value = "code", dataType = "String", paramType = "query", required = true) public ResultData useCode(String code) { logger.debug("[" + getIpAddr() + "] WxUserGrantController::useCode"); - return inviteCodeInfoService.useCode(getCUser(),code); + return inviteCodeInfoService.useCode(getCUser(), code); } @ApiOperation("是否使用邀请码判断") @@ -683,4 +685,12 @@ public class WxUserGrantController extends BaseController { return new ResultData(use); } + @ApiOperation("查询哪些用户使用了当前账户的邀请码") + @GetMapping("/getUseCodeUser") + public ResultData getUseCodeUser() { + logger.debug("[" + getIpAddr() + "] WxUserGrantController::getUseCodeUser"); + List useCodeUser = inviteCodeInfoService.getUseCodeUser(getCUser()); + return new ResultData(useCodeUser); + } + } diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java index 369161c..bf74252 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java @@ -1,5 +1,6 @@ package com.iformall.domain.po.sm; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.models.auth.In; @@ -68,4 +69,15 @@ public class InviteCodeInfo implements Serializable { * 是否删除1是0否 */ private Integer isDel; + /** + * 用户头像地址 + */ + @TableField(exist = false) + private String avatarUrl; + /** + * 用户名字 + */ + @TableField(exist = false) + private String name; + } diff --git a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java index aa6844a..a1fb667 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java @@ -2,10 +2,15 @@ package com.iformall.service.sm; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.sm.InviteCodeInfo; + +import java.util.List; public interface InviteCodeInfoService { ResultData useCode(WxCUserBasicInfo cUser, String code); Boolean isUse(WxCUserBasicInfo cUser); + + List getUseCodeUser(WxCUserBasicInfo cUser); } 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 274095f..aaad6fa 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 @@ -1,6 +1,7 @@ package com.iformall.service.sm.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.collect.Lists; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; @@ -8,11 +9,16 @@ import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.sm.InviteCode; import com.iformall.domain.po.sm.InviteCodeInfo; import com.iformall.mapper.InviteCodeInfoMapper; +import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.sm.InviteCodeInfoService; import com.iformall.service.sm.InviteCodeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; + +import java.util.List; @Service public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { @@ -23,6 +29,9 @@ public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { @Autowired private InviteCodeService inviteCodeService; + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + /** * 使用邀请码 * @@ -34,7 +43,7 @@ public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { @Override public ResultData useCode(WxCUserBasicInfo cUser, String code) { //查询code 是否存在,存在再去进行操作 - InviteCode info = inviteCodeService.getCodeInfo(code,null); + InviteCode info = inviteCodeService.getCodeInfo(code, null); if (!ObjectUtils.isEmpty(info)) { if (cUser.getId().equals(info.getUserId())) { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "不能使用自己的邀请码"); @@ -78,4 +87,23 @@ public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { return false; } + + @Override + public List getUseCodeUser(WxCUserBasicInfo cUser) { + List codeInfos = inviteCodeInfoMapper.selectList(new LambdaQueryWrapper() + .eq(InviteCodeInfo::getIsDel, 0) + .eq(InviteCodeInfo::getUserId, cUser.getId()) + .select(InviteCodeInfo::getEmail, InviteCodeInfo::getPhone, InviteCodeInfo::getUserId, InviteCodeInfo::getCreateDate)); + if (CollectionUtils.isEmpty(codeInfos)) { + return Lists.newArrayList(); + } + for (InviteCodeInfo info : codeInfos) { + WxCUserBasicInfo userBasicInfo = wxCUserBasicInfoService.getById(info.getUserId()); + if (!ObjectUtils.isEmpty(userBasicInfo)) { + info.setName(StringUtils.isEmpty(userBasicInfo.getName()) ? null : userBasicInfo.getName()); + info.setAvatarUrl(StringUtils.isEmpty(userBasicInfo.getAvatarUrl()) ? null : userBasicInfo.getAvatarUrl()); + } + } + return codeInfos; + } }