修改计费重

This commit is contained in:
wuweihua
2026-10-13 17:12:32 +08:00
parent 5c48717da2
commit d6a6ec4d53
17 changed files with 294 additions and 14 deletions
@@ -0,0 +1,20 @@
-- billing list refund button (billType=REFUND)
SET NAMES utf8mb4;
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)
SELECT 2330, N'退费', m.menu_id, 20, '', NULL, 1, 0, 'F', '0', '0', 'price:billing:refund', '#', 'admin', sysdate(), N'计费列表单笔退费(billType=REFUND)'
FROM (
SELECT menu_id FROM sys_menu
WHERE perms = 'price:billing:bill' AND menu_type = 'C'
UNION ALL
SELECT menu_id FROM sys_menu
WHERE component = 'price/billing/bill' AND menu_type = 'C'
) m
WHERE NOT EXISTS (SELECT 1 FROM sys_menu x WHERE x.menu_id = 2330 OR x.perms = 'price:billing:refund')
LIMIT 1;
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, 2330
FROM DUAL
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2330)
AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = 2330);
@@ -0,0 +1,34 @@
-- prc_order_bill.refund_status
SET NAMES utf8mb4;
SET @col := (
SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'prc_order_bill'
AND COLUMN_NAME = 'refund_status'
LIMIT 1
);
SET @sql := IF(
@col IS NULL,
'ALTER TABLE prc_order_bill ADD COLUMN refund_status varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''NONE'' COMMENT ''退费状态:NONE未退费/REFUNDED已退费'' AFTER credit_arrears_status, ADD KEY idx_order_bill_refund_status (refund_status)',
'SELECT 1'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
UPDATE prc_order_bill b
SET b.refund_status = 'REFUNDED'
WHERE EXISTS (
SELECT 1 FROM prc_income_bill_fee f
WHERE f.bill_id = b.bill_id
AND UPPER(f.fee_type) = 'REFUND'
)
AND (b.refund_status IS NULL OR b.refund_status <> 'REFUNDED');
UPDATE prc_order_bill b
SET b.refund_status = 'NONE'
WHERE (b.refund_status IS NULL OR b.refund_status = '')
AND NOT EXISTS (
SELECT 1 FROM prc_income_bill_fee f
WHERE f.bill_id = b.bill_id
AND UPPER(f.fee_type) = 'REFUND'
);