| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- -- =====================================================
- -- 积分订单状态字典重构 + 售后时效支持
- -- 创建时间:2026-07-22
- -- 更新时间:2026-07-24
- -- 说明:
- -- 1. fs_integral_order 表新增 finish_time 字段(完成时间),用于售后时效校验
- -- 2. 调整 sys_integral_order_status 字典:
- -- - 1待发货 / 2待收货 / 3已完成 / 4待支付 / 5已取消(原有)
- -- - -1售后中(用户提交售后申请)/ -2已退款(退款成功)
- -- (取消原 -3 已取消,与 5 已取消合并;原 -1 退款中 改名为 售后中)
- -- 3. 状态与代码逻辑对齐:markAfterSalesStatus(-1售后中)、refundOrder(-2已退款)、cancelOrder(5已取消)
- -- =====================================================
- -- 1. fs_integral_order 新增 finish_time 字段
- ALTER TABLE `fs_integral_order`
- ADD COLUMN `finish_time` DATETIME DEFAULT NULL COMMENT '完成时间(确认收货时间)'
- AFTER `delivery_time`;
- -- 2. 积分订单状态字典(-1/-2)
- -- 注意:执行前先查询 SELECT dict_code FROM sys_dict_data WHERE dict_type='sys_integral_order_status' AND dict_value='-1';
- -- 若已存在记录,改为 UPDATE 而非 INSERT
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- VALUES
- (-1, '售后中', '-1', 'sys_integral_order_status', '', 'warning', 'N', '0', 'admin', NOW(), '售后申请已提交,等待处理'),
- (-2, '已退款', '-2', 'sys_integral_order_status', '', 'danger', 'N', '0', 'admin', NOW(), '退款成功');
- -- 3. 删除原 -3 已取消 字典(与 5 已取消 合并)
- DELETE FROM sys_dict_data WHERE dict_type = 'sys_integral_order_status' AND dict_value = '-3';
- -- 4. 老数据清洗
- -- 4.1 原 status=-1 的订单(原"已取消"语义)应更新为 status=5(已取消)
- -- 4.2 原 status=-3 的订单应更新为 status=5(已取消)
- -- 注意:此清洗需要根据业务实际情况执行,以下为参考脚本(请先备份再执行)
- -- UPDATE fs_integral_order SET status = 5 WHERE status = -3;
- -- UPDATE fs_integral_order SET status = 5 WHERE status = -1 AND order_id NOT IN (
- -- SELECT order_id FROM fs_user_integral_logs WHERE log_type = 27
- -- );
- -- 5. 已完成订单回填 finish_time(用 update_time 近似)
- -- UPDATE fs_integral_order SET finish_time = update_time WHERE status = 3 AND finish_time IS NULL;
|