소스 검색

'修改菜域添加菜单功能'

huangyh 6 년 전
부모
커밋
0fc8afa00b
2개의 변경된 파일34개의 추가작업 그리고 0개의 파일을 삭제
  1. 31 0
      controllers/partial/SystemController.go
  2. 3 0
      sqlconfig/light-apiengine-develop/sys_menu.xml

+ 31 - 0
controllers/partial/SystemController.go

@@ -217,6 +217,7 @@ func System_DelUser(c *entitys.CtrlContext) {
 	}
 	session := c.Db.NewSession()
 	defer session.Close()
+	session.Begin()
 	_, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 1})
 	if err != nil {
 		session.Rollback()
@@ -556,6 +557,24 @@ func System_UpdateMenu(c *entitys.CtrlContext) {
 	var paramObj0 models.SysMenu
 	err := c.Ctx.BindJSON(&paramObj0)
 
+	tk, _ := c.Ctx.Get("token")
+	user := tk.(*entitys.Token)
+
+	if paramObj0.Parent != "" {
+		parentNodes := []sysmodel.SysMenu{}
+		err := c.Db.SqlMapClient("one_sys_menu", paramObj0.Parent).Find(&parentNodes)
+		if err != nil {
+			c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil})
+			return
+		}
+		paramObj0.Inheritance = fmt.Sprintf("|%s%s", paramObj0.Id, parentNodes[0].Inheritance)
+	} else {
+		paramObj0.Inheritance = fmt.Sprintf("|%s|", paramObj0.Id)
+	}
+
+	paramObj0.LastUpdateBy = user.UserId
+	paramObj0.LastUpdateTime = time.Now().UnixNano()
+
 	paramMap, err := sysutils.BeanToMap(&paramObj0)
 	_, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute()
 
@@ -802,12 +821,24 @@ func System_AddDomainMenu(c *entitys.CtrlContext) {
 		return
 	}
 
+	session := c.App.GetBusinessDb(domain.Domain).NewSession()
+	defer session.Close()
+	session.Begin()
+	_, err = c.App.GetBusinessDb(domain.Domain).SqlMapClient("delete_all_sys_menu", map[string]interface{}{}).Execute()
+	if err != nil {
+		session.Rollback()
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
+		return
+	}
 	_, err = c.App.GetBusinessDb(domain.Domain).Insert(&menus)
 	if err != nil {
+		session.Rollback()
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})
 		return
 	}
 
+	session.Commit()
+
 	ret := __none_func_system__(paramObj0)
 	if ret {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})

+ 3 - 0
sqlconfig/light-apiengine-develop/sys_menu.xml

@@ -4,4 +4,7 @@
         `id`,`name`,`code`,`parent`,`inheritance`,`url`,`component`,`perms`,`type`,`icon`,`order_num`,`create_by`,`create_time`,`last_update_by`,`last_update_time`,`del_flag`
         from sys_menu where del_flag = 0
     </sql>
+    <sql id="delete_all_sys_menu">
+        delete from sys_menu
+    </sql>
 </sqlMap>