Forráskód Böngészése

修复add_domain_menu bug,可以更新菜单名称

huangrf 6 éve
szülő
commit
60203b9e9a
1 módosított fájl, 37 hozzáadás és 7 törlés
  1. 37 7
      controllers/partial/SystemController.go

+ 37 - 7
controllers/partial/SystemController.go

@@ -276,10 +276,10 @@ func System_UpdateUser(c *entitys.CtrlContext) {
 // @Failure 403 :id is empty
 func System_GetUser(c *entitys.CtrlContext) {
 	user_id := c.Ctx.Query("user_id")
-	
+
 	var user sysmodel.SysUser
 	err := c.Db.SqlMapClient("selectone_sys_user",map[string]interface{}{"id": user_id}).Find(&user)
-	
+
 	if err == nil {
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", user})
 	}else{
@@ -829,28 +829,58 @@ func System_UpdateDomain(c *entitys.CtrlContext) {
 // @Success 200 {object} Account
 // @Failure 403 :id is empty
 func System_AddDomainMenu(c *entitys.CtrlContext) {
-	var paramObj0 models.AddDomainMenu
-	c.Ctx.BindJSON(&paramObj0)
+	var paramObj0 struct {
+
+		//域名ID
+		DomainId   string `json:"domain_id"`
+		//菜单
+		Menus   []struct{
+			Id string `json:"id"`
+			Name string `json:"name"`
+		} `json:"menus"`
+
+	}
+	err := c.Ctx.BindJSON(&paramObj0)
+	if err != nil{
+		c.Ctx.JSON(500, sysmodel.SysReturn{500, "BindJSON error: " + err.Error(), nil})
+		return
+	}
+	if len(paramObj0.Menus) <= 0{
+		c.Ctx.JSON(200, sysmodel.SysReturn{500, "the menus is empty", nil})
+		return
+	}
 
 	var domain sysmodel.SysDomain
 	param := map[string]interface{}{"id": paramObj0.DomainId}
-	_, err := c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
+	_, err = c.Db.SqlMapClient("selectone_sys_domain", &param).Get(&domain)
 	if err != nil {
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil})
 		return
 	}
 
+	var menuIds = make([]string, len(paramObj0.Menus))
+	for i := range paramObj0.Menus{
+		menuIds[i] = paramObj0.Menus[i].Id
+	}
 	var menus []sysmodel.SysMenu
-	err = c.Db.In("id", paramObj0.Menus).Find(&menus)
+	err = c.Db.In("id", menuIds).Find(&menus)
 	if err != nil {
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "find menu error: " + err.Error(), nil})
 		return
 	}
+	for i := range menus{
+		for j := range paramObj0.Menus{
+			if menus[i].Id == paramObj0.Menus[j].Id{
+				menus[i].Name = paramObj0.Menus[j].Name
+				break
+			}
+		}
+	}
 
 	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()
+	_, err = c.App.GetBusinessDb(domain.Domain).SqlMapClient("delete_all_sys_menu").Execute()
 	if err != nil {
 		session.Rollback()
 		c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil})