From ac9f19fc498970d7ac71c0e874c520c0e1d8ee32 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 12 Feb 2026 14:03:08 +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 |    6 ++++++
 src/main/resources/templates/febs/views/modules/ai/productQuestion/jobList.html             |   33 +++++++++++++++++++++++++++++++++
 4 files changed, 55 insertions(+), 0 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 75187a8..4835f9f 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
@@ -112,6 +112,12 @@
         return aiProductQuestionService.stateUpdate(ids, type);
     }
 
+    @PostMapping(value = "jobStateUpdate/{ids}")
+    @ControllerEndpoint(operation = "更新", exceptionMessage = "操作失败")
+    public FebsResponse jobStateUpdate(@PathVariable("ids") String ids) {
+        return aiProductQuestionService.jobStateUpdate(ids);
+    }
+
     @PostMapping(value = "productQuestionDelete/{ids}")
     @ControllerEndpoint(operation = "删除", exceptionMessage = "操作失败")
     public FebsResponse productQuestionDelete(@PathVariable("ids") String ids) {
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 9179208..2176589 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
@@ -41,6 +41,8 @@
 
     FebsResponse stateUpdate(String ids, Integer type);
 
+    FebsResponse jobStateUpdate(String ids);
+
     FebsResponse delete(String id);
 
     FebsResponse productQuestionDelete(String ids);
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 4b1630e..ec2e626 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
@@ -222,6 +222,20 @@
     }
 
     @Override
+    public FebsResponse jobStateUpdate(String ids) {
+        if (StrUtil.isEmpty(ids)) {
+            throw new FebsException("参数错误");
+        }
+        List<String> idList = StrUtil.split(ids, ',');
+        aiProductQuestionJobMapper.update(null,
+                Wrappers.lambdaUpdate(AiProductQuestionJob.class)
+                        .set(AiProductQuestionJob::getState, 2)
+                        .set(AiProductQuestionJob::getUpdatedTime, new Date())
+                        .in(AiProductQuestionJob::getId, idList));
+        return new FebsResponse().success().message("操作成功");
+    }
+
+    @Override
     public FebsResponse delete(String id) {
         AiProductQuestion entity = this.getById(id);
         if(ObjectUtil.isNotNull( entity)){
diff --git a/src/main/resources/templates/febs/views/modules/ai/productQuestion/jobList.html b/src/main/resources/templates/febs/views/modules/ai/productQuestion/jobList.html
index fb7b7f6..6f6ebee 100644
--- a/src/main/resources/templates/febs/views/modules/ai/productQuestion/jobList.html
+++ b/src/main/resources/templates/febs/views/modules/ai/productQuestion/jobList.html
@@ -49,6 +49,12 @@
     </div>
 </div>
 
+<script type="text/html" id="productQuestionToolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain" shiro:hasPermission="productQuestionList:aiAdd" lay-event="productQuestionJobStateClose">停止</button>
+    </div>
+</script>
+
 <script type="text/html" id="difficultyFormat">
     {{# if(d.difficulty == 1) { }}
     <span>简单</span>
@@ -127,6 +133,33 @@
         // 表格初始化
         initproductQuestionJobTable();
 
+        // 初始化表格操作栏各个按钮功能
+        table.on('toolbar(productQuestionJobToolbar)', function (obj) {
+            let data = obj.data,
+                layEvent = obj.event;
+            if (layEvent === 'productQuestionJobStateClose') {
+
+                var checkData = table.checkStatus('productQuestionJobTable').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)
+                    });
+                    productQuestionJobStateClose(ids.join(','));
+                });
+            }
+        });
+
+        function productQuestionJobStateClose(ids) {
+            febs.post(ctx + 'admin/productQuestion/jobStateUpdate/' + ids, null, function () {
+                febs.alert.success('操作成功');
+            });
+        }
+
         function initproductQuestionJobTable() {
             tableIns = febs.table.init({
                 elem: $view.find('table'),

--
Gitblit v1.9.1