From e16ac98e0d1049d18c508799d64f11d942c74920 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Sun, 27 Apr 2025 14:32:57 +0800 Subject: [PATCH] refactor(votesActivity): 修改自主报名字段名称 --- src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 163 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java index be63da8..fdcf2d5 100644 --- a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java +++ b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java @@ -1,20 +1,183 @@ package cc.mrbird.febs.vip.controller; import cc.mrbird.febs.common.entity.FebsConstant; +import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.utils.FebsUtil; +import cc.mrbird.febs.mall.entity.DataDictionaryCustom; +import cc.mrbird.febs.mall.entity.MallGoods; +import cc.mrbird.febs.mall.entity.MallGoodsCoupon; +import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; +import cc.mrbird.febs.mall.mapper.MallGoodsCouponMapper; +import cc.mrbird.febs.mall.service.IApiMallGoodsService; +import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo; +import cc.mrbird.febs.vip.entity.MallVipBenefits; +import cc.mrbird.febs.vip.entity.MallVipConfig; +import cc.mrbird.febs.vip.entity.MallVipConfigBenefits; +import cc.mrbird.febs.vip.service.IMallVipBenefitsService; +import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService; +import cc.mrbird.febs.vip.service.IMallVipConfigService; +import cc.mrbird.febs.vip.vo.VipSettingVo; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Controller("mallVipConfig") @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/vip/config") @RequiredArgsConstructor public class ViewVipConfigController { + private final IMallVipBenefitsService mallVipBenefitsService; + private final IApiMallGoodsService apiMallGoodsService; + private final MallGoodsCouponMapper mallGoodsCouponMapper; + private final IMallVipConfigService mallVipConfigService; + private final IMallVipConfigBenefitsService mallVipConfigBenefitsService; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @GetMapping(value = "/benefitsList") public String benefitsList() { return FebsUtil.view("modules/vip/vipBenefits-list"); } + + @GetMapping(value = "/vipBenefitsAdd") + public String vipBenefitsAdd() { + return FebsUtil.view("modules/vip/vipBenefits-add"); + } + + + @GetMapping(value = "/goodsSelect/{index}") + public String goodsSelect(@PathVariable("index") String index, Model model) { + model.addAttribute("tableIndex", index); + return FebsUtil.view("modules/vip/goods-select-list"); + } + + + @GetMapping(value = "/couponSelect/{index}") + public String couponSelect(@PathVariable("index") String index, Model model) { + model.addAttribute("tableIndex", index); + return FebsUtil.view("modules/vip/coupon-select"); + } + + @GetMapping("/editBenefits/{id}") + public String editBenefits(@PathVariable("id") Long id, Model model) { + MallVipBenefits vipBenefits = mallVipBenefitsService.findVipBenefitsById(id); + + List<Long> goodsIds = new ArrayList<>(); + List<Long> couponIds = new ArrayList<>(); + vipBenefits.getDetails().forEach(item -> { + if (StrUtil.isBlank(item.getContent())) { + return; + } + + if (item.getIsClick() == 2) { + return; + } + + if (item.getLinkType() == 2) { + goodsIds.add(Long.parseLong(item.getContent())); + } + + if (item.getLinkType() == 3) { + couponIds.add(Long.parseLong(item.getContent())); + } + }); + + List<MallGoods> goodsList = new ArrayList<>(); + if (CollUtil.isNotEmpty(goodsIds)) { + goodsList = apiMallGoodsService.listByIds(goodsIds); + } + + List<MallGoodsCoupon> coupons = new ArrayList<>(); + if (CollUtil.isNotEmpty(couponIds)) { + coupons = mallGoodsCouponMapper.selectBatchIds(couponIds); + } + + Map<Long, MallGoods> goodsMap = goodsList.stream().collect(Collectors.toMap(MallGoods::getId, MallGoods -> MallGoods)); + Map<Long, MallGoodsCoupon> couponMap = coupons.stream().collect(Collectors.toMap(MallGoodsCoupon::getId, MallGoodsCoupon -> MallGoodsCoupon)); + + vipBenefits.getDetails().forEach(item -> { + if (StrUtil.isBlank(item.getContent())) { + return; + } + + if (item.getIsClick() == 2) { + return; + } + + if (item.getLinkType() == 2) { + MallGoods mallGoods = goodsMap.get(Long.parseLong(item.getContent())); + if (mallGoods != null) { + item.setContentName(mallGoods.getGoodsName()); + } + } + + if (item.getLinkType() == 3) { + MallGoodsCoupon coupon = couponMap.get(Long.parseLong(item.getContent())); + if (coupon != null) { + item.setContentName(coupon.getName()); + } + } + }); + model.addAttribute("benefitsData", vipBenefits); + return FebsUtil.view("modules/vip/vipBenefits-edit"); + } + + @GetMapping(value = "/levelList") + public String levelList() { + return FebsUtil.view("modules/vip/vipConfig-list"); + } + + @GetMapping(value = "/levelAdd") + public String levelAdd() { + return FebsUtil.view("modules/vip/vipConfig-add"); + } + + @GetMapping(value = "/levelEdit/{id}") + public String levelEdit(@PathVariable("id") Long id, Model model) { + MallVipConfig vipConfig = mallVipConfigService.getById(id); + if (vipConfig.getType() == 1) { + MallGoods goods = apiMallGoodsService.getById(vipConfig.getTargetId()); + vipConfig.setTargetId(goods.getId()); + vipConfig.setTargetName(goods.getGoodsName()); + } + + LambdaQueryWrapper<MallVipConfigBenefits> configBenefitsQuery = new LambdaQueryWrapper<>(); + configBenefitsQuery.eq(MallVipConfigBenefits::getConfigId, vipConfig.getId()); + List<MallVipConfigBenefits> list = mallVipConfigBenefitsService.list(configBenefitsQuery); + + List<Long> benefitsIds = list.stream().map(MallVipConfigBenefits::getBenefitsId).collect(Collectors.toList()); + vipConfig.setBenefitsIdList(benefitsIds); + + model.addAttribute("configData", vipConfig); + return FebsUtil.view("modules/vip/vipConfig-edit"); + } + + @GetMapping(value = "/vipSetting") + public String vipSetting(Model model) { + DataDictionaryCustom data = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.VIP_DATE.getType(), DataDictionaryEnum.VIP_DATE.getCode()); + VipSettingVo setting = new VipSettingVo(); + setting.setVipDate(data.getValue()); + + DataDictionaryCustom couponData = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode()); + if (couponData != null && StrUtil.isNotBlank(couponData.getValue())) { + List<VipSettingUnAliveSettingBo> items = JSONObject.parseArray(couponData.getValue(), VipSettingUnAliveSettingBo.class); + setting.setItems(items); + } + + DataDictionaryCustom rule = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.VIP_SCORE_RULE.getType(), DataDictionaryEnum.VIP_SCORE_RULE.getCode()); + setting.setRule(rule.getValue()); + model.addAttribute("vipSetting", setting); + return FebsUtil.view("modules/vip/vip-setting"); + } } -- Gitblit v1.9.1