From bb942b08bcd590fe41d36015fa91d36fd428ade5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 15 Dec 2025 15:38:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9F=A5=E7=9C=8B=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=A4=A7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/opentype/OpenTypeController.java | 5 +- .../app/opentype/AppOpenTypeController.java | 2 - .../opentype/AppOpenTypeUserController.java | 44 +++++++++++++ .../app/recent/AppRecentController.java | 6 ++ .../recent/vo/AppLookWechatCountResVo.java | 21 +++++++ .../mysql/opentype/OpenTypeUserMapper.java | 2 +- .../service/opentype/OpenTypeServiceImpl.java | 5 ++ .../service/recent/OperationServiceImpl.java | 8 +-- .../member/service/recent/RecentService.java | 6 +- .../service/recent/RecentServiceImpl.java | 61 +++++++++++++------ .../member/service/user/BO/MemberExtBO.java | 21 +++++++ .../user/MemberRecentTagServiceImp.java | 2 +- .../service/user/MemberUserServiceImpl.java | 4 +- .../main/resources/mapper/OperationMapper.xml | 34 ++++++----- 14 files changed, 174 insertions(+), 47 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeUserController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppLookWechatCountResVo.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/opentype/OpenTypeController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/opentype/OpenTypeController.java index a2346b4..a7e0f71 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/opentype/OpenTypeController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/opentype/OpenTypeController.java @@ -48,7 +48,7 @@ public class OpenTypeController { private OpenTypeService openTypeService; @PostMapping("/update-paid") - @Operation(summary = "更新钱包充值为已充值") + @Operation(summary = "更新钱包充值为已充值(支付的回调)") @PermitAll public CommonResult updateWalletRechargerPaid(@Valid @RequestBody PayOrderNotifyReqDTO notifyReqDTO) { openTypeService.updateWalletRechargerPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()), notifyReqDTO.getPayOrderId()); @@ -56,7 +56,8 @@ public class OpenTypeController { } @PostMapping("/update-refunded") - @Operation(summary = "更新钱包充值为已退款") + @Operation(summary = "更新钱包充值为已退款(退款的回调)") + @PermitAll public CommonResult updateWalletRechargeRefunded(@RequestBody PayRefundNotifyReqDTO notifyReqDTO) { openTypeService.updateWalletRechargeRefunded(Long.valueOf(notifyReqDTO.getMerchantOrderId()), notifyReqDTO.getPayRefundId()); return success(true); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeController.java index d33b53e..76c6d8a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeController.java @@ -31,8 +31,6 @@ public class AppOpenTypeController { @Resource private OpenTypeService openTypeService; - - @GetMapping("/list") @Operation(summary = "查看全部开通会员列表") public CommonResult> getOpenTypeList(@Valid OpenTypePageReqVO pageReqVO) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeUserController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeUserController.java new file mode 100644 index 0000000..5291873 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/opentype/AppOpenTypeUserController.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.member.controller.app.opentype; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.opentype.vo.openType.OpenTypeRespVO; +import cn.iocoder.yudao.module.member.controller.admin.opentype.vo.openTypeUser.OpenTypeUserReqVO; +import cn.iocoder.yudao.module.member.controller.admin.opentype.vo.openTypeUser.OpenTypeUserRespVO; +import cn.iocoder.yudao.module.member.dal.mysql.opentype.OpenTypeUserMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - 会员开通记录") +@RestController +@RequestMapping("/member/open-type-user") +@Validated +public class AppOpenTypeUserController { + + @Resource + private OpenTypeUserMapper openTypeUserMapper; + + @GetMapping("/page") + @Operation(summary = "查看全部开通会员列表") + public CommonResult> getOpenTypeList(@Valid OpenTypeUserReqVO pageReqVO) { + IPage pageResult = openTypeUserMapper.page(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO); + + PageResult result = new PageResult(); + result.setTotal(pageResult.getTotal()); + result.setList(pageResult.getRecords()); + + return success(result); + } + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java index 74f519d..2b1850c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/AppRecentController.java @@ -75,6 +75,12 @@ public class AppRecentController { return success(recentService.lookWechat(getLoginUserId(), memberId)); } + @GetMapping("/look-wechat-count") + @Operation(summary = "今日查看微信次数") + public CommonResult lookWechatCount() { + return success(recentService.lookWechatCount(getLoginUserId())); + } + @PostMapping("/create/view-record") @Operation(summary = "添加用户预览记录") public CommonResult createViewRecord(@Valid @RequestBody AppRecentViewRecordReqVo dto) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppLookWechatCountResVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppLookWechatCountResVo.java new file mode 100644 index 0000000..485e95d --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/recent/vo/AppLookWechatCountResVo.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.member.controller.app.recent.vo; + +import lombok.Data; + +/** + * 微信查看次数响应 + */ +@Data +public class AppLookWechatCountResVo { + + /** + * 今日已查看的次数 + */ + private Integer todayCount = 0; + + /** + * 今日可查看的总次数 + */ + private Integer todayCountTotal = 0; + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/opentype/OpenTypeUserMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/opentype/OpenTypeUserMapper.java index 45587b1..e33c89a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/opentype/OpenTypeUserMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/opentype/OpenTypeUserMapper.java @@ -33,7 +33,7 @@ public interface OpenTypeUserMapper extends BaseMapperX { .eq(OpenTypeUserDO::getMemberId, memberId) .eq(OpenTypeUserDO::getStatus, OpenTypeUserStatusEnum.EFFICIENT.getType()) .eq(OpenTypeUserDO::getPayStatus, true) - .isNotNull(OpenTypeUserDO::getRefundStatus) + .isNull(OpenTypeUserDO::getRefundStatus) .gt(OpenTypeUserDO::getEndTime, LocalDateTime.now()) .orderByDesc(OpenTypeUserDO::getEndTime) .last("LIMIT 1") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/opentype/OpenTypeServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/opentype/OpenTypeServiceImpl.java index fe9bd30..29ac99d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/opentype/OpenTypeServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/opentype/OpenTypeServiceImpl.java @@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.member.enums.MemberErrorCode; import cn.iocoder.yudao.module.member.enums.opentype.OpenTypeUserStatusEnum; import cn.iocoder.yudao.module.member.service.config.MemberConfigService; import cn.iocoder.yudao.module.member.service.opentype.BO.OpenTypeExtBO; +import cn.iocoder.yudao.module.member.service.user.MemberRecentTagService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.pay.api.order.PayOrderApi; import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO; @@ -78,6 +79,8 @@ public class OpenTypeServiceImpl implements OpenTypeService { private MemberUserService memberUserService; @Resource private MemberConfigService memberConfigService; + @Resource + private MemberRecentTagService memberRecentTagService; @Resource private ChatApi chatApi; @@ -373,6 +376,8 @@ public class OpenTypeServiceImpl implements OpenTypeService { if (updateCount == 0) { throw exception(MemberErrorCode.EMPTY, "钱包充值更新支付状态失败,钱包充值记录不是【未支付】状态"); } + // 添加会员tag + memberRecentTagService.createOrUpdateVipTag(openTypeUserDO.getMemberId()); } /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/OperationServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/OperationServiceImpl.java index b16b25c..0c3ae86 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/OperationServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/OperationServiceImpl.java @@ -141,10 +141,10 @@ public class OperationServiceImpl implements OperationService { public Integer lookWechatCount(Long operateMemberId, Long memberId) { LocalDateTime now = LocalDateTime.now(); Long count = operationMapper.selectCount(new LambdaQueryWrapperX() - .eq(OperationDO::getOperatorMemberId, operateMemberId) - .eqIfPresent(OperationDO::getMemberId, memberId) - .eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_LOOK_WECHAT.getType()) - // .between(OperationDO::getCreateTime, now.with(LocalTime.MIN), now.with(LocalTime.MAX)) + .eq(OperationDO::getOperatorMemberId, operateMemberId) + .eqIfPresent(OperationDO::getMemberId, memberId) + .eq(OperationDO::getBizType, MemberRecentOperateEnum.MEMBER_LOOK_WECHAT.getType()) + .between(OperationDO::getCreateTime, now.with(LocalTime.MIN), now.with(LocalTime.MAX)) ); return Math.toIntExact(count); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java index 6315570..cec9688 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentService.java @@ -43,6 +43,11 @@ public interface RecentService { */ MemberWechatBO lookWechat(Long operateMemberId, Long memberId); + /** + * 今日查看微信的次数 + */ + AppLookWechatCountResVo lookWechatCount(Long loginUserId); + /** * 获得朋友圈 */ @@ -112,5 +117,4 @@ public interface RecentService { * 朋友圈我喜欢的、喜欢我的等总数统计 */ OperationTotalGroupRecentRespVO total(Long userId); - } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java index 91cc13c..c7b5575 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/recent/RecentServiceImpl.java @@ -7,10 +7,7 @@ import cn.iocoder.yudao.framework.common.util.number.NumberUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.api.thirdauth.ThirdAuthVo; import cn.iocoder.yudao.module.member.controller.admin.recent.vo.*; -import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppEvaluateDetailResVo; -import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentLikeReqVo; -import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentOperateReqVo; -import cn.iocoder.yudao.module.member.controller.app.recent.vo.AppRecentQuickPageVO; +import cn.iocoder.yudao.module.member.controller.app.recent.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.config.MemberConfigDO; import cn.iocoder.yudao.module.member.dal.dataobject.location.LocationDO; import cn.iocoder.yudao.module.member.dal.dataobject.photo.PhotoDO; @@ -76,8 +73,6 @@ public class RecentServiceImpl implements RecentService { private RecentMapper recentMapper; @Resource private OperationMapper operationMapper; - @Resource - private MemberRecentTagMapper memberRecentTagMapper; @Resource private MemberUserService memberUserService; @@ -156,7 +151,7 @@ public class RecentServiceImpl implements RecentService { LocationDO currentUserLastLocation = locationService.getCurrentUserLastLocation(); // 查询发送朋友圈用户 - convertRecentPageResVoSetupMember(result); + convertRecentPageResVoSetupMember(result, false); // 查询用户最新的位置 convertRecentPageResVoSetupLocation(result, currentUserLastLocation); // 用户tag @@ -313,6 +308,21 @@ public class RecentServiceImpl implements RecentService { return memberWechat; } + /** + * 今日查看微信的次数 + */ + @Override + public AppLookWechatCountResVo lookWechatCount(Long loginUserId) { + AppLookWechatCountResVo result = new AppLookWechatCountResVo(); + // 查询配置 + MemberConfigDO config = memberConfigService.getConfig(); + result.setTodayCountTotal(config.getVipLookWechtCout()); + // 今日已查看的次数 + Integer todayCount = operationService.lookWechatCount(loginUserId, null); + result.setTodayCount(todayCount); + return result; + } + @Override public RecentDO getRecent(Long id) { return recentMapper.selectById(id); @@ -326,7 +336,7 @@ public class RecentServiceImpl implements RecentService { IPage recentPageList = recentMapper.pageJoin(new Page(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO); List resultList = recentPageList.getRecords(); // 为RecentPageResVo设置Member信息 - convertRecentPageResVoSetupMember(resultList); + convertRecentPageResVoSetupMember(resultList, false); // 为RecentPageResVo设置OperationTotal信息 convertRecentPageResVoSetupOperationTotal(resultList); // 为RecentPageResVo设置Tag信息 @@ -341,6 +351,8 @@ public class RecentServiceImpl implements RecentService { public PageResult quickPage(AppRecentQuickPageVO bean) { // 查询当前用户信息 MemberUserDO operationUser = memberUserService.getUser(bean.getOperationMemberId()); + // 判断当前操作用户是不是VIP + boolean isVip = openTypeService.isUserOpenType(bean.getOperationMemberId()); // 查询当前用户设置 MemberRecentCfgDO operationCfg = memberRecentCfgService.getOrCreate(operationUser.getId()); RecentPageReqVO resultQuery = BeanUtil.toBean(bean, RecentPageReqVO.class); @@ -350,7 +362,7 @@ public class RecentServiceImpl implements RecentService { IPage recentPageList = recentMapper.pageJoin(new Page(bean.getPageNo(), bean.getPageSize()), resultQuery); List resultList = BeanUtils.toBean(recentPageList.getRecords(), RecentPageResVo.class); // 为RecentPageResVo设置Member信息 - convertRecentPageResVoSetupMember(resultList); + convertRecentPageResVoSetupMember(resultList, isVip); // 查询用户tag convertRecentPageResVoSetupTag(resultList); // 为RecentPageResVo设置OperationTotal信息 @@ -367,6 +379,8 @@ public class RecentServiceImpl implements RecentService { public PageResult quickUserPage(AppRecentQuickPageVO bean) { // 查询当前用户信息 MemberUserDO operationUser = memberUserService.getUser(bean.getOperationMemberId()); + // 查询当前用户是不是会员 + boolean isVip = openTypeService.isUserOpenType(operationUser.getId()); // 查询当前用户设置 MemberRecentCfgDO operationCfg = memberRecentCfgService.getOrCreate(operationUser.getId()); RecentPageReqVO resultQuery = BeanUtil.toBean(bean, RecentPageReqVO.class); @@ -389,10 +403,14 @@ public class RecentServiceImpl implements RecentService { IPage recentPageList = recentMapper.pageUserJoin(new Page(bean.getPageNo(), bean.getPageSize()), resultQuery); List resultList = BeanUtils.toBean(recentPageList.getRecords(), RecentPageResVo.class); // 为RecentPageResVo设置Member信息 - convertRecentPageResVoSetupMember(resultList); + convertRecentPageResVoSetupMember(resultList, isVip); // 如果是`新人``女生`模糊`头像`和`用户名` List dimList = Arrays.asList(MemberRecentSceneEnum.SQUARE_NEW_PERSON, MemberRecentSceneEnum.SQUARE_FEMALE); - if (dimList.contains(bean.getScene())) { + // 查询用户tag + convertRecentPageResVoSetupTag(resultList); + // 设置用户图片/视频数量 + convertRecentPageResVoSetupPhotoExt(resultList); + if (dimList.contains(bean.getScene()) && !isVip) { for (RecentPageResVo v : resultList) { if (ObjectUtil.isNotEmpty(v.getMember()) && ObjectUtil.isNotEmpty(v.getMember().getMemberNickname())) { // 如果是自己不处理 @@ -404,10 +422,6 @@ public class RecentServiceImpl implements RecentService { } } } - // 查询用户tag - convertRecentPageResVoSetupTag(resultList); - // 设置用户图片/视频数量 - convertRecentPageResVoSetupPhotoExt(resultList); return new PageResult<>(resultList, recentPageList.getTotal()); } @@ -510,7 +524,7 @@ public class RecentServiceImpl implements RecentService { if (ObjectUtil.isEmpty(pageList)) return new PageResult<>(); resultList = BeanUtil.copyToList(pageList.getRecords(), RecentPageResVo.class); // 添加用户信息 - convertRecentPageResVoSetupMember(resultList); + convertRecentPageResVoSetupMember(resultList, false); return new PageResult(resultList, pageList.getTotal()); } @@ -556,10 +570,13 @@ public class RecentServiceImpl implements RecentService { */ @Override public RecentPageResVo getRecentUserByUserId(Long operateUserId, Long userId) { + // 判断当前操作用户是不是VIP + boolean isVip = openTypeService.isUserOpenType(operateUserId); + RecentPageResVo result = new RecentPageResVo(); result.setMemberId(userId); // 添加用户信息 - convertRecentPageResVoSetupMember(result); + convertRecentPageResVoSetupMember(result, isVip); // 查询用户最新的位置 LocationDO currentUserLastLocation = locationService.getCurrentUserLastLocation(); convertRecentPageResVoSetupLocation(result, currentUserLastLocation); @@ -623,13 +640,16 @@ public class RecentServiceImpl implements RecentService { /** * 为RecentPageResVo设置Member信息 */ - private void convertRecentPageResVoSetupMember(List list) { + private void convertRecentPageResVoSetupMember(List list, boolean isVip) { if (ObjectUtil.isEmpty(list)) return; List memberIds = list.stream().map(RecentPageResVo::getMemberId).collect(Collectors.toList()); List memberList = memberUserService.getUserExtList(memberIds); Map memberMap = IterUtil.toMap(memberList, MemberExtBO::getMemberId); for (RecentPageResVo entity : list) { MemberExtBO member = memberMap.get(entity.getMemberId()); + if (!isVip && ObjectUtil.isNotEmpty(member) && ObjectUtil.isNotEmpty(member.getWechatNum())) { + member.setWechatNum(member.getwechatMaskString()); + } entity.setMember(member); } } @@ -654,9 +674,12 @@ public class RecentServiceImpl implements RecentService { } } - private void convertRecentPageResVoSetupMember(RecentPageResVo detail) { + private void convertRecentPageResVoSetupMember(RecentPageResVo detail, boolean isVip) { if (ObjectUtil.isEmpty(detail)) return; MemberExtBO member = memberUserService.getUserExt(detail.getMemberId()); + if (!isVip && ObjectUtil.isNotEmpty(member) && ObjectUtil.isNotEmpty(member.getWechatNum())) { + member.setWechatNum(member.getwechatMaskString()); + } detail.setMember(member); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java index 7740403..9e631e6 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/BO/MemberExtBO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.member.service.user.BO; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AccessLevel; import lombok.Data; +import lombok.Getter; +import lombok.Setter; import java.time.LocalDateTime; @@ -47,4 +50,22 @@ public class MemberExtBO { @Schema(description = "最近登录时间") private LocalDateTime appRefreshDate; + + public String getwechatMaskString() { + String str = this.wechatNum; + if (str == null || str.length() <= 2) { + return "**"; + } + char first = str.charAt(0); + char last = str.charAt(str.length() - 1); + int middleLength = str.length() - 2; + StringBuilder masked = new StringBuilder(); + masked.append(first); + for (int i = 0; i < middleLength; i++) { + masked.append('*'); + } + masked.append(last); + return masked.toString(); + } + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java index c053def..d838d1b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberRecentTagServiceImp.java @@ -154,7 +154,7 @@ public class MemberRecentTagServiceImp implements MemberRecentTagService { boolean isVip = openTypeService.isUserOpenType(memberId); MemberRecentTagDO tag = memberRecentTagMapper.selectOne(new LambdaQueryWrapperX() .eq(MemberRecentTagDO::getMemberId, memberId) - .eq(MemberRecentTagDO::getTagBizType, MemberRecentTagEnum.NEW_PERSON.getType()) + .eq(MemberRecentTagDO::getTagBizType, MemberRecentTagEnum.VIP.getType()) ); // 是vip if (isVip) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 62c742c..5c4b9e4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -186,9 +186,7 @@ public class MemberUserServiceImpl implements MemberUserService { entity.setAppRefreshDate(member.getAppRefreshDate()); entity.setMemberLat(member.getLat()); entity.setMemberLng(member.getLng()); - if (ObjectUtil.isNotEmpty(member.getWechatNum())) { - entity.setWechatNum(member.getwechatMaskString()); - } + entity.setWechatNum(member.getWechatNum()); return entity; }).collect(Collectors.toList()); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/OperationMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/OperationMapper.xml index 114e7cd..919f051 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/OperationMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/OperationMapper.xml @@ -27,12 +27,14 @@ resultType="cn.iocoder.yudao.module.member.controller.admin.recent.vo.OperationTotalGroupRecentRespVO"> select sum(if(a.biz_type = '1' and a.cancel_time is null, 1, 0)) as likeTotal, - sum(if(a.biz_type = '1' and a.cancel_time is null and a.operator_member_id = #{dto.memberId}, 1, 0)) as likeItTotal, + sum(if(a.biz_type = '1' and a.cancel_time is null and a.operator_member_id = #{dto.memberId}, 1, 0)) as + likeItTotal, sum(if(a.biz_type = '1' and a.cancel_time is null and a.member_id = #{dto.memberId}, 1, 0)) as likeMeTotal, sum(if(a.biz_type = '2', 1, 0)) as reportTotal, sum(if(a.biz_type = '3', 1, 0)) as shieldTotal, sum(if(a.biz_type = '4' and a.cancel_time is null, 1, 0)) as userLikeTotal, - sum(if(a.biz_type = '4' and a.cancel_time is null and a.operator_member_id = #{dto.memberId}, 1, 0)) as userLikeItTotal, + sum(if(a.biz_type = '4' and a.cancel_time is null and a.operator_member_id = #{dto.memberId}, 1, 0)) as + userLikeItTotal, sum(if(a.biz_type = '4' and a.cancel_time is null and a.member_id = #{dto.memberId}, 1, 0)) as userLikeMeTotal, a.biz_type as bizType, a.member_recent_id as memberRecentId @@ -46,15 +48,19 @@