215 lines
5.8 KiB
SQL
215 lines
5.8 KiB
SQL
SET NAMES utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `gm_gold_operation_record` (
|
|
`id` bigint NOT NULL COMMENT '记录ID',
|
|
`user_id` bigint NOT NULL COMMENT 'APP用户ID',
|
|
`sys_origin` varchar(32) DEFAULT NULL COMMENT '系统来源',
|
|
`operation_type` tinyint NOT NULL COMMENT '操作类型:0增加,1扣除',
|
|
`quantity` decimal(20,2) NOT NULL COMMENT '金币数量',
|
|
`reason_type` tinyint NOT NULL COMMENT '原因类型',
|
|
`usd_quantity` decimal(20,2) DEFAULT NULL COMMENT '工资/充值折算USD金额',
|
|
`remarks` varchar(500) NOT NULL COMMENT '备注',
|
|
`status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING待审核,APPROVED已通过,REJECTED已拒绝',
|
|
`applicant_id` bigint NOT NULL COMMENT '申请后台用户ID',
|
|
`applicant_name` varchar(100) DEFAULT NULL COMMENT '申请后台用户名称',
|
|
`reviewer_id` bigint DEFAULT NULL COMMENT '审核后台用户ID',
|
|
`reviewer_name` varchar(100) DEFAULT NULL COMMENT '审核后台用户名称',
|
|
`review_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
|
|
`track_id` varchar(64) NOT NULL COMMENT '钱包流水跟踪ID',
|
|
`review_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
`executed_time` datetime DEFAULT NULL COMMENT '执行时间',
|
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
`create_user` bigint DEFAULT NULL COMMENT '创建用户',
|
|
`update_user` bigint DEFAULT NULL COMMENT '更新用户',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_gm_gold_track_id` (`track_id`),
|
|
KEY `idx_gm_gold_status_time` (`status`, `create_time`),
|
|
KEY `idx_gm_gold_user` (`user_id`),
|
|
KEY `idx_gm_gold_applicant` (`applicant_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='GM金币操作申请记录';
|
|
|
|
INSERT INTO sys_menu (
|
|
id,
|
|
parent_id,
|
|
menu_name,
|
|
path,
|
|
menu_type,
|
|
icon,
|
|
create_user,
|
|
update_user,
|
|
sort,
|
|
status,
|
|
router,
|
|
alias
|
|
)
|
|
SELECT
|
|
1700000400,
|
|
0,
|
|
'GM操作',
|
|
'/gm/operation',
|
|
1,
|
|
'lucide:shield',
|
|
'0',
|
|
'0',
|
|
48,
|
|
0,
|
|
'/gm/operation',
|
|
'GmOperation'
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM sys_menu WHERE alias = 'GmOperation'
|
|
);
|
|
|
|
UPDATE sys_menu
|
|
SET
|
|
parent_id = 0,
|
|
menu_name = 'GM操作',
|
|
path = '/gm/operation',
|
|
menu_type = 1,
|
|
icon = 'lucide:shield',
|
|
create_user = '0',
|
|
update_user = '0',
|
|
sort = 48,
|
|
status = 0,
|
|
router = '/gm/operation'
|
|
WHERE alias = 'GmOperation';
|
|
|
|
INSERT INTO sys_menu (
|
|
id,
|
|
parent_id,
|
|
menu_name,
|
|
path,
|
|
menu_type,
|
|
icon,
|
|
create_user,
|
|
update_user,
|
|
sort,
|
|
status,
|
|
router,
|
|
alias
|
|
)
|
|
SELECT
|
|
1700000401,
|
|
(SELECT id FROM (SELECT id FROM sys_menu WHERE alias = 'GmOperation' LIMIT 1) AS parent_menu),
|
|
'金币操作',
|
|
'gm/gold-operation',
|
|
2,
|
|
'lucide:coins',
|
|
'0',
|
|
'0',
|
|
1,
|
|
0,
|
|
'gold-operation',
|
|
'GmGoldOperation'
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM sys_menu WHERE alias = 'GmGoldOperation'
|
|
);
|
|
|
|
UPDATE sys_menu
|
|
SET
|
|
parent_id = (SELECT id FROM (SELECT id FROM sys_menu WHERE alias = 'GmOperation' LIMIT 1) AS parent_menu),
|
|
menu_name = '金币操作',
|
|
path = 'gm/gold-operation',
|
|
menu_type = 2,
|
|
icon = 'lucide:coins',
|
|
create_user = '0',
|
|
update_user = '0',
|
|
sort = 1,
|
|
status = 0,
|
|
router = 'gold-operation'
|
|
WHERE alias = 'GmGoldOperation';
|
|
|
|
INSERT INTO sys_menu (
|
|
id,
|
|
parent_id,
|
|
menu_name,
|
|
path,
|
|
menu_type,
|
|
icon,
|
|
create_user,
|
|
update_user,
|
|
sort,
|
|
status,
|
|
router,
|
|
alias
|
|
)
|
|
SELECT
|
|
1700000402,
|
|
(SELECT id FROM (SELECT id FROM sys_menu WHERE alias = 'GmOperation' LIMIT 1) AS parent_menu),
|
|
'金币操作审核',
|
|
'gm/gold-operation-review',
|
|
2,
|
|
'lucide:badge-check',
|
|
'0',
|
|
'0',
|
|
2,
|
|
0,
|
|
'gold-operation-review',
|
|
'GmGoldOperationReview'
|
|
WHERE NOT EXISTS (
|
|
SELECT 1 FROM sys_menu WHERE alias = 'GmGoldOperationReview'
|
|
);
|
|
|
|
UPDATE sys_menu
|
|
SET
|
|
parent_id = (SELECT id FROM (SELECT id FROM sys_menu WHERE alias = 'GmOperation' LIMIT 1) AS parent_menu),
|
|
menu_name = '金币操作审核',
|
|
path = 'gm/gold-operation-review',
|
|
menu_type = 2,
|
|
icon = 'lucide:badge-check',
|
|
create_user = '0',
|
|
update_user = '0',
|
|
sort = 2,
|
|
status = 0,
|
|
router = 'gold-operation-review'
|
|
WHERE alias = 'GmGoldOperationReview';
|
|
|
|
DELETE role_menu
|
|
FROM sys_role_menu AS role_menu
|
|
JOIN sys_menu AS gm_menu
|
|
ON gm_menu.id = role_menu.menu_id
|
|
LEFT JOIN sys_role AS valid_role
|
|
ON valid_role.id = role_menu.role_id
|
|
WHERE gm_menu.alias IN ('GmOperation', 'GmGoldOperation', 'GmGoldOperationReview')
|
|
AND valid_role.id IS NULL;
|
|
|
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
|
SELECT DISTINCT
|
|
valid_source_role.id,
|
|
target_menu.id
|
|
FROM sys_role_menu AS source_role
|
|
JOIN sys_role AS valid_source_role
|
|
ON valid_source_role.id = source_role.role_id
|
|
JOIN sys_menu AS source_menu
|
|
ON source_menu.id = source_role.menu_id
|
|
JOIN sys_menu AS target_menu
|
|
ON target_menu.alias IN ('GmOperation', 'GmGoldOperation')
|
|
LEFT JOIN sys_role_menu AS existing_role_menu
|
|
ON existing_role_menu.role_id = valid_source_role.id
|
|
AND existing_role_menu.menu_id = target_menu.id
|
|
WHERE source_menu.alias IN ('OperateInsideOperationGold', 'OperateUserManage')
|
|
AND existing_role_menu.id IS NULL;
|
|
|
|
DELETE role_menu
|
|
FROM sys_role_menu AS role_menu
|
|
JOIN sys_menu AS review_menu
|
|
ON review_menu.id = role_menu.menu_id
|
|
WHERE review_menu.alias = 'GmGoldOperationReview';
|
|
|
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
|
SELECT DISTINCT
|
|
yumi_role.id,
|
|
target_menu.id
|
|
FROM sys_user AS yumi_user
|
|
JOIN sys_user_role AS user_role
|
|
ON user_role.uid = yumi_user.uid
|
|
JOIN sys_role AS yumi_role
|
|
ON yumi_role.id = user_role.role_id
|
|
JOIN sys_menu AS target_menu
|
|
ON target_menu.alias IN ('GmOperation', 'GmGoldOperation', 'GmGoldOperationReview')
|
|
LEFT JOIN sys_role_menu AS existing_role_menu
|
|
ON existing_role_menu.role_id = yumi_role.id
|
|
AND existing_role_menu.menu_id = target_menu.id
|
|
WHERE LOWER(yumi_user.login_name) = 'yumiadmin'
|
|
AND existing_role_menu.id IS NULL;
|