From acfa1f567339c5b1f2795cb302446eadab2d56cd Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期五, 18 四月 2025 15:30:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/mzl/flower/service/customer/CustomerCenterService.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 57 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerCenterService.java b/src/main/java/com/mzl/flower/service/customer/CustomerCenterService.java index e161096..50f4126 100644 --- a/src/main/java/com/mzl/flower/service/customer/CustomerCenterService.java +++ b/src/main/java/com/mzl/flower/service/customer/CustomerCenterService.java @@ -1,16 +1,25 @@ package com.mzl.flower.service.customer; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.dto.response.customer.CustomerTjDTO; +import com.mzl.flower.dto.response.customer.InviteDTO; +import com.mzl.flower.dto.response.customer.InviteRewardDTO; import com.mzl.flower.entity.customer.BrowseHistory; import com.mzl.flower.entity.customer.Collect; import com.mzl.flower.entity.customer.Follow; import com.mzl.flower.mapper.customer.BrowseHistoryMapper; import com.mzl.flower.mapper.customer.CollectMapper; +import com.mzl.flower.mapper.customer.CustomerMapper; import com.mzl.flower.mapper.customer.FollowMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Service @Transactional @@ -20,11 +29,13 @@ private final FollowMapper followMapper; private final CollectMapper collectMapper; private final BrowseHistoryMapper browseHistoryMapper; + private final CustomerMapper customerMapper; - public CustomerCenterService(FollowMapper followMapper, CollectMapper collectMapper, BrowseHistoryMapper browseHistoryMapper) { + public CustomerCenterService(FollowMapper followMapper, CollectMapper collectMapper, BrowseHistoryMapper browseHistoryMapper, CustomerMapper customerMapper) { this.followMapper = followMapper; this.collectMapper = collectMapper; this.browseHistoryMapper = browseHistoryMapper; + this.customerMapper = customerMapper; } @@ -35,4 +46,49 @@ dto.setBrowseNum(browseHistoryMapper.selectCount(new LambdaQueryWrapper<BrowseHistory>().eq(BrowseHistory::getUserId, userId))); return dto; } + + //获取所有的邀请记录和当前登陆人的邀请记录 + public InviteRewardDTO customerReward() { + InviteRewardDTO rewardto = new InviteRewardDTO(); + List<InviteDTO> reward = customerMapper.getReward(); + List<InviteDTO> myreward = customerMapper.getMyReward(SecurityUtils.getUserId()); + List<InviteDTO> processedReward = reward.stream() + .filter(Objects::nonNull) + .peek(dto -> { + dto.setUserId(maskAll(dto.getUserId())); + dto.setUserName(maskMiddle(dto.getUserName(), 4)); + }).collect(Collectors.toList()); + + rewardto.setSuccessInvite(processedReward); + List<InviteDTO> processedMyReward = myreward.stream() + .filter(Objects::nonNull) + .peek(dto -> { + dto.setUserId(maskAll(dto.getUserId())); + dto.setUserName(maskMiddle(dto.getUserName(), 4)); + }).collect(Collectors.toList()); + rewardto.setMyInvite(processedMyReward); + return rewardto; + } + + + // 全部字符替换为* + private String maskAll(String input) { + if (input == null || input.isEmpty()) { + return input; + } + return input.replaceAll(".", "*"); + } + + // 中间部分替换(最多maxStars个*) + private String maskMiddle(String input, int maxStars) { + if (input == null || input.length() <= 2) { + return input == null ? null : "*"; // 1-2个字符直接返回* + } + + int length = input.length(); + int stars = Math.min(maxStars, length - 2); // 最多maxStars个* + + String starsStr = String.join("", Collections.nCopies(stars, "*")); + return input.charAt(0) + starsStr + input.charAt(length - 1); + } } -- Gitblit v1.9.3