From e9d3f263ad049ea59e3d5fa8235e6a7d808f2183 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 03 Feb 2026 14:07:54 +0800
Subject: [PATCH] feat(ai): 新增产品题库问题删除功能 产品题库需要批量删除

---
 src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java                       |    2 ++
 src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java              |   14 ++++++++++++++
 src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java |    8 +++++++-
 src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html                |   24 ++++++++++++++++++++++++
 4 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java b/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
index 8fc94e9..67031b3 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
@@ -86,11 +86,17 @@
     }
 
     @PostMapping(value = "stateUpdate/{type}/{ids}")
-    @ControllerEndpoint(operation = "更新", exceptionMessage = "更新失败")
+    @ControllerEndpoint(operation = "更新", exceptionMessage = "操作失败")
     public FebsResponse stateUpdate(@PathVariable("ids") String ids, @PathVariable("type") Integer type) {
         return aiProductQuestionService.stateUpdate(ids, type);
     }
 
+    @PostMapping(value = "productQuestionDelete/{ids}")
+    @ControllerEndpoint(operation = "删除", exceptionMessage = "操作失败")
+    public FebsResponse productQuestionDelete(@PathVariable("ids") String ids) {
+        return aiProductQuestionService.productQuestionDelete(ids);
+    }
+
     @GetMapping("delete/{id}")
     @ControllerEndpoint(operation = "删除", exceptionMessage = "操作失败")
     public FebsResponse delete(
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
index 49b0835..bc75b00 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
@@ -40,6 +40,8 @@
 
     FebsResponse delete(String id);
 
+    FebsResponse productQuestionDelete(String ids);
+
     List<AiProductQuestion> questionTree(String companyId);
 
     List<AiProductQuestion> productQuestionTree(LambdaQueryWrapper<AiProductQuestion> aiProductQuestionLambdaQueryWrapper);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
index 85818c2..e640397 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
@@ -206,6 +206,20 @@
     }
 
     @Override
+    public FebsResponse productQuestionDelete(String ids) {
+        if (StrUtil.isEmpty(ids)) {
+            throw new FebsException("参数错误");
+        }
+        List<String> idList = StrUtil.split(ids, ',');
+        this.update(null,
+                Wrappers.lambdaUpdate(AiProductQuestion.class)
+                        .set(AiProductQuestion::getState, 2)
+                        .set(AiProductQuestion::getUpdatedTime, new Date())
+                        .in(AiProductQuestion::getId, idList));
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
     public List<AiProductQuestion> questionTree(String companyId) {
         LambdaQueryWrapper<AiProductQuestion> query = Wrappers.lambdaQuery(AiProductQuestion.class);
         if (StrUtil.isNotEmpty(companyId)){
diff --git a/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html b/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
index 16447b4..246eb71 100644
--- a/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
+++ b/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
@@ -55,6 +55,7 @@
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain" shiro:hasPermission="productQuestionList:aiAdd" lay-event="productQuestionAiAdd">AI新增</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain" shiro:hasPermission="productQuestionList:aiAdd" lay-event="productQuestionStateOpen">启用</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain" shiro:hasPermission="productQuestionList:aiAdd" lay-event="productQuestionStateClose">禁用</button>
+        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain" shiro:hasPermission="productQuestionList:aiAdd" lay-event="productQuestionDelete">删除</button>
     </div>
 </script>
 
@@ -236,6 +237,21 @@
                     productQuestionStateUpdate(ids.join(','), 0);
                 });
             }
+            if (layEvent === 'productQuestionDelete') {
+
+                var checkData = table.checkStatus('productQuestionTable').data;
+                if (checkData.length <= 0) {
+                    febs.alert.warn('请选择');
+                    return;
+                }
+                febs.modal.confirm('删除', '确定?', function () {
+                    var ids = [];
+                    layui.each(checkData, function (key, item) {
+                        ids.push(item.id)
+                    });
+                    productQuestionDelete(ids.join(','));
+                });
+            }
         });
 
 
@@ -246,6 +262,14 @@
             });
         }
 
+
+
+        function productQuestionDelete(ids) {
+            febs.post(ctx + 'admin/productQuestion/productQuestionDelete/'+ ids, null, function () {
+                febs.alert.success('操作成功');
+            });
+        }
+
         function initProductQuestionTable() {
             tableIns = febs.table.init({
                 elem: $view.find('table'),

--
Gitblit v1.9.1