# 京东订单统计控制功能实现说明 ## 功能概述 为京东订单系统添加了统计控制功能,允许用户通过开关控制订单是否参与"慢单"统计。 ## 实现内容 ### 1. 数据库层面 - **文件**: `sql/add_count_enabled_field.sql` - **操作**: 为 `jd_order` 表添加 `is_count_enabled` 字段 - **字段说明**: - 类型: `TINYINT(1)` - 默认值: `1` (参与统计) - 含义: `0`=不参与统计,`1`=参与统计 ### 2. 后端实体类更新 - **文件**: `ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java` - **新增字段**: `isCountEnabled` (Integer类型) - **注解**: 添加了 `@Excel` 注解支持导出 ### 3. 数据库映射更新 - **文件**: `ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml` - **更新内容**: - 在 `resultMap` 中添加新字段映射 - 在 `selectJDOrderBase` SQL中添加新字段查询 - 在 `insert` 和 `update` 语句中添加新字段处理 ### 4. 统计逻辑修改 - **文件**: `ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java` - **修改位置**: - `慢单` 统计逻辑 (第244行) - `录单` 导出逻辑 (第221行) - **过滤条件**: 添加 `(o.getIsCountEnabled() == null || o.getIsCountEnabled() == 1)` 过滤条件 - **说明**: 只有 `isCountEnabled` 为 `null` 或 `1` 的订单才会参与统计 ### 5. 前端界面更新 - **文件**: `ruoyi-vue/src/views/system/jdorder/orderList.vue` - **新增功能**: - 在订单列表中添加"参与统计"列 - 使用 `el-switch` 组件提供开关控制 - 添加 `handleCountEnabledChange` 方法处理状态变化 - 调用后端API实时更新数据库 ### 6. API接口 - **文件**: `ruoyi-vue/src/api/system/jdorder.js` - **新增方法**: `updateJDOrder` 用于更新订单信息 - **后端接口**: 使用现有的 `PUT /system/jdorder` 接口 ## 使用说明 ### 操作步骤 1. 在京东订单列表页面,找到"参与统计"列 2. 点击开关可以切换订单的统计状态 3. 状态变化会实时保存到数据库 4. 在指令台发送"慢单"指令时,只会统计标记为"参与统计"的订单 ### 状态说明 - **开关开启** (绿色): 订单参与统计,`is_count_enabled = 1` - **开关关闭** (灰色): 订单不参与统计,`is_count_enabled = 0` ### 统计影响 - 当订单的 `is_count_enabled` 设置为 `0` 时,该订单将不会出现在"慢单"统计结果中 - 其他查询功能(如"慢搜"、"慢查")不受影响,仍可查询所有订单 - 录单导出功能也会过滤掉不参与统计的订单 ## 技术细节 ### 默认值处理 - 新订单默认 `is_count_enabled = 1` (参与统计) - 现有订单通过SQL脚本统一设置为 `1` - 前端显示时,`null` 值被视为参与统计 ### 兼容性 - 向后兼容:现有订单默认参与统计 - 数据库字段有默认值,确保数据完整性 - 前端组件使用Element UI的Switch组件,用户体验良好 ## 部署说明 ### 数据库更新 1. 执行 `sql/add_count_enabled_field.sql` 脚本 2. 确认字段添加成功:`DESCRIBE jd_order;` ### 代码部署 1. 重新编译后端项目 2. 重新构建前端项目 3. 重启应用服务 ### 验证步骤 1. 访问京东订单列表页面 2. 确认"参与统计"列显示正常 3. 测试开关功能是否正常 4. 在指令台测试"慢单"指令,确认过滤功能生效