20260908_add_device_operation_service.sql 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. -- 设备运营参数;不填成本或有效分成时保持 NULL,不生成虚假经营数据。可重复执行。
  2. CREATE TABLE IF NOT EXISTS `sa_device_operation_profile` (
  3. `device_id` BIGINT UNSIGNED NOT NULL,
  4. `manage_agent_id` BIGINT UNSIGNED NOT NULL,
  5. `merchant_id` BIGINT UNSIGNED NOT NULL DEFAULT 0,
  6. `cost_price` DECIMAL(10,2) UNSIGNED NULL COMMENT '设备实际投入成本(元)',
  7. `merchant_rate` DECIMAL(5,2) UNSIGNED NULL COMMENT '商户占总交易额的有效比例,非相对上级比例',
  8. `manager_rate` DECIMAL(5,2) UNSIGNED NULL COMMENT '设备管理人扣除下级后的有效比例',
  9. `created_by` BIGINT UNSIGNED NULL,
  10. `updated_by` BIGINT UNSIGNED NULL,
  11. `create_time` DATETIME NOT NULL,
  12. `update_time` DATETIME NOT NULL,
  13. PRIMARY KEY (`device_id`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='设备运营成本与有效分成';
  15. INSERT INTO `sa_system_menu` (
  16. `parent_id`,`name`,`code`,`slug`,`type`,`path`,`component`,`method`,`icon`,`sort`,
  17. `link_url`,`is_iframe`,`is_keep_alive`,`is_hidden`,`is_fixed_tab`,`is_full_page`,
  18. `generate_id`,`generate_key`,`status`,`remark`,`created_by`,`updated_by`,`create_time`,`update_time`,`delete_time`
  19. )
  20. SELECT page_menu.`id`,permissions.`name`,permissions.`code`,permissions.`slug`,3,
  21. NULL,NULL,permissions.`method`,NULL,permissions.`sort`,NULL,2,2,2,2,2,0,NULL,1,
  22. permissions.`remark`,1,1,NOW(),NOW(),NULL
  23. FROM `sa_system_menu` page_menu
  24. CROSS JOIN (
  25. SELECT '查询设备运营' `name`, 'DeviceOperationIndex' `code`, 'core:operation:device:index' `slug`,
  26. 'GET' `method`,100 `sort`,'按本人或递归下级管理设备查询经营统计' `remark`
  27. UNION ALL SELECT '设置设备运营参数','DeviceOperationUpdate','core:operation:device:update',
  28. 'PUT',90,'维护设备真实成本和商户/管理人有效分成'
  29. ) permissions
  30. WHERE page_menu.`code`='DeviceOperations' AND page_menu.`delete_time` IS NULL
  31. AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` e WHERE e.`slug`=permissions.`slug` AND e.`delete_time` IS NULL);
  32. -- 页面访问者继承读取权限;参数修改需单独授权,不能将只读角色升级为可写。
  33. INSERT INTO `sa_system_role_menu` (`role_id`,`menu_id`)
  34. SELECT DISTINCT source.`role_id`,target.`id`
  35. FROM `sa_system_role_menu` source
  36. JOIN `sa_system_menu` page_menu ON page_menu.`id`=source.`menu_id`
  37. AND page_menu.`code`='DeviceOperations' AND page_menu.`delete_time` IS NULL
  38. JOIN `sa_system_menu` target ON target.`parent_id`=page_menu.`id`
  39. AND target.`slug`='core:operation:device:index' AND target.`delete_time` IS NULL
  40. LEFT JOIN `sa_system_role_menu` existing ON existing.`role_id`=source.`role_id` AND existing.`menu_id`=target.`id`
  41. WHERE existing.`id` IS NULL;