From d104e9b09a5e1da0c973e3b6c910c1f3a1b87da4 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 28 Apr 2025 12:05:49 +0800
Subject: [PATCH] feat(mall): 添加活动评论列表功能
---
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