framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeDrawVO.java
@@ -30,7 +30,7 @@ /** 优惠卷id */ @ApiModelProperty("优惠卷id") private Long couponId; private String couponId; /** 奖品内容 */ @ApiModelProperty("奖品内容") 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; @@ -169,6 +170,30 @@ @Override public Result grantRecord(String prizeActivityId) { return Result.ok().data(baseMapper.grantRecord(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 <= 2) { return trimNick; } 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); } } framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java
@@ -10,10 +10,7 @@ import cn.lili.modules.lmk.domain.entity.*; import cn.lili.modules.lmk.domain.form.AddPrizeNumForm; import cn.lili.modules.lmk.domain.query.PrizeRecordTimeQuery; import cn.lili.modules.lmk.domain.vo.PrizeDetailVO; import cn.lili.modules.lmk.domain.vo.PrizeProbabilityVO; import cn.lili.modules.lmk.domain.vo.PrizeRecordTimeVO; import cn.lili.modules.lmk.domain.vo.PrizeResultVO; import cn.lili.modules.lmk.domain.vo.*; import cn.lili.modules.lmk.enums.general.*; import cn.lili.modules.lmk.service.*; import cn.lili.modules.member.entity.dos.Member; @@ -842,6 +839,42 @@ @Override public Result getPrizeRule() { List<AddPrizeRule> list = addPrizeRuleService.list(Wrappers.<AddPrizeRule>lambdaQuery().orderByDesc(AddPrizeRule::getId)); AuthUser currentUser = UserContext.getCurrentUser(); if (Objects.nonNull(currentUser)) { String id = currentUser.getId(); LambdaQueryWrapper<PrizeActivity> eq = Wrappers.<PrizeActivity>lambdaQuery() .eq(PrizeActivity::getDeleteFlag, Boolean.FALSE) .eq(PrizeActivity::getEnableStatus, PrizeActivityStatusEnum.ON.name()) .eq(PrizeActivity::getPopup, Boolean.TRUE); List<PrizeActivity> activities = prizeActivityService.list(eq); PrizeActivity activity = activities.get(0); if (Objects.nonNull(activity)) { try { List<PrizeNumber> prizeNumberList = getPrizeNumberList(activity.getId(), id); Set<String> completedActionSet = prizeNumberList.stream().map(PrizeNumber::getUserAction).collect(Collectors.toSet()); List<AddPrizeRule> finalRuleList = list.stream() .map(rule -> { if (Objects.isNull(rule.getRuleCode())) { return rule; } boolean isCompleted = completedActionSet.contains(rule.getRuleCode()); if (!isCompleted) { return rule; } AddPrizeRule completedRule = new AddPrizeRule(); BeanUtils.copyProperties(rule, completedRule); String originalName = Optional.ofNullable(completedRule.getRuleName()).orElse(""); if (!originalName.contains("(已完成)")) { completedRule.setRuleName(originalName + "(已完成)"); } return completedRule; }).collect(Collectors.toList()); return Result.ok().data(finalRuleList); } catch (Exception e) { return Result.ok().data(list); } } } return Result.ok().data(list); } } framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -757,6 +757,7 @@ } else if (VideoContentTypeEnum.IMG.getValue().equals(v.getVideoContentType()) && StringUtils.isNotBlank(v.getVideoImgs())) { v.setImgs(JSON.parseArray(v.getVideoImgs(), String.class).stream().map(fileKey -> cosUtil.getPreviewUrl(fileKey)).collect(Collectors.toList())); v.setVideoUrl(""); } if (CollectionUtils.isNotEmpty(v.getGoodsList())) { v.getGoodsList().stream().forEach(goods -> {