From 8240ad4079ecb4562451c92a4d436a91a9dcf0ca Mon Sep 17 00:00:00 2001
From: zhujie <leon.zhu@cloudroam.com.cn>
Date: 星期五, 18 四月 2025 15:18:33 +0800
Subject: [PATCH] 邀请有礼
---
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