-- ===================================================== -- 积分订单状态字典重构 + 售后时效支持 -- 创建时间: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;