From 8cf08c6fa0843bf5c6e6c21c13efcbc879fbd3be Mon Sep 17 00:00:00 2001 From: 15892072232 <3094677748@qq.com> Date: Thu, 6 Nov 2025 09:39:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_menu.sql | 1 + create_database_menu.sql | 27 ++ create_menu.ps1 | 7 + create_menu_simple.sql | 30 +++ database_menu_configuration_summary.md | 66 +++++ execute_database_menu_new.bat | 5 + execute_database_product_sql.bat | 11 + execute_database_product_sql_fixed.bat | 11 + execute_final_menu.bat | 5 + manual_sql_instructions.txt | 10 + run_menu_sql.bat | 5 + run_sql.bat | 15 ++ .../main/java/com/ruoyi/RuoYiApplication.java | 2 +- .../system/DatabaseProductController.java | 104 ++++++++ .../ruoyi/system/domain/DatabaseProduct.java | 83 +++++++ .../system/mapper/DatabaseProductMapper.java | 61 +++++ .../service/IDatabaseProductService.java | 61 +++++ .../impl/DatabaseProductServiceImpl.java | 94 +++++++ .../mapper/system/DatabaseProductMapper.xml | 86 +++++++ ruoyi-ui/src/api/database/product.js | 53 ++++ ruoyi-ui/src/api/database/zhengyutian.js | 53 ++++ ruoyi-ui/src/router/index.js | 16 ++ ruoyi-ui/src/views/database/product/index.vue | 230 ++++++++++++++++++ .../src/views/database/product/nameOne.vue | 230 ++++++++++++++++++ .../src/views/database/product/nameTwo.vue | 230 ++++++++++++++++++ setup_database_menu.ps1 | 27 ++ setup_database_menu_fixed.ps1 | 27 ++ setup_database_product.bat | 13 + sql/database_menu_new.sql | 30 +++ sql/database_product.sql | 19 ++ sql/database_product_permission.sql | 24 ++ sql/database_product_permission_fixed.sql | 29 +++ sql/final_database_menu.sql | 29 +++ 33 files changed, 1693 insertions(+), 1 deletion(-) create mode 100644 check_menu.sql create mode 100644 create_database_menu.sql create mode 100644 create_menu.ps1 create mode 100644 create_menu_simple.sql create mode 100644 database_menu_configuration_summary.md create mode 100644 execute_database_menu_new.bat create mode 100644 execute_database_product_sql.bat create mode 100644 execute_database_product_sql_fixed.bat create mode 100644 execute_final_menu.bat create mode 100644 manual_sql_instructions.txt create mode 100644 run_menu_sql.bat create mode 100644 run_sql.bat create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DatabaseProductController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/DatabaseProduct.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/DatabaseProductMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/IDatabaseProductService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DatabaseProductServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/DatabaseProductMapper.xml create mode 100644 ruoyi-ui/src/api/database/product.js create mode 100644 ruoyi-ui/src/api/database/zhengyutian.js create mode 100644 ruoyi-ui/src/views/database/product/index.vue create mode 100644 ruoyi-ui/src/views/database/product/nameOne.vue create mode 100644 ruoyi-ui/src/views/database/product/nameTwo.vue create mode 100644 setup_database_menu.ps1 create mode 100644 setup_database_menu_fixed.ps1 create mode 100644 setup_database_product.bat create mode 100644 sql/database_menu_new.sql create mode 100644 sql/database_product.sql create mode 100644 sql/database_product_permission.sql create mode 100644 sql/database_product_permission_fixed.sql create mode 100644 sql/final_database_menu.sql diff --git a/check_menu.sql b/check_menu.sql new file mode 100644 index 000000000..3d95b9420 --- /dev/null +++ b/check_menu.sql @@ -0,0 +1 @@ +SELECT menu_id, menu_name, parent_id, path FROM sys_menu WHERE menu_name LIKE '%数据库%'; \ No newline at end of file diff --git a/create_database_menu.sql b/create_database_menu.sql new file mode 100644 index 000000000..59d7d598e --- /dev/null +++ b/create_database_menu.sql @@ -0,0 +1,27 @@ +-- 删除已存在的数据库产品管理相关菜单 +DELETE FROM sys_role_menu WHERE menu_id IN (SELECT menu_id FROM sys_menu WHERE perms LIKE 'database:%'); +DELETE FROM sys_menu WHERE perms LIKE 'database:%' OR menu_name = '数据库产品管理'; + +-- 创建数据库产品管理顶级菜单 +INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES (2000, '数据库产品管理', 0, 6, 'database', NULL, 'M', '0', '0', '', 'database', 'admin', NOW()); + +-- 创建子菜单 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES +('数据库产品列表', 2000, 1, 'product', 'database/product/index', 'C', '0', '0', 'database:product:list', 'list', 'admin', NOW()), +('姓名一', 2000, 2, 'nameOne', 'database/product/nameOne', 'C', '0', '0', 'database:nameOne:list', 'user', 'admin', NOW()), +('姓名二', 2000, 3, 'nameTwo', 'database/product/nameTwo', 'C', '0', '0', 'database:nameTwo:list', 'user', 'admin', NOW()); + +-- 创建按钮权限 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES +('新增', 2000, 4, '', '', 'F', '0', '0', 'database:product:add', '#', 'admin', NOW()), +('修改', 2000, 5, '', '', 'F', '0', '0', 'database:product:edit', '#', 'admin', NOW()), +('删除', 2000, 6, '', '', 'F', '0', '0', 'database:product:remove', '#', 'admin', NOW()), +('导出', 2000, 7, '', '', 'F', '0', '0', 'database:product:export', '#', 'admin', NOW()), +('查询', 2000, 8, '', '', 'F', '0', '0', 'database:product:query', '#', 'admin', NOW()); + +-- 分配权限给管理员角色 +INSERT INTO sys_role_menu (role_id, menu_id) +SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'database:%' OR menu_id = 2000; \ No newline at end of file diff --git a/create_menu.ps1 b/create_menu.ps1 new file mode 100644 index 000000000..377050b10 --- /dev/null +++ b/create_menu.ps1 @@ -0,0 +1,7 @@ +Write-Host "正在创建数据库产品管理菜单..." + +# 执行SQL脚本 +& mysql -u root -p -e "source create_menu_simple.sql" + +Write-Host "菜单创建完成!" +Read-Host "按任意键继续..." \ No newline at end of file diff --git a/create_menu_simple.sql b/create_menu_simple.sql new file mode 100644 index 000000000..d1958195f --- /dev/null +++ b/create_menu_simple.sql @@ -0,0 +1,30 @@ +-- 删除已存在的数据库产品管理相关菜单 +DELETE FROM sys_role_menu WHERE menu_id IN (SELECT menu_id FROM sys_menu WHERE perms LIKE 'database:%'); +DELETE FROM sys_menu WHERE perms LIKE 'database:%' OR menu_name = '数据库产品管理'; + +-- 创建数据库产品管理顶级菜单 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES ('数据库产品管理', 0, 6, 'database', NULL, 'M', '0', '0', '', 'database', 'admin', NOW()); + +-- 获取刚插入的菜单ID +SET @parentId = LAST_INSERT_ID(); + +-- 创建子菜单 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES +('数据库产品列表', @parentId, 1, 'product', 'database/product/index', 'C', '0', '0', 'database:product:list', 'list', 'admin', NOW()), +('姓名一', @parentId, 2, 'nameOne', 'database/product/nameOne', 'C', '0', '0', 'database:nameOne:list', 'user', 'admin', NOW()), +('姓名二', @parentId, 3, 'nameTwo', 'database/product/nameTwo', 'C', '0', '0', 'database:nameTwo:list', 'user', 'admin', NOW()); + +-- 创建按钮权限 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) +VALUES +('新增', @parentId, 4, '', '', 'F', '0', '0', 'database:product:add', '#', 'admin', NOW()), +('修改', @parentId, 5, '', '', 'F', '0', '0', 'database:product:edit', '#', 'admin', NOW()), +('删除', @parentId, 6, '', '', 'F', '0', '0', 'database:product:remove', '#', 'admin', NOW()), +('导出', @parentId, 7, '', '', 'F', '0', '0', 'database:product:export', '#', 'admin', NOW()), +('查询', @parentId, 8, '', '', 'F', '0', '0', 'database:product:query', '#', 'admin', NOW()); + +-- 分配权限给管理员角色 +INSERT INTO sys_role_menu (role_id, menu_id) +SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'database:%'; \ No newline at end of file diff --git a/database_menu_configuration_summary.md b/database_menu_configuration_summary.md new file mode 100644 index 000000000..20c86748e --- /dev/null +++ b/database_menu_configuration_summary.md @@ -0,0 +1,66 @@ +# 数据库产品管理菜单配置总结 + +## 目标 +将"数据库产品管理"模块配置为独立显示在左侧菜单栏的顶级菜单,而非"系统管理"的子菜单。具体菜单结构调整如下: +- 数据库产品管理 ← 新增的顶级菜单 + - 郑瑜甜 + +## 已完成的修改 + +### 1. 数据库菜单配置 +- 创建了新的SQL脚本 `sql/final_database_menu.sql`,包含: + - 删除旧的菜单项 + - 插入顶级菜单"数据库产品管理" + - 插入子菜单"郑瑜甜" + - 插入相关按钮权限(查询、新增、修改、删除、导出) + - 将权限分配给管理员角色 + +### 2. 前端路由配置 +- 修改了 `ruoyi-ui/src/router/index.js`: + - 更新了顶级菜单"数据库产品管理"的配置 + - 将子菜单从原来的三个(数据库产品列表、姓名一、姓名二)改为仅包含"郑瑜甜" + - 更新了权限标识从 `database:product:list` 到 `database:zhengyutian:list` + - 更新了重定向路径从 `product` 到 `zhengyutian` + +### 3. 前端API配置 +- 创建了新的API文件 `ruoyi-ui/src/api/database/zhengyutian.js`: + - 包含查询、获取详情、新增、修改、删除和导出"郑瑜甜"的API函数 + - 所有请求路径均以"/database/product"开头 + +### 4. 前端页面配置 +- 修改了 `ruoyi-ui/src/views/database/product/index.vue`: + - 更新了API导入从 `product` 改为 `zhengyutian` + - 更新了组件名称从 `DatabaseProduct` 改为 `Zhengyutian` + - 更新了所有权限标识从 `database:product:*` 改为 `database:zhengyutian:*` + - 更新了所有API调用方法名 + - 更新了相关文本描述 + +### 5. 后端Controller配置 +- 修改了 `ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DatabaseProductController.java`: + - 更新了所有权限注解从 `@PreAuthorize("@ss.hasPermi('database:product:*')")` 改为 `@PreAuthorize("@ss.hasPermi('database:zhengyutian:*')")` + +## 执行步骤 +1. 手动执行SQL脚本: + ``` + mysql -u root -p -e "source c:/Users/Administrator/RuoYi-Vue/sql/final_database_menu.sql" + ``` + 或者: + ``` + mysql -u root -p + source c:/Users/Administrator/RuoYi-Vue/sql/final_database_menu.sql + ``` + +2. 重启后端服务 + +3. 刷新前端页面 + +## 预期结果 +- "数据库产品管理"将作为独立顶级菜单显示在左侧菜单栏 +- 点击"数据库产品管理"将展开显示"郑瑜甜"子菜单 +- 点击"郑瑜甜"将显示数据库产品管理页面,但使用新的权限标识和API + +## 注意事项 +- 所有权限标识已从 `database:product:*` 更改为 `database:zhengyutian:*` +- 前端路由、API和页面组件已相应更新 +- 后端Controller的权限注解已同步更新 +- 数据库中的菜单配置需要手动执行SQL脚本才能生效 \ No newline at end of file diff --git a/execute_database_menu_new.bat b/execute_database_menu_new.bat new file mode 100644 index 000000000..d599cffe2 --- /dev/null +++ b/execute_database_menu_new.bat @@ -0,0 +1,5 @@ +@echo off +echo 正在执行数据库菜单配置脚本... +mysql -u root -p < sql/database_menu_new.sql +echo 脚本执行完成! +pause \ No newline at end of file diff --git a/execute_database_product_sql.bat b/execute_database_product_sql.bat new file mode 100644 index 000000000..2c064cd11 --- /dev/null +++ b/execute_database_product_sql.bat @@ -0,0 +1,11 @@ +@echo off +echo 正在执行数据库产品管理模块的SQL脚本... + +echo 1. 创建数据库产品表... +mysql -u root -p < sql/database_product.sql + +echo 2. 创建菜单和权限配置... +mysql -u root -p < sql/database_product_permission_fixed.sql + +echo 执行完成! +pause \ No newline at end of file diff --git a/execute_database_product_sql_fixed.bat b/execute_database_product_sql_fixed.bat new file mode 100644 index 000000000..1a4c77e26 --- /dev/null +++ b/execute_database_product_sql_fixed.bat @@ -0,0 +1,11 @@ +@echo off +echo 正在执行数据库产品管理模块的SQL脚本... + +echo 1. 创建数据库产品表... +mysql -u root -p -e "source sql/database_product.sql" + +echo 2. 创建菜单和权限配置... +mysql -u root -p -e "source sql/database_product_permission_fixed.sql" + +echo 执行完成! +pause \ No newline at end of file diff --git a/execute_final_menu.bat b/execute_final_menu.bat new file mode 100644 index 000000000..ebe1a3bc6 --- /dev/null +++ b/execute_final_menu.bat @@ -0,0 +1,5 @@ +@echo off +echo Executing database menu configuration... +mysql -u root -p < sql/final_database_menu.sql +echo Script execution completed! +pause \ No newline at end of file diff --git a/manual_sql_instructions.txt b/manual_sql_instructions.txt new file mode 100644 index 000000000..7eb8eea0a --- /dev/null +++ b/manual_sql_instructions.txt @@ -0,0 +1,10 @@ +@echo off +echo Please execute the following SQL commands manually in MySQL: +echo. +echo 1. Connect to MySQL: mysql -u root -p +echo 2. Execute: source c:/Users/Administrator/RuoYi-Vue/sql/final_database_menu.sql +echo. +echo Or run this command directly: +echo mysql -u root -p -e "source c:/Users/Administrator/RuoYi-Vue/sql/final_database_menu.sql" +echo. +pause \ No newline at end of file diff --git a/run_menu_sql.bat b/run_menu_sql.bat new file mode 100644 index 000000000..2f2b285f1 --- /dev/null +++ b/run_menu_sql.bat @@ -0,0 +1,5 @@ +@echo off +echo 请输入MySQL密码后按回车键执行SQL脚本... +mysql -u root -p < create_database_menu.sql +echo 菜单创建完成! +pause \ No newline at end of file diff --git a/run_sql.bat b/run_sql.bat new file mode 100644 index 000000000..28c0ea4d0 --- /dev/null +++ b/run_sql.bat @@ -0,0 +1,15 @@ +@echo off +echo 正在设置数据库产品管理模块... +echo. +echo 请输入MySQL root密码: +mysql -u root -p < sql/database_product.sql +echo. +echo 数据库产品表创建完成! +echo. +echo 请输入MySQL root密码: +mysql -u root -p < sql/create_database_menu.sql +echo. +echo 菜单和权限配置创建完成! +echo. +echo 设置完成!请重启后端服务并刷新前端页面以查看更改。 +pause \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index e3c56ee54..bfd55790a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -16,7 +16,7 @@ public class RuoYiApplication { // System.setProperty("spring.devtools.restart.enabled", "false"); SpringApplication.run(RuoYiApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + + System.out.println("(♥◠‿◠)ノ゙ 数据资源管理系统启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DatabaseProductController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DatabaseProductController.java new file mode 100644 index 000000000..c692a2a22 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DatabaseProductController.java @@ -0,0 +1,104 @@ +package com.ruoyi.web.controller.system; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.domain.DatabaseProduct; +import com.ruoyi.system.service.IDatabaseProductService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 数据库产品Controller + * + * @author ruoyi + * @date 2024-01-20 + */ +@RestController +@RequestMapping("/database/product") +public class DatabaseProductController extends BaseController +{ + @Autowired + private IDatabaseProductService databaseProductService; + + /** + * 查询数据库产品列表 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:list')") + @GetMapping("/list") + public TableDataInfo list(DatabaseProduct databaseProduct) + { + startPage(); + List list = databaseProductService.selectDatabaseProductList(databaseProduct); + return getDataTable(list); + } + + /** + * 导出数据库产品列表 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:export')") + @Log(title = "数据库产品", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DatabaseProduct databaseProduct) + { + List list = databaseProductService.selectDatabaseProductList(databaseProduct); + ExcelUtil util = new ExcelUtil(DatabaseProduct.class); + util.exportExcel(response, list, "数据库产品数据"); + } + + /** + * 获取数据库产品详细信息 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:query')") + @GetMapping(value = "/{productId}") + public AjaxResult getInfo(@PathVariable("productId") Long productId) + { + return AjaxResult.success(databaseProductService.selectDatabaseProductByProductId(productId)); + } + + /** + * 新增数据库产品 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:add')") + @Log(title = "数据库产品", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DatabaseProduct databaseProduct) + { + return toAjax(databaseProductService.insertDatabaseProduct(databaseProduct)); + } + + /** + * 修改数据库产品 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:edit')") + @Log(title = "数据库产品", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DatabaseProduct databaseProduct) + { + return toAjax(databaseProductService.updateDatabaseProduct(databaseProduct)); + } + + /** + * 删除数据库产品 + */ + @PreAuthorize("@ss.hasPermi('database:zhengyutian:remove')") + @Log(title = "数据库产品", businessType = BusinessType.DELETE) + @DeleteMapping("/{productIds}") + public AjaxResult remove(@PathVariable Long[] productIds) + { + return toAjax(databaseProductService.deleteDatabaseProductByProductIds(productIds)); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/DatabaseProduct.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/DatabaseProduct.java new file mode 100644 index 000000000..39baf996a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/DatabaseProduct.java @@ -0,0 +1,83 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 数据库产品对象 database_product + * + * @author ruoyi + * @date 2024-01-20 + */ +public class DatabaseProduct extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 产品ID */ + private Long productId; + + /** 数据库名称 */ + @Excel(name = "数据库名称") + private String databaseName; + + /** 图标 */ + @Excel(name = "图标") + private String icon; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public void setProductId(Long productId) + { + this.productId = productId; + } + + public Long getProductId() + { + return productId; + } + public void setDatabaseName(String databaseName) + { + this.databaseName = databaseName; + } + + public String getDatabaseName() + { + return databaseName; + } + public void setIcon(String icon) + { + this.icon = icon; + } + + public String getIcon() + { + return icon; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("productId", getProductId()) + .append("databaseName", getDatabaseName()) + .append("icon", getIcon()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DatabaseProductMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DatabaseProductMapper.java new file mode 100644 index 000000000..66bed2967 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DatabaseProductMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.DatabaseProduct; + +/** + * 数据库产品Mapper接口 + * + * @author ruoyi + * @date 2024-01-20 + */ +public interface DatabaseProductMapper +{ + /** + * 查询数据库产品 + * + * @param productId 数据库产品主键 + * @return 数据库产品 + */ + public DatabaseProduct selectDatabaseProductByProductId(Long productId); + + /** + * 查询数据库产品列表 + * + * @param databaseProduct 数据库产品 + * @return 数据库产品集合 + */ + public List selectDatabaseProductList(DatabaseProduct databaseProduct); + + /** + * 新增数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + public int insertDatabaseProduct(DatabaseProduct databaseProduct); + + /** + * 修改数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + public int updateDatabaseProduct(DatabaseProduct databaseProduct); + + /** + * 删除数据库产品 + * + * @param productId 数据库产品主键 + * @return 结果 + */ + public int deleteDatabaseProductByProductId(Long productId); + + /** + * 批量删除数据库产品 + * + * @param productIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDatabaseProductByProductIds(Long[] productIds); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IDatabaseProductService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IDatabaseProductService.java new file mode 100644 index 000000000..c893c895f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IDatabaseProductService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.DatabaseProduct; + +/** + * 数据库产品Service接口 + * + * @author ruoyi + * @date 2024-01-20 + */ +public interface IDatabaseProductService +{ + /** + * 查询数据库产品 + * + * @param productId 数据库产品主键 + * @return 数据库产品 + */ + public DatabaseProduct selectDatabaseProductByProductId(Long productId); + + /** + * 查询数据库产品列表 + * + * @param databaseProduct 数据库产品 + * @return 数据库产品集合 + */ + public List selectDatabaseProductList(DatabaseProduct databaseProduct); + + /** + * 新增数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + public int insertDatabaseProduct(DatabaseProduct databaseProduct); + + /** + * 修改数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + public int updateDatabaseProduct(DatabaseProduct databaseProduct); + + /** + * 批量删除数据库产品 + * + * @param productIds 需要删除的数据库产品主键集合 + * @return 结果 + */ + public int deleteDatabaseProductByProductIds(Long[] productIds); + + /** + * 删除数据库产品信息 + * + * @param productId 数据库产品主键 + * @return 结果 + */ + public int deleteDatabaseProductByProductId(Long productId); +} \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DatabaseProductServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DatabaseProductServiceImpl.java new file mode 100644 index 000000000..d8e30f94f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DatabaseProductServiceImpl.java @@ -0,0 +1,94 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.mapper.DatabaseProductMapper; +import com.ruoyi.system.domain.DatabaseProduct; +import com.ruoyi.system.service.IDatabaseProductService; +import com.ruoyi.common.core.text.Convert; + +/** + * 数据库产品Service业务层实现 + * + * @author ruoyi + * @date 2024-01-20 + */ +@Service +public class DatabaseProductServiceImpl implements IDatabaseProductService +{ + @Autowired + private DatabaseProductMapper databaseProductMapper; + + /** + * 查询数据库产品 + * + * @param productId 数据库产品主键 + * @return 数据库产品 + */ + @Override + public DatabaseProduct selectDatabaseProductByProductId(Long productId) + { + return databaseProductMapper.selectDatabaseProductByProductId(productId); + } + + /** + * 查询数据库产品列表 + * + * @param databaseProduct 数据库产品 + * @return 数据库产品集合 + */ + @Override + public List selectDatabaseProductList(DatabaseProduct databaseProduct) + { + return databaseProductMapper.selectDatabaseProductList(databaseProduct); + } + + /** + * 新增数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + @Override + public int insertDatabaseProduct(DatabaseProduct databaseProduct) + { + return databaseProductMapper.insertDatabaseProduct(databaseProduct); + } + + /** + * 修改数据库产品 + * + * @param databaseProduct 数据库产品 + * @return 结果 + */ + @Override + public int updateDatabaseProduct(DatabaseProduct databaseProduct) + { + return databaseProductMapper.updateDatabaseProduct(databaseProduct); + } + + /** + * 批量删除数据库产品 + * + * @param productIds 需要删除的数据库产品主键集合 + * @return 结果 + */ + @Override + public int deleteDatabaseProductByProductIds(Long[] productIds) + { + return databaseProductMapper.deleteDatabaseProductByProductIds(productIds); + } + + /** + * 删除数据库产品信息 + * + * @param productId 数据库产品主键 + * @return 结果 + */ + @Override + public int deleteDatabaseProductByProductId(Long productId) + { + return databaseProductMapper.deleteDatabaseProductByProductId(productId); + } +} \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/DatabaseProductMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DatabaseProductMapper.xml new file mode 100644 index 000000000..167154d55 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/DatabaseProductMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + select product_id, database_name, icon, status, create_by, create_time, update_by, update_time, remark from database_product + + + + + + + + insert into database_product + + database_name, + icon, + status, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{databaseName}, + #{icon}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update database_product + + database_name = #{databaseName}, + icon = #{icon}, + status = #{status}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where product_id = #{productId} + + + + delete from database_product where product_id = #{productId} + + + + delete from database_product where product_id in + + #{productId} + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/database/product.js b/ruoyi-ui/src/api/database/product.js new file mode 100644 index 000000000..db9da0f94 --- /dev/null +++ b/ruoyi-ui/src/api/database/product.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询数据库产品列表 +export function listProduct(query) { + return request({ + url: '/database/product/list', + method: 'get', + params: query + }) +} + +// 查询数据库产品详细 +export function getProduct(productId) { + return request({ + url: '/database/product/' + productId, + method: 'get' + }) +} + +// 新增数据库产品 +export function addProduct(data) { + return request({ + url: '/database/product', + method: 'post', + data: data + }) +} + +// 修改数据库产品 +export function updateProduct(data) { + return request({ + url: '/database/product', + method: 'put', + data: data + }) +} + +// 删除数据库产品 +export function delProduct(productId) { + return request({ + url: '/database/product/' + productId, + method: 'delete' + }) +} + +// 导出数据库产品 +export function exportProduct(query) { + return request({ + url: '/database/product/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/api/database/zhengyutian.js b/ruoyi-ui/src/api/database/zhengyutian.js new file mode 100644 index 000000000..90d8a0f7e --- /dev/null +++ b/ruoyi-ui/src/api/database/zhengyutian.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询郑瑜甜列表 +export function listZhengyutian(query) { + return request({ + url: '/database/product/list', + method: 'get', + params: query + }) +} + +// 查询郑瑜甜详细 +export function getZhengyutian(id) { + return request({ + url: '/database/product/' + id, + method: 'get' + }) +} + +// 新增郑瑜甜 +export function addZhengyutian(data) { + return request({ + url: '/database/product', + method: 'post', + data: data + }) +} + +// 修改郑瑜甜 +export function updateZhengyutian(data) { + return request({ + url: '/database/product', + method: 'put', + data: data + }) +} + +// 删除郑瑜甜 +export function delZhengyutian(id) { + return request({ + url: '/database/product/' + id, + method: 'delete' + }) +} + +// 导出郑瑜甜 +export function exportZhengyutian(query) { + return request({ + url: '/database/product/export', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index c40dea00e..099187e5b 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -107,6 +107,22 @@ export const dynamicRoutes = [ } ] }, + { + path: '/database', + component: Layout, + alwaysShow: true, + permissions: ['database:zhengyutian:list'], + meta: { title: '数据库产品管理', icon: 'database' }, + redirect: 'zhengyutian', + children: [ + { + path: 'zhengyutian', + component: () => import('@/views/database/product/index'), + name: 'Zhengyutian', + meta: { title: '郑瑜甜', icon: 'user' } + } + ] + }, { path: '/system/user-auth', component: Layout, diff --git a/ruoyi-ui/src/views/database/product/index.vue b/ruoyi-ui/src/views/database/product/index.vue new file mode 100644 index 000000000..832741560 --- /dev/null +++ b/ruoyi-ui/src/views/database/product/index.vue @@ -0,0 +1,230 @@ + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/database/product/nameOne.vue b/ruoyi-ui/src/views/database/product/nameOne.vue new file mode 100644 index 000000000..ff4624269 --- /dev/null +++ b/ruoyi-ui/src/views/database/product/nameOne.vue @@ -0,0 +1,230 @@ + + + \ No newline at end of file diff --git a/ruoyi-ui/src/views/database/product/nameTwo.vue b/ruoyi-ui/src/views/database/product/nameTwo.vue new file mode 100644 index 000000000..a227f477e --- /dev/null +++ b/ruoyi-ui/src/views/database/product/nameTwo.vue @@ -0,0 +1,230 @@ + + + \ No newline at end of file diff --git a/setup_database_menu.ps1 b/setup_database_menu.ps1 new file mode 100644 index 000000000..01cdc75a8 --- /dev/null +++ b/setup_database_menu.ps1 @@ -0,0 +1,27 @@ +# 设置数据库产品管理模块的菜单配置 +Write-Host "正在设置数据库产品管理模块的菜单配置..." -ForegroundColor Green + +# 提示用户输入MySQL密码 +$password = Read-Host "请输入MySQL root用户密码" -AsSecureString +$passwordPlain = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)) + +# 执行SQL脚本 +Write-Host "1. 创建数据库产品表..." -ForegroundColor Yellow +$process = Start-Process -FilePath "mysql" -ArgumentList "-u root -p$passwordPlain -e `"source sql/database_product.sql`"" -Wait -PassThru -NoNewWindow +if ($process.ExitCode -eq 0) { + Write-Host "数据库产品表创建成功!" -ForegroundColor Green +} else { + Write-Host "数据库产品表创建失败!" -ForegroundColor Red +} + +Write-Host "2. 创建菜单和权限配置..." -ForegroundColor Yellow +$process = Start-Process -FilePath "mysql" -ArgumentList "-u root -p$passwordPlain -e `"source sql/create_database_menu.sql`"" -Wait -PassThru -NoNewWindow +if ($process.ExitCode -eq 0) { + Write-Host "菜单和权限配置创建成功!" -ForegroundColor Green +} else { + Write-Host "菜单和权限配置创建失败!" -ForegroundColor Red +} + +Write-Host "设置完成!" -ForegroundColor Green +Write-Host "请重启后端服务并刷新前端页面以查看更改。" -ForegroundColor Yellow +Read-Host "按任意键退出" \ No newline at end of file diff --git a/setup_database_menu_fixed.ps1 b/setup_database_menu_fixed.ps1 new file mode 100644 index 000000000..c0cbcc95c --- /dev/null +++ b/setup_database_menu_fixed.ps1 @@ -0,0 +1,27 @@ +# 设置数据库产品管理模块的菜单配置 +Write-Host "正在设置数据库产品管理模块的菜单配置..." -ForegroundColor Green + +# 提示用户输入MySQL密码 +$password = Read-Host "请输入MySQL root用户密码" -AsSecureString +$passwordPlain = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)) + +# 执行SQL脚本 +Write-Host "1. 创建数据库产品表..." -ForegroundColor Yellow +$process = Start-Process -FilePath "mysql" -ArgumentList "-u root -p$passwordPlain", "-e", "source sql/database_product.sql" -Wait -PassThru -NoNewWindow +if ($process.ExitCode -eq 0) { + Write-Host "数据库产品表创建成功!" -ForegroundColor Green +} else { + Write-Host "数据库产品表创建失败!" -ForegroundColor Red +} + +Write-Host "2. 创建菜单和权限配置..." -ForegroundColor Yellow +$process = Start-Process -FilePath "mysql" -ArgumentList "-u root -p$passwordPlain", "-e", "source sql/create_database_menu.sql" -Wait -PassThru -NoNewWindow +if ($process.ExitCode -eq 0) { + Write-Host "菜单和权限配置创建成功!" -ForegroundColor Green +} else { + Write-Host "菜单和权限配置创建失败!" -ForegroundColor Red +} + +Write-Host "设置完成!" -ForegroundColor Green +Write-Host "请重启后端服务并刷新前端页面以查看更改。" -ForegroundColor Yellow +Read-Host "按任意键退出" \ No newline at end of file diff --git a/setup_database_product.bat b/setup_database_product.bat new file mode 100644 index 000000000..bf00bf1f5 --- /dev/null +++ b/setup_database_product.bat @@ -0,0 +1,13 @@ +@echo off +echo 正在设置数据库产品管理模块... +echo. +echo 1. 创建数据库产品表... +mysql -u root -p -e "source sql/database_product.sql" +echo. +echo 2. 创建菜单和权限配置... +mysql -u root -p -e "source sql/create_database_menu.sql" +echo. +echo 设置完成! +echo. +echo 请重启后端服务并刷新前端页面以查看更改。 +pause \ No newline at end of file diff --git a/sql/database_menu_new.sql b/sql/database_menu_new.sql new file mode 100644 index 000000000..2ecb729a2 --- /dev/null +++ b/sql/database_menu_new.sql @@ -0,0 +1,30 @@ +-- 删除旧的数据库产品管理菜单(如果存在) +DELETE FROM `sys_role_menu` WHERE menu_id IN (SELECT menu_id FROM sys_menu WHERE menu_name = '数据库产品管理' OR perms LIKE 'database:%'); +DELETE FROM `sys_menu` WHERE menu_name = '数据库产品管理' OR perms LIKE 'database:%'; + +-- 插入数据库产品管理菜单(顶级菜单) +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('数据库产品管理', 0, 6, 'database', '', 1, 0, 'M', '0', '0', '', 'database', 'admin', NOW(), 'admin', NOW(), '数据库产品管理菜单'); + +-- 获取刚插入的数据库产品管理菜单ID +SET @parentId = (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'); + +-- 插入郑瑜甜子菜单 +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('郑瑜甜', @parentId, 1, 'zhengyutian', 'database/product/index', 1, 0, 'C', '0', '0', 'database:zhengyutian:list', 'user', 'admin', NOW(), 'admin', NOW(), '郑瑜甜菜单'); + +-- 获取刚插入的郑瑜甜菜单ID +SET @childId = (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '郑瑜甜'); + +-- 插入郑瑜甜菜单的按钮权限 +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES +('新增', @childId, 1, '', '', 0, 0, 'F', '0', '0', 'database:zhengyutian:add', '#', 'admin', NOW(), 'admin', NOW(), '新增按钮'), +('修改', @childId, 2, '', '', 0, 0, 'F', '0', '0', 'database:zhengyutian:edit', '#', 'admin', NOW(), 'admin', NOW(), '修改按钮'), +('删除', @childId, 3, '', '', 0, 0, 'F', '0', '0', 'database:zhengyutian:remove', '#', 'admin', NOW(), 'admin', NOW(), '删除按钮'), +('导出', @childId, 4, '', '', 0, 0, 'F', '0', '0', 'database:zhengyutian:export', '#', 'admin', NOW(), 'admin', NOW(), '导出按钮'), +('查询', @childId, 5, '', '', 0, 0, 'F', '0', '0', 'database:zhengyutian:query', '#', 'admin', NOW(), 'admin', NOW(), '查询按钮'); + +-- 将权限分配给管理员角色 +INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) +SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'database:%'; \ No newline at end of file diff --git a/sql/database_product.sql b/sql/database_product.sql new file mode 100644 index 000000000..94bb43ede --- /dev/null +++ b/sql/database_product.sql @@ -0,0 +1,19 @@ +-- 创建数据库产品表 +CREATE TABLE `database_product` ( + `product_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '产品ID', + `database_name` varchar(100) NOT NULL COMMENT '数据库名称', + `icon` varchar(255) DEFAULT NULL COMMENT '图标', + `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`product_id`), + KEY `idx_status` (`status`) +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='数据库产品表'; + +-- 插入示例数据 +INSERT INTO `database_product` VALUES (100, 'mysql', 'https://img.alicdn.com/imgextra/i2/O1CN01QH6qH01uV45a4y8sH_!!6000000006375-2-tps-200-200.png', '0', 'admin', '2024-01-20 10:00:00', 'admin', '2024-01-20 10:00:00', 'MySQL数据库'); +INSERT INTO `database_product` VALUES (101, 'oracle', 'https://img.alicdn.com/imgextra/i4/O1CN01Jj1p9J1pU9d0XJ0eI_!!6000000005464-2-tps-200-200.png', '0', 'admin', '2024-01-20 10:00:00', 'admin', '2024-01-20 10:00:00', 'Oracle数据库'); +INSERT INTO `database_product` VALUES (102, 'sqlserver', 'https://img.alicdn.com/imgextra/i1/O1CN012U2N5t1q0oE8kMl65_!!6000000005171-2-tps-200-200.png', '0', 'admin', '2024-01-20 10:00:00', 'admin', '2024-01-20 10:00:00', 'SQL Server数据库'); \ No newline at end of file diff --git a/sql/database_product_permission.sql b/sql/database_product_permission.sql new file mode 100644 index 000000000..1a9476548 --- /dev/null +++ b/sql/database_product_permission.sql @@ -0,0 +1,24 @@ +-- 插入数据库产品管理子菜单 +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('数据库产品列表', (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'), 1, 'product', 'database/product/index', 1, 0, 'C', '0', '0', 'database:product:list', 'database', 'admin', NOW(), 'admin', NOW(), '数据库产品列表菜单'); + +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('姓名一', (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'), 2, 'nameOne', 'database/product/nameOne', 1, 0, 'C', '0', '0', 'database:nameOne:list', '#', 'admin', NOW(), 'admin', NOW(), '姓名一菜单'); + +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('姓名二', (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'), 3, 'nameTwo', 'database/product/nameTwo', 1, 0, 'C', '0', '0', 'database:nameTwo:list', '#', 'admin', NOW(), 'admin', NOW(), '姓名二菜单'); + +-- 插入数据库产品管理按钮权限 +SET @parentId = (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'); +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, '', `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES +('新增', @parentId, 1, '', '', 0, 0, 'F', '0', '0', 'database:product:add', '#', 'admin', NOW(), 'admin', NOW(), '新增按钮'), +('修改', @parentId, 2, '', '', 0, 0, 'F', '0', '0', 'database:product:edit', '#', 'admin', NOW(), 'admin', NOW(), '修改按钮'), +('删除', @parentId, 3, '', '', 0, 0, 'F', '0', '0', 'database:product:remove', '#', 'admin', NOW(), 'admin', NOW(), '删除按钮'), +('导出', @parentId, 4, '', '', 0, 0, 'F', '0', '0', 'database:product:export', '#', 'admin', NOW(), 'admin', NOW(), '导出按钮'), +('查询', @parentId, 5, '', '', 0, 0, 'F', '0', '0', 'database:product:query', '#', 'admin', NOW(), 'admin', NOW(), '查询按钮'); + +-- 将权限分配给管理员角色 +SET @roleId = (SELECT role_id FROM sys_role WHERE role_name = '超级管理员'); +INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) +SELECT @roleId, menu_id FROM sys_menu WHERE perms LIKE 'database:%'; \ No newline at end of file diff --git a/sql/database_product_permission_fixed.sql b/sql/database_product_permission_fixed.sql new file mode 100644 index 000000000..9366dda93 --- /dev/null +++ b/sql/database_product_permission_fixed.sql @@ -0,0 +1,29 @@ +-- 插入数据库产品管理菜单(顶级菜单) +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('数据库产品管理', 0, 6, 'database', '', 1, 0, 'M', '0', '0', '', 'database', 'admin', NOW(), 'admin', NOW(), '数据库产品管理菜单'); + +-- 获取刚插入的数据库产品管理菜单ID +SET @parentId = (SELECT MAX(menu_id) FROM sys_menu WHERE menu_name = '数据库产品管理'); + +-- 插入数据库产品管理子菜单 +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('数据库产品列表', @parentId, 1, 'product', 'database/product/index', 1, 0, 'C', '0', '0', 'database:product:list', 'database', 'admin', NOW(), 'admin', NOW(), '数据库产品列表菜单'); + +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('姓名一', @parentId, 2, 'nameOne', 'database/product/nameOne', 1, 0, 'C', '0', '0', 'database:nameOne:list', '#', 'admin', NOW(), 'admin', NOW(), '姓名一菜单'); + +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES ('姓名二', @parentId, 3, 'nameTwo', 'database/product/nameTwo', 1, 0, 'C', '0', '0', 'database:nameTwo:list', '#', 'admin', NOW(), 'admin', NOW(), '姓名二菜单'); + +-- 插入数据库产品管理按钮权限 +INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) +VALUES +('新增', @parentId, 4, '', '', 0, 0, 'F', '0', '0', 'database:product:add', '#', 'admin', NOW(), 'admin', NOW(), '新增按钮'), +('修改', @parentId, 5, '', '', 0, 0, 'F', '0', '0', 'database:product:edit', '#', 'admin', NOW(), 'admin', NOW(), '修改按钮'), +('删除', @parentId, 6, '', '', 0, 0, 'F', '0', '0', 'database:product:remove', '#', 'admin', NOW(), 'admin', NOW(), '删除按钮'), +('导出', @parentId, 7, '', '', 0, 0, 'F', '0', '0', 'database:product:export', '#', 'admin', NOW(), 'admin', NOW(), '导出按钮'), +('查询', @parentId, 8, '', '', 0, 0, 'F', '0', '0', 'database:product:query', '#', 'admin', NOW(), 'admin', NOW(), '查询按钮'); + +-- 将权限分配给管理员角色 +INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) +SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'database:%'; \ No newline at end of file diff --git a/sql/final_database_menu.sql b/sql/final_database_menu.sql new file mode 100644 index 000000000..0d419f1c1 --- /dev/null +++ b/sql/final_database_menu.sql @@ -0,0 +1,29 @@ +-- 删除旧的菜单项 +DELETE FROM sys_menu WHERE menu_name LIKE '%数据库产品%'; + +-- 插入顶级菜单"数据库产品管理" +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES ('数据库产品管理', 0, 1, 'database', NULL, '', 1, 0, 'M', '0', '0', '', 'database', 'admin', NOW(), '', NULL, '数据库产品管理目录'); + +-- 获取刚插入的顶级菜单ID +SET @parent_id = LAST_INSERT_ID(); + +-- 插入子菜单"郑瑜甜" +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES ('郑瑜甜', @parent_id, 1, 'zhengyutian', 'database/product/index', '', 1, 0, 'C', '0', '0', 'database:zhengyutian:list', 'form', 'admin', NOW(), '', NULL, '郑瑜甜菜单'); + +-- 获取刚插入的子菜单ID +SET @child_id = LAST_INSERT_ID(); + +-- 插入按钮权限 +INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +VALUES +('郑瑜甜查询', @child_id, 1, '#', '', '', 1, 0, 'F', '0', '0', 'database:zhengyutian:query', '#', 'admin', NOW(), '', NULL, ''), +('郑瑜甜新增', @child_id, 2, '#', '', '', 1, 0, 'F', '0', '0', 'database:zhengyutian:add', '#', 'admin', NOW(), '', NULL, ''), +('郑瑜甜修改', @child_id, 3, '#', '', '', 1, 0, 'F', '0', '0', 'database:zhengyutian:edit', '#', 'admin', NOW(), '', NULL, ''), +('郑瑜甜删除', @child_id, 4, '#', '', '', 1, 0, 'F', '0', '0', 'database:zhengyutian:remove', '#', 'admin', NOW(), '', NULL, ''), +('郑瑜甜导出', @child_id, 5, '#', '', '', 1, 0, 'F', '0', '0', 'database:zhengyutian:export', '#', 'admin', NOW(), '', NULL, ''); + +-- 将权限分配给管理员角色 +INSERT INTO sys_role_menu (role_id, menu_id) +SELECT 1, menu_id FROM sys_menu WHERE menu_name LIKE '%郑瑜甜%' OR menu_name = '数据库产品管理'; \ No newline at end of file