|
@@ -40,11 +40,26 @@ func InitTask() {
|
|
|
}
|
|
|
tableName := fmt.Sprintf("sys_menu_%s_bak", time.Now().Format(utils.FormatDateUnSpace))
|
|
|
sqlStr := "# 备份表\n# create table " + tableName + " like sys_menu;\n# insert into " + tableName + " select * from sys_menu;\n\n"
|
|
|
- sqlStr += "delete from sys_menu where 1=1;\nINSERT INTO sys_menu (`menu_id`, `parent_id`, `name`, `sort`, `path`, `icon_path`, `component`, `hidden`, `is_level`, `level_path`, `menu_type`, `button_code`, `create_time`, `modify_time`,`api`,`name_en`) VALUES "
|
|
|
+ sqlStr += getFront(v.DbType)
|
|
|
|
|
|
- sqlStr += getMenuStr(menuList)
|
|
|
+ tableKey := ""
|
|
|
+ modeName := ``
|
|
|
+ switch v.DbType {
|
|
|
+ case 1: // dm
|
|
|
+ tableKey = `"`
|
|
|
+ modeName = `eta_master.`
|
|
|
+ default:
|
|
|
+ // 默认mysql
|
|
|
+ tableKey = "`"
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlStr += "delete from " + modeName + "sys_menu where 1=1;\nINSERT INTO " + modeName + "sys_menu (`menu_id`, `parent_id`, `name`, `sort`, `path`, `icon_path`, `component`, `hidden`, `is_level`, `level_path`, `menu_type`, `button_code`, `create_time`, `modify_time`,`api`,`name_en`) VALUES "
|
|
|
+
|
|
|
+ sqlStr = strings.Replace(sqlStr, "`", tableKey, -1)
|
|
|
|
|
|
- sqlStr += "SELECT role_id INTO @sys_id FROM sys_role WHERE role_name = 'admin';\nDELETE FROM sys_role_menu WHERE role_id = @sys_id;\nINSERT INTO sys_role_menu(`role_id`, `menu_id`, `type`)\nSELECT @sys_id, menu_id, 0 FROM sys_menu;"
|
|
|
+ sqlStr += getMenuStr(menuList, v.DbType)
|
|
|
+
|
|
|
+ sqlStr += getEndSql(v.DbType)
|
|
|
|
|
|
err = writeFile(baseDir, sqlStr, v)
|
|
|
if err != nil {
|
|
@@ -56,11 +71,56 @@ func InitTask() {
|
|
|
fmt.Println("生成完成")
|
|
|
}
|
|
|
|
|
|
-func getMenuStr(menuList []*models.EtaBusinessMenu) (str string) {
|
|
|
+func getFront(dbType int) string {
|
|
|
+ switch dbType {
|
|
|
+ case 0: // mysql
|
|
|
+ return ``
|
|
|
+
|
|
|
+ case 1:
|
|
|
+ return "SET IDENTITY_INSERT eta_master.sys_menu ON;\n"
|
|
|
+ }
|
|
|
+
|
|
|
+ return ``
|
|
|
+}
|
|
|
+
|
|
|
+// getEndSql
|
|
|
+// @Description: 获取结束的sql
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2025-06-03 16:11:30
|
|
|
+// @param dbType int
|
|
|
+// @return string
|
|
|
+func getEndSql(dbType int) string {
|
|
|
+ switch dbType {
|
|
|
+ case 0: // mysql
|
|
|
+
|
|
|
+ return "SELECT role_id INTO @sys_id FROM sys_role WHERE role_name = 'admin';\nDELETE FROM sys_role_menu WHERE role_id = @sys_id;\nINSERT INTO sys_role_menu(`role_id`, `menu_id`, `type`)\nSELECT @sys_id, menu_id, 0 FROM sys_menu;"
|
|
|
+
|
|
|
+ case 1:
|
|
|
+ return "-- 定义变量\nDECLARE\n sys_id INT;\nBEGIN\n -- 查询角色ID并赋值给变量\n SELECT role_id INTO sys_id FROM eta_master.sys_role WHERE role_name = 'admin';\n\n -- 删除角色菜单关联\n DELETE FROM eta_master.sys_role_menu WHERE role_id = sys_id;\n\n -- 插入新的角色菜单关联\n INSERT INTO eta_master.sys_role_menu (role_id, menu_id, type)\n SELECT sys_id, menu_id, 0 FROM eta_master.sys_menu;\nEND;\n /\nSET IDENTITY_INSERT eta_master.sys_menu OFF;\n"
|
|
|
+ }
|
|
|
+
|
|
|
+ return ``
|
|
|
+}
|
|
|
+
|
|
|
+func getMenuStr(menuList []*models.EtaBusinessMenu, dbType int) (str string) {
|
|
|
+
|
|
|
+ tableKey := ""
|
|
|
+ switch dbType {
|
|
|
+ case 1: // dm
|
|
|
+ tableKey = `'`
|
|
|
+ default:
|
|
|
+ // 默认mysql
|
|
|
+ tableKey = `"`
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
menuStrList := []string{}
|
|
|
for _, v := range menuList {
|
|
|
tmpStr := fmt.Sprintf(`(%d, %d, "%s", %d, "%s","%s", "%s",%d, %d, "%s", %d, "%s", "%s", "%s", "%s", "%s")`,
|
|
|
v.MenuId, v.ParentId, v.Name, v.Sort, v.Path, v.IconPath, v.Component, v.Hidden, v.IsLevel, v.LevelPath, v.MenuType, v.ButtonCode, v.CreateTime.Format(utils.FormatDateTime), v.ModifyTime.Format(utils.FormatDateTime), v.Api, v.NameEn)
|
|
|
+
|
|
|
+ tmpStr = strings.Replace(tmpStr, `"`, tableKey, -1)
|
|
|
+
|
|
|
menuStrList = append(menuStrList, tmpStr)
|
|
|
|
|
|
}
|
|
@@ -72,7 +132,7 @@ func getMenuStr(menuList []*models.EtaBusinessMenu) (str string) {
|
|
|
|
|
|
// writeFile 文件写入
|
|
|
func writeFile(baseDir, str string, etaBusiness *models.EtaBusiness) (err error) {
|
|
|
- file, err := os.OpenFile(baseDir+"/"+time.Now().Format(utils.FormatDateMouthDayUnSpace)+"_"+etaBusiness.BusinessName+"_"+etaBusiness.BusinessCode+".txt", os.O_WRONLY|os.O_CREATE, 0666)
|
|
|
+ file, err := os.OpenFile(baseDir+"/"+time.Now().Format(utils.FormatDateMouthDayUnSpace)+"_"+etaBusiness.BusinessName+"_"+etaBusiness.BusinessCode+".txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
return
|