| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- -- =====================================================
- -- 积分订单售后单表 fs_integral_after_sales
- -- 创建时间:2026-07-21
- -- 说明:参考 fs_store_after_sales_scrm 表结构,针对积分订单特性优化
- -- - 新增 refund_integral 字段记录退回积分
- -- - 新增 refund_amount 字段记录退款金额
- -- - 不含 store_id(积分订单无店铺概念)
- -- - 不含 is_package / package_json(积分订单无套餐概念)
- -- =====================================================
- DROP TABLE IF EXISTS `fs_integral_after_sales`;
- CREATE TABLE `fs_integral_after_sales` (
- `id` BIGINT NOT NULL COMMENT '主键',
- `order_id` BIGINT DEFAULT NULL COMMENT '积分订单ID',
- `order_code` VARCHAR(64) NOT NULL COMMENT '订单编号',
- `user_id` BIGINT DEFAULT NULL COMMENT '用户ID',
- `company_id` BIGINT DEFAULT NULL COMMENT '企业ID',
- `company_user_id` BIGINT DEFAULT NULL COMMENT '企业员工ID',
- `refund_amount` DECIMAL(10,2) DEFAULT '0.00' COMMENT '退款金额',
- `refund_integral` BIGINT DEFAULT '0' COMMENT '退回积分',
- `service_type` TINYINT DEFAULT 0 COMMENT '服务类型 0仅退款 1退货退款',
- `reasons` VARCHAR(255) DEFAULT NULL COMMENT '申请原因',
- `explains` VARCHAR(500) DEFAULT NULL COMMENT '说明',
- `explain_img` VARCHAR(1000) DEFAULT NULL COMMENT '说明图片,多个用逗号分割',
- `shipper_code` VARCHAR(50) DEFAULT NULL COMMENT '物流公司编码',
- `delivery_sn` VARCHAR(64) DEFAULT NULL COMMENT '物流单号',
- `delivery_name` VARCHAR(100) DEFAULT NULL COMMENT '物流名称',
- `delivery_code` VARCHAR(50) DEFAULT NULL COMMENT '物流公司编码(兼容字段)',
- `status` TINYINT DEFAULT 0 COMMENT '审核状态 0已提交待平台审核 1平台已审核 2用户已发货待仓库审核 3仓库已审核待财务审核 4退款中(财务已发起退款,等待回调确认) 5退款成功(回调确认完成)',
- `sales_status` TINYINT DEFAULT 0 COMMENT '售后状态 0正常 1用户取消 2商家拒绝 3已完成',
- `order_status` TINYINT DEFAULT NULL COMMENT '订单当前状态(冗余记录)',
- `consignee` VARCHAR(100) DEFAULT NULL COMMENT '商家收货人',
- `phone_number` VARCHAR(20) DEFAULT NULL COMMENT '商家手机号',
- `address` VARCHAR(500) DEFAULT NULL COMMENT '商家地址',
- `consignee_phone` VARCHAR(20) DEFAULT NULL COMMENT '商家收货电话',
- `dept_id` BIGINT DEFAULT NULL COMMENT '部门ID',
- `operator` VARCHAR(64) DEFAULT NULL COMMENT '操作人',
- `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
- `is_del` TINYINT DEFAULT 0 COMMENT '逻辑删除 0正常 1已删除',
- `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_order_id` (`order_id`),
- KEY `idx_order_code` (`order_code`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_company_id` (`company_id`),
- KEY `idx_status` (`status`, `sales_status`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '积分订单售后单';
- -- =====================================================
- -- 菜单与权限初始化
- -- 说明:以下 menu_id 使用占位值,执行前请根据实际 sys_menu 表的 max(menu_id) 调整
- -- parent_id 需替换为"积分订单"菜单的 menu_id(可执行下方查询获取)
- -- SELECT menu_id, menu_name FROM sys_menu WHERE menu_name LIKE '%积分%';
- -- =====================================================
- -- 1. 主菜单:积分售后管理(目录下挂载页面)
- -- 注意:parent_id 请替换为实际的"积分订单"父菜单ID
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3001, '积分售后管理', 0, 50, 'integralAfterSales', 'his/integralAfterSales/index', 1, 0, 'C', '0', '0', 'his:integralAfterSales:list', 'shopping', 'admin', NOW(), '积分订单售后管理菜单');
- -- 2. 按钮权限
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3002, '积分售后查询', 3001, 1, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:query', '#', 'admin', NOW(), '');
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3003, '积分售后导出', 3001, 2, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:export', '#', 'admin', NOW(), '');
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3004, '积分售后平台审核', 3001, 3, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:audit', '#', 'admin', NOW(), '');
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3005, '积分售后撤销', 3001, 4, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:cancel', '#', 'admin', NOW(), '');
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3006, '积分售后财务退款', 3001, 5, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:refund', '#', 'admin', NOW(), '');
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
- VALUES (3007, '积分售后编辑物流', 3001, 6, '#', '', 1, 0, 'F', '0', '0', 'his:integralAfterSales:edit', '#', 'admin', NOW(), '');
- -- =====================================================
- -- 积分售后独立状态字典 integral_after_sales_status
- -- 创建时间:2026-07-24
- -- 说明:积分售后使用独立字典,与商城售后(store_after_sales_status)隔离
- -- 仅退款(serviceType=0): 0→1→4→5
- -- 退款退货(serviceType=1): 0→1→2→3→4→5
- -- =====================================================
- -- 1. 字典类型
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- VALUES ('积分售后状态', 'integral_after_sales_status', '0', 'admin', NOW(), '积分订单售后审核状态字典');
- -- 2. 字典数据
- 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
- (0, '已提交', '0', 'integral_after_sales_status', '', 'info', 'N', '0', 'admin', NOW(), '用户提交售后申请,待平台审核'),
- (1, '已审核', '1', 'integral_after_sales_status', '', 'warning', 'N', '0', 'admin', NOW(), '平台已审核,仅退款等待财务退款/退款退货等待用户发货'),
- (2, '已发货', '2', 'integral_after_sales_status', '', 'warning', 'N', '0', 'admin', NOW(), '用户已寄回商品,待仓库审核'),
- (3, '仓库已审核', '3', 'integral_after_sales_status', '', 'primary', 'N', '0', 'admin', NOW(), '仓库已确认收货,待财务退款'),
- (4, '退款中', '4', 'integral_after_sales_status', '', 'danger', 'N', '0', 'admin', NOW(), '财务已发起退款,等待回调确认'),
- (5, '退款成功', '5', 'integral_after_sales_status', '', 'success', 'N', '0', 'admin', NOW(), '退款回调确认完成,售后流程结束');
- -- 3. 数据迁移说明
- -- 若已有旧数据使用 status=3(原退款成功) 或 status=4(原退款成功),需根据实际业务状态调整:
- -- - 已发起退款但未回调成功的:status=4(退款中)
- -- - 回调成功的:status=5(退款成功)
- -- UPDATE fs_integral_after_sales SET status = 5 WHERE status = 4 AND sales_status = 3;
- -- UPDATE fs_integral_after_sales SET status = 4 WHERE status = 3 AND sales_status = 0;
|