zxl
5 天以前 d900bdc7b712666cdeafe36f01e485f4672e4651
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;
@@ -577,11 +574,20 @@
                log.info("当前分享不是今天的分享{}",shareId);
                return Result.ok().data(0);
            }
            if (currentUser.getId().equals(userId)) {
                //分享的用户自己点击了
                log.info("用户自己点击了自己的分享");
            // 除了视频外需要校验用户是否自己点击了自己的分享
            PrizeUserActionEnum actionEnum = PrizeUserActionEnum.select(addPrizeNumForm.getAddType());
            if (actionEnum == null) {
                log.info("当前类型不存在");
                return Result.ok().data(0);
            }
            if (!PrizeUserActionEnum.SHARE_GOODS_VIDEO.name().equals(actionEnum.name())) {
                if (currentUser.getId().equals(userId)) {
                    //分享的用户自己点击了
                    log.info("用户自己点击了自己的分享");
                    return Result.ok().data(0);
                }
            }
        }
        String userId = addPrizeNumForm.getUserId();
@@ -829,4 +835,46 @@
        LambdaQueryWrapper<AddPrizeRule> one = Wrappers.<AddPrizeRule>lambdaQuery().eq(AddPrizeRule::getRuleCode, ruleCode);
        return addPrizeRuleService.getOne(one);
    }
    @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);
    }
}