diff --git a/RuoYi-Vue-Plus-SpringAI技术方案.txt b/RuoYi-Vue-Plus-SpringAI技术方案.txt
new file mode 100644
index 0000000..81f4300
--- /dev/null
+++ b/RuoYi-Vue-Plus-SpringAI技术方案.txt
@@ -0,0 +1,361 @@
+RuoYi-Vue-Plus + Spring AI 技术方案
+
+==========================================
+1. 项目概述
+==========================================
+
+1.1 项目背景
+- 基于RuoYi-Vue-Plus框架构建企业级管理系统
+- 集成Spring AI提供智能化功能
+- 支持AI对话、智能分析、自动化处理等能力
+
+1.2 技术栈
+前端技术栈:
+- Vue 3 + TypeScript
+- Ant Design Vue
+- Vite构建工具
+- Pinia状态管理
+- Vue Router路由管理
+
+后端技术栈:
+- Spring Boot 3.x
+- Spring AI 0.8.x
+- MyBatis Plus
+- Redis缓存
+- MySQL数据库
+- Spring Security安全框架
+
+==========================================
+2. 系统架构设计
+==========================================
+
+2.1 整体架构
+┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
+│ 前端层 │ │ 网关层 │ │ 服务层 │
+│ Vue3 + TS │───▶│ Gateway │───▶│ Spring Boot │
+│ Ant Design │ │ 统一入口 │ │ Spring AI │
+└─────────────────┘ └─────────────────┘ └─────────────────┘
+ │
+┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
+│ 数据层 │ │ 缓存层 │ │ AI服务层 │
+│ MySQL │◀───│ Redis │◀───│ Spring AI │
+│ 主从分离 │ │ 分布式缓存 │ │ OpenAI API │
+└─────────────────┘ └─────────────────┘ └─────────────────┘
+
+2.2 模块划分
+- admin-pc: 管理后台前端
+- module-system: 系统管理模块
+- module-common: 公共模块
+- module-pay: 支付模块
+- module-base: 基础模块
+
+==========================================
+3. Spring AI集成方案
+==========================================
+
+3.1 依赖配置
+```xml
+
+ org.springframework.ai
+ spring-ai-openai-spring-boot-starter
+ 0.8.0
+
+```
+
+3.2 配置文件
+```yaml
+spring:
+ ai:
+ openai:
+ api-key: ${OPENAI_API_KEY}
+ base-url: https://api.openai.com/v1
+ chat:
+ options:
+ model: gpt-3.5-turbo
+ temperature: 0.7
+ max-tokens: 1000
+```
+
+3.3 AI服务层设计
+```java
+@Service
+public class AIService {
+
+ @Autowired
+ private OpenAiChatClient chatClient;
+
+ // 智能对话
+ public String chat(String message) {
+ return chatClient.call(message);
+ }
+
+ // 智能分析
+ public AnalysisResult analyzeData(String data) {
+ // AI数据分析逻辑
+ }
+
+ // 智能推荐
+ public List getRecommendations(String context) {
+ // AI推荐逻辑
+ }
+}
+```
+
+==========================================
+4. 功能模块设计
+==========================================
+
+4.1 智能对话模块
+- 集成ChatGPT API
+- 支持上下文对话
+- 对话历史记录
+- 多语言支持
+
+4.2 智能分析模块
+- 数据趋势分析
+- 异常检测
+- 预测分析
+- 可视化展示
+
+4.3 智能推荐模块
+- 个性化推荐
+- 内容推荐
+- 用户行为分析
+- 推荐算法优化
+
+4.4 自动化处理模块
+- 智能审批流程
+- 自动分类
+- 智能标签
+- 自动化报告
+
+==========================================
+5. 数据库设计
+==========================================
+
+5.1 核心表结构
+```sql
+-- AI对话记录表
+CREATE TABLE ai_chat_record (
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
+ user_id BIGINT NOT NULL,
+ session_id VARCHAR(64),
+ message TEXT NOT NULL,
+ response TEXT,
+ model VARCHAR(50),
+ tokens_used INT,
+ create_time DATETIME,
+ INDEX idx_user_id (user_id),
+ INDEX idx_session_id (session_id)
+);
+
+-- AI分析结果表
+CREATE TABLE ai_analysis_result (
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
+ analysis_type VARCHAR(50),
+ data_source VARCHAR(100),
+ result_data JSON,
+ confidence DECIMAL(5,2),
+ create_time DATETIME,
+ INDEX idx_analysis_type (analysis_type)
+);
+
+-- 智能推荐表
+CREATE TABLE ai_recommendation (
+ id BIGINT PRIMARY KEY AUTO_INCREMENT,
+ user_id BIGINT,
+ item_type VARCHAR(50),
+ item_id BIGINT,
+ score DECIMAL(5,2),
+ reason TEXT,
+ create_time DATETIME,
+ INDEX idx_user_id (user_id),
+ INDEX idx_item_type (item_type)
+);
+```
+
+==========================================
+6. 前端界面设计
+==========================================
+
+6.1 智能对话界面
+- 聊天窗口设计
+- 消息气泡样式
+- 输入框和发送按钮
+- 历史记录展示
+
+6.2 数据分析面板
+- 图表展示区域
+- 筛选条件设置
+- 实时数据更新
+- 导出功能
+
+6.3 推荐展示页面
+- 推荐卡片布局
+- 个性化展示
+- 交互反馈
+- 推荐理由说明
+
+==========================================
+7. 安全设计
+==========================================
+
+7.1 API安全
+- API密钥管理
+- 请求频率限制
+- 数据加密传输
+- 访问权限控制
+
+7.2 数据安全
+- 敏感数据脱敏
+- 数据备份策略
+- 审计日志记录
+- 隐私保护措施
+
+==========================================
+8. 性能优化
+==========================================
+
+8.1 缓存策略
+- Redis缓存热点数据
+- 本地缓存AI模型
+- 缓存更新策略
+- 缓存穿透防护
+
+8.2 并发处理
+- 异步处理AI请求
+- 线程池配置
+- 负载均衡
+- 限流措施
+
+==========================================
+9. 部署方案
+==========================================
+
+9.1 开发环境
+- Docker容器化
+- 本地开发环境
+- 热部署配置
+- 调试工具集成
+
+9.2 生产环境
+- 云服务器部署
+- 负载均衡配置
+- 监控告警
+- 日志管理
+
+==========================================
+10. 测试策略
+==========================================
+
+10.1 单元测试
+- 服务层测试
+- 控制器测试
+- 数据访问层测试
+- AI功能测试
+
+10.2 集成测试
+- API接口测试
+- 前后端联调
+- 性能压力测试
+- 安全测试
+
+==========================================
+11. 运维监控
+==========================================
+
+11.1 系统监控
+- 服务器监控
+- 应用性能监控
+- 数据库监控
+- 网络监控
+
+11.2 日志管理
+- 统一日志格式
+- 日志收集分析
+- 错误告警
+- 日志归档
+
+==========================================
+12. 项目计划
+==========================================
+
+12.1 开发阶段
+第一阶段(2周):基础框架搭建
+- RuoYi-Vue-Plus环境搭建
+- Spring AI集成
+- 基础功能开发
+
+第二阶段(3周):核心功能开发
+- 智能对话模块
+- 数据分析功能
+- 推荐系统开发
+
+第三阶段(2周):优化测试
+- 性能优化
+- 功能测试
+- 安全加固
+
+第四阶段(1周):部署上线
+- 生产环境部署
+- 监控配置
+- 文档完善
+
+12.2 里程碑
+- M1: 基础框架完成
+- M2: 核心功能完成
+- M3: 测试通过
+- M4: 正式上线
+
+==========================================
+13. 风险评估
+==========================================
+
+13.1 技术风险
+- AI API稳定性
+- 性能瓶颈
+- 数据安全
+- 技术债务
+
+13.2 应对措施
+- 多AI服务商备选
+- 性能监控优化
+- 安全审计加固
+- 代码重构优化
+
+==========================================
+14. 成本估算
+==========================================
+
+14.1 开发成本
+- 人力成本:8人月
+- 服务器成本:月均2000元
+- AI API成本:月均1000元
+- 其他成本:5000元
+
+14.2 运维成本
+- 服务器运维:月均1000元
+- 监控服务:月均500元
+- 备份存储:月均300元
+
+==========================================
+15. 总结
+==========================================
+
+本技术方案基于RuoYi-Vue-Plus框架,集成Spring AI提供智能化功能,通过合理的架构设计、安全措施和性能优化,构建一个功能完善、安全可靠的企业级管理系统。
+
+主要优势:
+1. 成熟稳定的基础框架
+2. 强大的AI能力集成
+3. 完善的权限管理
+4. 良好的扩展性
+5. 丰富的功能模块
+
+通过本方案的实施,可以快速构建一个具有AI能力的现代化管理系统,提升用户体验和业务效率。
+
+==========================================
+文档版本:v1.0
+创建时间:2025年1月
+更新记录:
+- v1.0: 初始版本
+==========================================
\ No newline at end of file
diff --git a/admin-pc/src/views/book/check/achievement.vue b/admin-pc/src/views/book/check/achievement.vue
new file mode 100644
index 0000000..7623a86
--- /dev/null
+++ b/admin-pc/src/views/book/check/achievement.vue
@@ -0,0 +1,358 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+ {{ toggleSearchStatus ? '收起' : '展开' }}
+
+
+
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+
+ 删除
+ 批量通过
+ 批量拒绝
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+ 通过
+
+ 拒绝
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/admin-pc/src/views/book/check/chapter.vue b/admin-pc/src/views/book/check/chapter.vue
new file mode 100644
index 0000000..88a0a27
--- /dev/null
+++ b/admin-pc/src/views/book/check/chapter.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+
+ 删除
+ 批量通过
+ 批量拒绝
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+ 通过
+
+ 拒绝
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/admin-pc/src/views/popularizeRecruitLog/modules/PopularizeRecruitLogForm.vue b/admin-pc/src/views/book/check/modules/AchievementForm.vue
similarity index 52%
rename from admin-pc/src/views/popularizeRecruitLog/modules/PopularizeRecruitLogForm.vue
rename to admin-pc/src/views/book/check/modules/AchievementForm.vue
index 7ade6ef..efbabdb 100644
--- a/admin-pc/src/views/popularizeRecruitLog/modules/PopularizeRecruitLogForm.vue
+++ b/admin-pc/src/views/book/check/modules/AchievementForm.vue
@@ -4,38 +4,48 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -50,21 +60,12 @@
import { validateDuplicateValue } from '@/utils/util'
export default {
- name: 'PopularizeRecruitLogForm',
- components: {
- },
- props: {
- //表单禁用
- disabled: {
- type: Boolean,
- default: false,
- required: false
- }
- },
+ name: 'AchievementForm',
data () {
return {
model:{
- },
+ status: '0'
+ },
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
@@ -75,21 +76,29 @@
},
confirmLoading: false,
validatorRules: {
+ status: [
+ { required: true, message: '请选择审核状态!' }
+ ]
},
url: {
- add: "/popularizeRecruitLog/popularizeRecruitLog/add",
- edit: "/popularizeRecruitLog/popularizeRecruitLog/edit",
- queryById: "/popularizeRecruitLog/popularizeRecruitLog/queryById"
+ add: "/commonBookAchievementLog/commonBookAchievementLog/add",
+ edit: "/commonBookAchievementLog/commonBookAchievementLog/edit",
+ queryById: "/commonBookAchievementLog/commonBookAchievementLog/queryById"
}
}
},
+ props: {
+ disabled: {
+ default: false
+ }
+ },
computed: {
formDisabled(){
return this.disabled
},
},
created () {
- //备份model原始值
+ //备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
@@ -109,11 +118,13 @@
let httpurl = '';
let method = '';
if(!this.model.id){
+ //新增
httpurl+=this.url.add;
method = 'post';
}else{
+ //编辑
httpurl+=this.url.edit;
- method = 'put';
+ method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
@@ -126,9 +137,8 @@
that.confirmLoading = false;
})
}
-
})
},
}
}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.vue b/admin-pc/src/views/book/check/modules/AchievementModal.vue
similarity index 81%
rename from admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.vue
rename to admin-pc/src/views/book/check/modules/AchievementModal.vue
index c20cc9e..71eba2b 100644
--- a/admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.vue
+++ b/admin-pc/src/views/book/check/modules/AchievementModal.vue
@@ -8,17 +8,17 @@
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
-
+
\ No newline at end of file
+
\ No newline at end of file
diff --git a/admin-pc/src/views/popularizeAuthentication/modules/PopularizeAuthenticationForm.vue b/admin-pc/src/views/book/check/modules/CommonBookNovelForm.vue
similarity index 54%
rename from admin-pc/src/views/popularizeAuthentication/modules/PopularizeAuthenticationForm.vue
rename to admin-pc/src/views/book/check/modules/CommonBookNovelForm.vue
index b37bba7..481b5b1 100644
--- a/admin-pc/src/views/popularizeAuthentication/modules/PopularizeAuthenticationForm.vue
+++ b/admin-pc/src/views/book/check/modules/CommonBookNovelForm.vue
@@ -4,48 +4,43 @@
-
-
+
+
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -60,21 +55,12 @@
import { validateDuplicateValue } from '@/utils/util'
export default {
- name: 'PopularizeAuthenticationForm',
- components: {
- },
- props: {
- //表单禁用
- disabled: {
- type: Boolean,
- default: false,
- required: false
- }
- },
+ name: 'CommonBookNovelForm',
data () {
return {
model:{
- },
+ state: 0
+ },
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
@@ -85,21 +71,38 @@
},
confirmLoading: false,
validatorRules: {
+ userId: [
+ { required: true, message: '请选择用户标识!' }
+ ],
+ bookId: [
+ { required: true, message: '请选择所属小说!' }
+ ],
+ title: [
+ { required: true, message: '请输入章节名称!' }
+ ],
+ status: [
+ { required: true, message: '请选择章节状态!' }
+ ]
},
url: {
- add: "/popularizeAuthentication/popularizeAuthentication/add",
- edit: "/popularizeAuthentication/popularizeAuthentication/edit",
- queryById: "/popularizeAuthentication/popularizeAuthentication/queryById"
+ add: "/commonBookNovel/commonBookNovel/add",
+ edit: "/commonBookNovel/commonBookNovel/edit",
+ queryById: "/commonBookNovel/commonBookNovel/queryById"
}
}
},
+ props: {
+ disabled: {
+ default: false
+ }
+ },
computed: {
formDisabled(){
return this.disabled
},
},
created () {
- //备份model原始值
+ //备份model原始值
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
@@ -119,11 +122,13 @@
let httpurl = '';
let method = '';
if(!this.model.id){
+ //新增
httpurl+=this.url.add;
method = 'post';
}else{
+ //编辑
httpurl+=this.url.edit;
- method = 'put';
+ method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
@@ -136,7 +141,6 @@
that.confirmLoading = false;
})
}
-
})
},
}
diff --git a/admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.Style#Drawer.vue b/admin-pc/src/views/book/check/modules/CommonBookNovelModal.Style#Drawer.vue
similarity index 86%
rename from admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.Style#Drawer.vue
rename to admin-pc/src/views/book/check/modules/CommonBookNovelModal.Style#Drawer.vue
index e67ec50..95cb770 100644
--- a/admin-pc/src/views/popularizeOrder/modules/PopularizeOrderModal.Style#Drawer.vue
+++ b/admin-pc/src/views/book/check/modules/CommonBookNovelModal.Style#Drawer.vue
@@ -7,7 +7,7 @@
@close="close"
destroyOnClose
:visible="visible">
-
+