From 600ea96a245bd5522c489fafc4993cafa0ce36db Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 01 Aug 2025 14:15:25 +0800 Subject: [PATCH] feat(ai): 新增产品知识点功能 --- src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java | 62 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java b/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java index 65e03e8..8b34ca6 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java @@ -1,9 +1,19 @@ package cc.mrbird.febs.ai.controller.product; import cc.mrbird.febs.ai.entity.AiProduct; +import cc.mrbird.febs.ai.entity.AiProductPoint; +import cc.mrbird.febs.ai.entity.AiProductPointLink; +import cc.mrbird.febs.ai.res.AdminMoveChooseInfoVo; +import cc.mrbird.febs.ai.service.AiProductPointLinkService; +import cc.mrbird.febs.ai.service.AiProductPointService; import cc.mrbird.febs.ai.service.AiProductService; import cc.mrbird.febs.common.entity.FebsConstant; import cc.mrbird.febs.common.utils.FebsUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; @@ -11,6 +21,12 @@ 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.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * @author Administrator @@ -21,7 +37,9 @@ public class ViewController { - private final AiProductService service; + private final AiProductService aiProductService; + private final AiProductPointLinkService aiProductPointLinkService; + private final AiProductPointService aiProductPointService; @GetMapping("list") @RequiresPermissions("productList:view") @@ -40,8 +58,48 @@ @GetMapping("info/{id}") @RequiresPermissions("productList:info") public String artInfo(@PathVariable String id, Model model) { - AiProduct entity = service.getById(id); + AiProduct entity = aiProductService.getById(id); model.addAttribute("aiProduct", entity); return FebsUtil.view("modules/ai/product/info"); } + + + + @GetMapping("pointSet/{id}") + @RequiresPermissions("productList:pointSet") + public String pointSet(@PathVariable String id, Model model) { + List<AdminMoveChooseInfoVo> vos = new ArrayList<>(); + Set<String> productIds = new HashSet<>(); + + AiProduct entity = aiProductService.getById(id); + if(ObjectUtil.isNotNull(entity)){ + //右侧数据 + LambdaQueryWrapper<AiProductPointLink> query = Wrappers.lambdaQuery(AiProductPointLink.class); + if(StrUtil.isNotEmpty(id)){ + query.eq(AiProductPointLink::getProductId, id); + } + List<AiProductPointLink> selectedList = aiProductPointLinkService.selectListByQuery(query); + if(CollUtil.isNotEmpty(selectedList)){ + //stream流操作happyMemberLabelRecords,获取memberId的set集合 + productIds = selectedList.stream().map(AiProductPointLink::getProductPointId).collect(Collectors.toSet()); + } + + //左侧数据 + List<AiProductPoint> allList = aiProductPointService.pointTree(); + if(CollUtil.isNotEmpty(allList)){ + //stream流操作mallMembers,生成一个新的List<MallMemberVo> + vos = allList.stream().map(AiProductPoint -> { + AdminMoveChooseInfoVo vo = new AdminMoveChooseInfoVo(); + vo.setId(AiProductPoint.getId()); + vo.setName(AiProductPoint.getTitle()); + return vo; + }).collect(Collectors.toList()); + } + } + + model.addAttribute("pointAll", vos); + model.addAttribute("pointSelected", productIds); + model.addAttribute("chooseId", id); + return FebsUtil.view("modules/ai/product/pointSet"); + } } -- Gitblit v1.9.1