20260814_create_company_info.sql 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. -- 保留公司动态分类 1~5;仅移除曾错误添加到 fa_news 的公司信息字段。
  2. ALTER TABLE `fa_news`
  3. MODIFY COLUMN `type` ENUM('1', '2', '3', '4', '5') NULL DEFAULT NULL
  4. COMMENT '动态类型:1=产品动态,2=公司动态,3=首页公司简介,4=公司介绍,5=生产管理';
  5. SET @drop_address = (
  6. SELECT IF(COUNT(*) > 0, 'ALTER TABLE `fa_news` DROP COLUMN `address`', 'SELECT 1')
  7. FROM information_schema.COLUMNS
  8. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'fa_news' AND COLUMN_NAME = 'address'
  9. );
  10. PREPARE company_info_stmt FROM @drop_address;
  11. EXECUTE company_info_stmt;
  12. DEALLOCATE PREPARE company_info_stmt;
  13. SET @drop_employee_count = (
  14. SELECT IF(COUNT(*) > 0, 'ALTER TABLE `fa_news` DROP COLUMN `employee_count`', 'SELECT 1')
  15. FROM information_schema.COLUMNS
  16. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'fa_news' AND COLUMN_NAME = 'employee_count'
  17. );
  18. PREPARE company_info_stmt FROM @drop_employee_count;
  19. EXECUTE company_info_stmt;
  20. DEALLOCATE PREPARE company_info_stmt;
  21. SET @drop_total_sales = (
  22. SELECT IF(COUNT(*) > 0, 'ALTER TABLE `fa_news` DROP COLUMN `total_sales`', 'SELECT 1')
  23. FROM information_schema.COLUMNS
  24. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'fa_news' AND COLUMN_NAME = 'total_sales'
  25. );
  26. PREPARE company_info_stmt FROM @drop_total_sales;
  27. EXECUTE company_info_stmt;
  28. DEALLOCATE PREPARE company_info_stmt;
  29. CREATE TABLE IF NOT EXISTS `fa_company_info` (
  30. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  31. `address` VARCHAR(255) NOT NULL COMMENT '公司总部地址',
  32. `employee_count` INT UNSIGNED NOT NULL COMMENT '员工数量',
  33. `total_sales` VARCHAR(100) NOT NULL COMMENT '产品总销售额',
  34. `createtime` BIGINT NULL DEFAULT NULL COMMENT '创建时间',
  35. `updatetime` BIGINT NULL DEFAULT NULL COMMENT '更新时间',
  36. PRIMARY KEY (`id`)
  37. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公司信息';
  38. INSERT IGNORE INTO `fa_auth_rule`
  39. (`type`, `pid`, `name`, `title`, `icon`, `url`, `condition`, `remark`, `ismenu`, `menutype`, `extend`, `py`, `pinyin`, `createtime`, `updatetime`, `weigh`, `status`)
  40. VALUES
  41. ('file', 0, 'company_info', '公司信息', 'fa fa-building', '', '', '', 1, NULL, '', 'gsxx', 'gongsixinxi', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal');
  42. SET @company_info_pid = (SELECT `id` FROM `fa_auth_rule` WHERE `name` = 'company_info' LIMIT 1);
  43. INSERT IGNORE INTO `fa_auth_rule`
  44. (`type`, `pid`, `name`, `title`, `icon`, `url`, `condition`, `remark`, `ismenu`, `menutype`, `extend`, `py`, `pinyin`, `createtime`, `updatetime`, `weigh`, `status`)
  45. VALUES
  46. ('file', @company_info_pid, 'company_info/index', '查看', 'fa fa-circle-o', '', '', '', 0, NULL, '', '', '', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'),
  47. ('file', @company_info_pid, 'company_info/add', '添加', 'fa fa-circle-o', '', '', '', 0, NULL, '', '', '', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'),
  48. ('file', @company_info_pid, 'company_info/edit', '编辑', 'fa fa-circle-o', '', '', '', 0, NULL, '', '', '', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'),
  49. ('file', @company_info_pid, 'company_info/del', '删除', 'fa fa-circle-o', '', '', '', 0, NULL, '', '', '', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal'),
  50. ('file', @company_info_pid, 'company_info/multi', '批量更新', 'fa fa-circle-o', '', '', '', 0, NULL, '', '', '', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 'normal');
  51. -- 为现有“普通管理员”角色追加公司信息权限;重复执行不会重复追加。
  52. SET @company_info_rules = (
  53. SELECT GROUP_CONCAT(`id` ORDER BY `id` SEPARATOR ',')
  54. FROM `fa_auth_rule`
  55. WHERE `name` IN ('company_info', 'company_info/index', 'company_info/add', 'company_info/edit', 'company_info/del', 'company_info/multi')
  56. );
  57. UPDATE `fa_auth_group`
  58. SET `rules` = CONCAT_WS(',', NULLIF(`rules`, ''), @company_info_rules)
  59. WHERE `id` = 2 AND FIND_IN_SET(@company_info_pid, `rules`) = 0;