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