From a0975d3f7bfbe66b6a9dc6967079db6b6ff5a3e3 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 02 Feb 2026 14:27:29 +0800
Subject: [PATCH] feat(ai): 添加AI产品题目生成任务功能
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
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 06a3247..7c51450 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
@@ -1,6 +1,7 @@
package cc.mrbird.febs.ai.service.impl;
import cc.mrbird.febs.ai.entity.*;
+import cc.mrbird.febs.ai.mapper.AiProductQuestionJobMapper;
import cc.mrbird.febs.ai.mapper.AiProductQuestionMapper;
import cc.mrbird.febs.ai.req.AiProductQuestionAiDto;
import cc.mrbird.febs.ai.service.AiProductQuestionItemService;
@@ -9,9 +10,12 @@
import cc.mrbird.febs.ai.util.UUID;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.mall.entity.MallMember;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -43,6 +47,7 @@
public class AiProductQuestionServiceImpl extends ServiceImpl<AiProductQuestionMapper, AiProductQuestion> implements AiProductQuestionService {
private final AiProductQuestionMapper aiProductQuestionMapper;
+ private final AiProductQuestionJobMapper aiProductQuestionJobMapper;
private final AiProductQuestionItemService aiProductQuestionItemService;
private final AiService aiService;
@@ -59,8 +64,27 @@
if (StrUtil.isNotEmpty(dto.getCompanyId())){
query.eq(AiProductQuestion::getCompanyId, dto.getCompanyId());
}
+ if (StrUtil.isNotEmpty(dto.getProductCategoryId())){
+ query.eq(AiProductQuestion::getProductCategoryId, dto.getProductCategoryId());
+ }
query.ne(AiProductQuestion::getState, 2);
+ query.orderByDesc(AiProductQuestion::getCreatedTime);
Page<AiProductQuestion> pages = aiProductQuestionMapper.selectPage(page, query);
+ return pages;
+ }
+
+ @Override
+ public IPage<AiProductQuestionJob> listJobInPage(AiProductQuestionJob dto, QueryRequest request) {
+ Page<AiProductQuestionJob> page = new Page<>(request.getPageNum(), request.getPageSize());
+ LambdaQueryWrapper<AiProductQuestionJob> query = Wrappers.lambdaQuery(AiProductQuestionJob.class);
+ if (StrUtil.isNotEmpty(dto.getCompanyId())){
+ query.eq(AiProductQuestionJob::getCompanyId, dto.getCompanyId());
+ }
+ if (StrUtil.isNotEmpty(dto.getProductCategoryId())){
+ query.eq(AiProductQuestionJob::getProductCategoryId, dto.getProductCategoryId());
+ }
+ query.orderByDesc(AiProductQuestionJob::getCreatedTime);
+ Page<AiProductQuestionJob> pages = aiProductQuestionJobMapper.selectPage(page, query);
return pages;
}
@@ -151,6 +175,20 @@
}
@Override
+ public FebsResponse stateUpdate(String ids, Integer type) {
+ if (StrUtil.isEmpty(ids)) {
+ throw new FebsException("参数错误");
+ }
+ List<String> idList = StrUtil.split(ids, ',');
+ this.update(null,
+ Wrappers.lambdaUpdate(AiProductQuestion.class)
+ .set(AiProductQuestion::getState, type)
+ .set(AiProductQuestion::getUpdatedTime, new Date())
+ .in(AiProductQuestion::getId, idList));
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
public FebsResponse delete(String id) {
AiProductQuestion entity = this.getById(id);
if(ObjectUtil.isNotNull( entity)){
@@ -227,6 +265,26 @@
return new FebsResponse().success().message("操作成功");
}
+ @Override
+ public FebsResponse aiAddV2(AiProductQuestionAiDto dto) {
+ String companyId = dto.getCompanyId();
+ String productCategoryId = dto.getProductCategoryId();
+ Integer questionCnt = dto.getQuestionCnt();
+ String query = dto.getQuery();
+ Integer difficulty = dto.getDifficulty();
+ Date createdTime = new Date();
+ AiProductQuestionJob aiProductQuestionJob = new AiProductQuestionJob();
+ aiProductQuestionJob.setId(UUID.getSimpleUUIDString());
+ aiProductQuestionJob.setCompanyId(companyId);
+ aiProductQuestionJob.setProductCategoryId(productCategoryId);
+ aiProductQuestionJob.setTitle(query);
+ aiProductQuestionJob.setQuestionCnt(questionCnt);
+ aiProductQuestionJob.setDifficulty(difficulty);
+ aiProductQuestionJob.setCreatedTime(createdTime);
+ aiProductQuestionJobMapper.insert(aiProductQuestionJob);
+ return new FebsResponse().success().message("操作成功");
+ }
+
/**
* 解析AI返回的包含问题和答案的JSON字符串
* @param aiResponse AI返回的原始响应字符串
--
Gitblit v1.9.1