From 413a57e2524cb0b839d5d83d961de3b59814eb6e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 24 Oct 2025 16:53:11 +0800
Subject: [PATCH] feat(ai): 实现产品依赖解锁功能 - 在AiMemberAnswerServiceImpl中注入AiProductDependencyService和AiMemberProductUnlockService - 修改insure方法,根据答题分数解锁符合条件的产品 - 新增selectListByProductIds和insertList方法到AiMemberProductUnlockService - 实现产品依赖关系查询方法selectListByProductId到AiProductDependencyService- 在AiProductServiceImpl中增加产品状态判断逻辑,支持锁定和解锁状态显示 - 添加memberId字段到ApiProductPageDto用于查询用户已解锁产品 - 在ApiProductVo中新增state字段表示产品锁定/解锁状态
---
src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java | 19 +++++++++++++++++++
1 files changed, 19 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 5018e70..fdcf2d5 100644
--- a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java
+++ b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java
@@ -9,6 +9,7 @@
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;
@@ -17,6 +18,8 @@
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;
@@ -73,6 +76,10 @@
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;
}
@@ -100,6 +107,10 @@
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;
}
@@ -158,6 +169,14 @@
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