peng
2 天以前 40d3bb9fe638a0bd79e829e7fd5114871101390b
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeDrawServiceImpl.java
@@ -2,6 +2,7 @@
import cn.lili.common.utils.StringUtils;
import cn.lili.modules.lmk.domain.entity.ActivityRefPrize;
import cn.lili.modules.lmk.domain.vo.GrantRecordVO;
import cn.lili.modules.lmk.service.ActivityRefPrizeService;
import cn.lili.modules.promotion.entity.vos.CouponVO;
import cn.lili.modules.promotion.service.CouponService;
@@ -132,10 +133,10 @@
        IPage<PrizeDrawVO> page = PageUtil.getPage(query, PrizeDrawVO.class);
        baseMapper.getPage(page, query);
        for (PrizeDrawVO vo : page.getRecords()) {
            if (vo.getPrizeCover() != null && StringUtils.isNotBlank(vo.getPrizeCover())){
            if (StringUtils.isNotBlank(vo.getPrizeCover())){
                vo.setPrizeCoverUrl(cOSUtil.getPreviewUrl(vo.getPrizeCover()));
            }
            if (vo.getPrizeImg() != null && StringUtils.isNotBlank(vo.getPrizeImg())){
            if (StringUtils.isNotBlank(vo.getPrizeImg())){
                vo.setPrizeImgUrl(cOSUtil.getPreviewUrl(vo.getPrizeImg()));
            }
        }
@@ -166,4 +167,36 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result grantRecord(String prizeActivityId) {
        List<GrantRecordVO> data = baseMapper.grantRecord(prizeActivityId);
        for (GrantRecordVO datum : data) {
            datum.setNickname(nicknameDesensitize(datum.getNickname()));
        }
        return Result.ok().data(data);
    }
    /**
     * 昵称脱敏:保留前1后1位,中间*填充(长度≤2不脱敏)
     */
    public static String nicknameDesensitize(String nickname) {
        if (nickname == null || nickname.trim().isEmpty()) {
            return nickname;
        }
        String trimNick = nickname.trim();
        int length = trimNick.length();
        // JDK 8 不支持 String.repeat,用 StringBuilder 拼接脱敏字符
        if (length ==1){
            return trimNick + "*";
        }
        if (length == 2) {
            return trimNick.charAt(0) + "*";
        }
        StringBuilder mask = new StringBuilder();
        for (int i = 0; i < length - 2; i++) {
            mask.append('*'); // 中间填充 *,长度 = 总长度 - 2(前1位 + 后1位)
        }
        return trimNick.charAt(0) + mask.toString() + trimNick.substring(length - 1);
    }
}