package partial import ( "fmt" "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys" "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils" "html/template" "strconv" "time" ) // _Sidebar // @Title _Sidebar // @Description 获取导航菜单 // @Param user string false "用户id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_Sidebar(c *entitys.CtrlContext) { System_GetMenuTree(c) } // _GetMenuTree // @Title _GetMenuTree // @Description 获取系统菜单 // @Param user string false "用户id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetMenuTree(c *entitys.CtrlContext) { _type := c.Ctx.DefaultQuery("type", "") type_op := c.Ctx.DefaultQuery("type_op", "") hidden := c.Ctx.DefaultQuery("hidden", "") name := c.Ctx.DefaultQuery("name", "") cn_id := c.Ctx.DefaultQuery("cn_id", "") op := template.HTML(type_op) paramMap_i_t := map[string]interface{}{"name": name, "cn_id": cn_id, "sort": "name", "type": _type, "type_op": op, "hidden": hidden} result, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _GetDomainTree // @Title _GetDomainTree // @Description 获取域树 // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetDomainTree(c *entitys.CtrlContext) { del_flag := c.Ctx.DefaultQuery("del_flag", "") paramMap_i_t := map[string]interface{}{"sort": "name", "del_flag": del_flag} result, err := sysutils.TreeSearch(c.Db, "system", "get_domain_tree", "sys_domain", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindUserPage // @Title _FindUserPage // @Description 获取用户分页数 // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindUserPage(c *entitys.CtrlContext) { page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1")) rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10")) name := c.Ctx.DefaultQuery("name", "") login_id := c.Ctx.DefaultQuery("login_id", "") org_id := c.Ctx.DefaultQuery("org_id", "") paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_id, "org_id": org_id} result, err := sysutils.PageSearch(c.Db, "system", "find_user_page", "sys_user", paramMap_i_t) if err != nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) return } //type Role struct { // RoleName string `json:"role_name"` // UserRole string `json:"user_role"` //} ////获取用户角色 //users := result.Content.([]map[string]interface{}) //for i, user := range users { // roles := []Role{} // err := c.Db.SqlMapClient("get_roles_by_user_id", user["id"]).Find(&roles) // if err != nil { // fmt.Println("----", err.Error()) // continue // } // users[i]["user_role"] = roles[0].UserRole // users[i]["role_name"] = roles[0].RoleName //} // //result.Content = users if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _GetOrgTree // @Title _GetOrgTree // @Description 获取组织架构树 // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetOrgTree(c *entitys.CtrlContext) { paramMap_i_t := map[string]interface{}{"sort": "name"} result, err := sysutils.TreeSearch(c.Db, "system", "get_org_tree", "sys_org", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindOrgPage // @Title _FindOrgPage // @Description 获取组织架构分页数 // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindOrgPage(c *entitys.CtrlContext) { page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1")) rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10")) name := c.Ctx.DefaultQuery("name", "") code := c.Ctx.DefaultQuery("code", "") cn_id := c.Ctx.DefaultQuery("cn_id", "") paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "code": code, "cn_id": cn_id} result, err := sysutils.PageSearch(c.Db, "system", "find_org_page", "sys_org", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _AddUser // @Title _AddUser // @Description 添加用户 // @Param login_id string false "登录ID" // @Param password string false "密码" // @Param org_id string false "组织ID" // @Param email string false "邮箱" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddUser(c *entitys.CtrlContext) { var user sysmodel.SysUser err := c.Ctx.BindJSON(&user) if err != nil { c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil}) } fmt.Println(user.LoginId, "-----add user-----", user.Password, " --- ", user.OrgId) //查找login_id是否存在 oldUser := new(sysmodel.SysUser) count, _ := c.Db.SQL("select * from sys_user").Where("login_id = ?", user.LoginId).Count(&oldUser) if count > 1 { if oldUser.DelFlag == 1 { oldUser.DelFlag = 0 _, err := c.Db.Id("id").Cols("del_flag").Update(&oldUser) if err != nil { c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit, update err: " + err.Error(), nil}) } return } else { c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil}) return } } user_id := c.Ctx.GetString("user_id") user.Id = sysutils.NewUUID() user.Name = user.LoginId user.CreateTime = models.NowLocal() user.LastUpdateTime = time.Now().UnixNano() user.CreateBy = user_id user.LastUpdateBy = user_id user.DelFlag = 0 user.Password = sysutils.HashPassword(user.Password, "") _, err = c.Db.Insert(&user) ret := __none_func_system__(user.LoginId, user.Password, user.OrgId, user.Email) if ret && err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil}) } } // _DelUser // @Title _DelUser // @Description 删除用户 // @Param id string false "用户ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_DelUser(c *entitys.CtrlContext) { type Param struct { Id string `json:"id"` } var params []Param c.Ctx.BindJSON(¶ms) ids := []string{} for _, param := range params { ids = append(ids, param.Id) } 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() c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil}) return } _, err = c.Db.Table(new(models.SysUserRole)).In("user_id", ids).Update(map[string]interface{}{"del_flag": 1}) if err != nil { session.Rollback() c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil}) return } session.Commit() ret := __none_func_system__() if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil}) } } // _UpdateUser // @Title _UpdateUser // @Description 修改用户 // @Param login_id string false "登录ID" // @Param password string false "密码" // @Param org_id string false "组织ID" // @Param email string false "邮箱" // @Success 200 {object} Account // @Failure 403 :id is empty func System_UpdateUser(c *entitys.CtrlContext) { tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) var postData struct { sysmodel.SysUser UserRole []string `json:"user_role"` } //var user sysmodel.SysUser err := c.Ctx.BindJSON(&postData) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } postData.LastUpdateTime = time.Now().UnixNano() postData.LastUpdateBy = user.UserId session := c.Db.NewSession() defer session.Close() session.Begin() paramMap, _ := sysutils.BeanToMap(&postData) _, err = session.SqlMapClient("update_sys_user", paramMap).Execute() if err != nil { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } userRoles := []sysmodel.SysUserRole{} for _, roleId := range postData.UserRole { userRole := sysmodel.SysUserRole{} userRole.Id = sysutils.NewUUID() userRole.UserId = postData.Id userRole.RoleId = roleId userRole.DelFlag = 0 userRole.CreateTime = sysmodel.NowLocal() userRole.CreateBy = user.UserId userRole.LastUpdateBy = user.UserId userRole.LastUpdateTime = time.Now().UnixNano() userRoles = append(userRoles, userRole) } _, err = session.SqlMapClient("delete_user_role", &map[string]interface{}{"user_id": postData.Id}).Execute() if err != nil { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } _, err = session.InsertMulti(&userRoles) if err == nil { session.Commit() c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _GetUser // @Title _GetUser // @Description 更加用户ID获取用户信息 // @Param user_id string false "用户ID" // @Success 200 {object} Account // @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 { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _AddRole // @Title _AddRole // @Description 添加角色 // @Param name string false "角色名称" // @Param remark string false "备注" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddRole(c *entitys.CtrlContext) { var paramObj0 models.SysRole c.Ctx.BindJSON(¶mObj0) tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) paramObj0.Id = sysutils.NewUUID() paramObj0.CreateBy = user.UserId paramObj0.LastUpdateBy = user.UserId paramObj0.CreateTime = models.NowLocal() paramObj0.LastUpdateTime = time.Now().UnixNano() paramObj0.DelFlag = 0 //_, err := c.LocalSqlMapClient("insert_sys_role", ¶mObj0).Execute() paramMap, err := sysutils.BeanToMap(¶mObj0) _, err = c.Db.SqlMapClient("insert_sys_role", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _DelRole // @Title _DelRole // @Description 添加角色 // @Param id string false "角色ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_DelRole(c *entitys.CtrlContext) { type Param struct { Id string `json:"id"` } var params []Param c.Ctx.BindJSON(¶ms) ids := []string{} for _, param := range params { ids = append(ids, param.Id) } _, err := c.Db.Table(new(models.SysRole)).In("id", ids).Update(map[string]interface{}{"del_flag": 1}) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _UpdateRole // @Title _UpdateRole // @Description 修改角色 // @Param id string false "角色ID" // @Param name string false "角色名称" // @Param remark string false "备注" // @Success 200 {object} Account // @Failure 403 :id is empty func System_UpdateRole(c *entitys.CtrlContext) { var role sysmodel.SysRole err := c.Ctx.BindJSON(&role) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } paramMap, _ := sysutils.BeanToMap(&role) _, err = c.Db.SqlMapClient("update_sys_role", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindRolePage // @Title _FindRolePage // @Description 角色分页 // @Param page false "分页参数" // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindRolePage(c *entitys.CtrlContext) { page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1")) rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10")) name := c.Ctx.DefaultQuery("name", "") code := c.Ctx.DefaultQuery("code", "") paramMap_i_t := map[string]interface{}{"name": name, "code": code, "page": page, "rows": rows} result, err := sysutils.PageSearch(c.Db, "system", "find_role_page", "sys_role", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindMenuPage // @Title _FindMenuPage // @Description 获取角色分页数 // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindMenuPage(c *entitys.CtrlContext) { page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1")) rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10")) name := c.Ctx.DefaultQuery("name", "") code := c.Ctx.DefaultQuery("code", "") cn_id := c.Ctx.DefaultQuery("cn_id", "") _type := c.Ctx.DefaultQuery("type", "") type_op := c.Ctx.DefaultQuery("type_op", "") hidden := c.Ctx.DefaultQuery("hidden", "") op := template.HTML(type_op) paramMap_i_t := map[string]interface{}{"hidden": hidden, "page": page, "rows": rows, "type": _type, "type_op": op, "name": name, "code": code, "cn_id": cn_id} result, err := sysutils.PageSearch(c.Db, "system", "find_menu_page", "sys_menu", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindDomainPage // @Title _FindDomainPage // @Description 获取域分页数 // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindDomainPage(c *entitys.CtrlContext) { page, _ := strconv.Atoi(c.Ctx.DefaultQuery("page", "1")) rows, _ := strconv.Atoi(c.Ctx.DefaultQuery("rows", "10")) paramMap_i_t := map[string]interface{}{"page": page, "rows": rows} result, err := sysutils.PageSearch(c.Db, "system", "find_domain_page", "sys_domain", paramMap_i_t) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", result}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _FindRoleMenu // @Title _FindRoleMenu // @Description 查找角色权限 // @Param role_id string false "角色id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindRoleMenu(c *entitys.CtrlContext) { role_id := c.Ctx.Query("role_id") ret := __none_func_system__(role_id) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _SaveRoleMenu // @Title _SaveRoleMenu // @Description 保存角色权限 // @Param role_menu string false "角色权限" // @Success 200 {object} Account // @Failure 403 :id is empty func System_SaveRoleMenu(c *entitys.CtrlContext) { var paramObj0 []models.SaveRoleMenu c.Ctx.BindJSON(¶mObj0) ret := __none_func_system__(paramObj0) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _RoleAll // @Title _RoleAll // @Description 查找所有角色 // @Success 200 {object} Account // @Failure 403 :id is empty func System_RoleAll(c *entitys.CtrlContext) { ret := __none_func_system__() if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _FindPermissions // @Title _FindPermissions // @Description 查找用户权限 // @Success 200 {object} Account // @Failure 403 :id is empty func System_FindPermissions(c *entitys.CtrlContext) { ret := __none_func_system__() if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _AddMenu // @Title _AddMenu // @Description 添加菜单 // @Param string false "菜单" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddMenu(c *entitys.CtrlContext) { var paramObj0 models.SysMenu c.Ctx.BindJSON(¶mObj0) tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) paramObj0.Id = sysutils.NewUUID() paramObj0.CreateBy = user.UserId paramObj0.LastUpdateBy = user.UserId paramObj0.CreateTime = models.NowLocal() paramObj0.LastUpdateTime = time.Now().UnixNano() paramObj0.DelFlag = 0 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) } //_, err := c.LocalSqlMapClient("insert_sys_menu", ¶mObj0).Execute() paramMap, err := sysutils.BeanToMap(¶mObj0) _, err = c.Db.SqlMapClient("insert_sys_menu", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _DelMenu // @Title _DelMenu // @Description 删除菜单 // @Param id string false "菜单ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_DelMenu(c *entitys.CtrlContext) { type Param struct { Id string `json:"id"` } var params []Param c.Ctx.BindJSON(¶ms) ids := []string{} for _, param := range params { ids = append(ids, param.Id) } _, err := c.Db.Table(new(models.SysMenu)).In("id", ids).Update(map[string]interface{}{"del_flag": 1}) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _UpdateMenu // @Title _UpdateMenu // @Description 更新菜单 // @Param string false "菜单" // @Success 200 {object} Account // @Failure 403 :id is empty func System_UpdateMenu(c *entitys.CtrlContext) { var paramObj0 models.SysMenu err := c.Ctx.BindJSON(¶mObj0) 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(¶mObj0) _, err = c.Db.SqlMapClient("update_sys_menu", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _AddOrg // @Title _AddOrg // @Description 添加组织 // @Param name string false "组织名称" // @Param domain string false "域" // @Param parent string false "父ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddOrg(c *entitys.CtrlContext) { var paramObj0 models.SysOrg c.Ctx.BindJSON(¶mObj0) tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) paramObj0.Id = sysutils.NewUUID() paramObj0.CreateBy = user.UserId paramObj0.LastUpdateBy = user.UserId paramObj0.CreateTime = models.NowLocal() paramObj0.LastUpdateTime = time.Now().UnixNano() paramObj0.DelFlag = 0 if paramObj0.Parent != "" { parentNodes := []sysmodel.SysOrg{} err := c.Db.SqlMapClient("one_sys_org", 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) } //_, err := c.LocalSqlMapClient("insert_sys_org", ¶mObj0).Execute() paramMap, err := sysutils.BeanToMap(¶mObj0) _, err = c.Db.SqlMapClient("insert_sys_org", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _DelOrg // @Title _DelOrg // @Description 删除组织 // @Param id string array false "用户ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_DelOrg(c *entitys.CtrlContext) { type Param struct { Id string `json:"id"` } var params []Param c.Ctx.BindJSON(¶ms) ids := []string{} for _, param := range params { ids = append(ids, param.Id) } _, err := c.Db.Table(new(models.SysOrg)).In("id", ids).Update(map[string]interface{}{"del_flag": 1}) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _UpdateOrg // @Title _UpdateOrg // @Description 修改组织 // @Param name string false "组织名称" // @Param domain string false "域" // @Param parent string false "父ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_UpdateOrg(c *entitys.CtrlContext) { //name := c.Ctx.Query("name") //domain := c.Ctx.Query("domain") //parent := c.Ctx.Query("parent") var paramObj0 models.SysOrg err := c.Ctx.BindJSON(¶mObj0) tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) if paramObj0.Parent != "" { parentNodes := []sysmodel.SysOrg{} err := c.Db.SqlMapClient("one_sys_org", 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(¶mObj0) _, err = c.Db.SqlMapClient("update_sys_org", paramMap).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _GetOrgByUserid // @Title _GetOrgByUserid // @Description 根据用户id获取用户组织 // @Param user_id string false "用户id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetOrgByUserid(c *entitys.CtrlContext) { user_id := c.Ctx.Query("user_id") var org sysmodel.SysOrg err := c.Db.SqlMapClient("get_org_by_userid", user_id).Find(&org) if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", org}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _AddDomain // @Title _AddDomain // @Description 添加域 // @Param false "域" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddDomain(c *entitys.CtrlContext) { var paramObj0 models.SysDomain c.Ctx.BindJSON(¶mObj0) ////1、测试连接串 //db, err := xorm.NewEngine("mysql", paramObj0.DataSource) //if err == nil { // //engine.initOrmEngine(db, "mysql") // //c.BusinessOrmEngine[v.Domain] = db //} tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) paramObj0.Id = sysutils.NewUUID() paramObj0.CreateBy = user.UserId paramObj0.LastUpdateBy = user.UserId paramObj0.CreateTime = sysmodel.NowLocal() paramObj0.LastUpdateTime = time.Now().UnixNano() paramObj0.DelFlag = 0 paramMap, err := sysutils.BeanToMap(¶mObj0) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } _, err = c.Db.SqlMapClient("insert_sys_domain", paramMap).Execute() if err == nil { //添加数据库基本用户权限数据 ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil}) } } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _DelDomain // @Title _DelDomain // @Description 删除域 // @Param id string false "域ID" // @Success 200 {object} Account // @Failure 403 :id is empty func System_DelDomain(c *entitys.CtrlContext) { type Param struct { Id string `json:"id"` } var params []Param c.Ctx.BindJSON(¶ms) ids := []string{} for _, param := range params { ids = append(ids, param.Id) } _, err := c.Db.Table(new(models.SysDomain)).In("id", ids).Update(map[string]interface{}{"del_flag": 1}) if err != nil { c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil}) return } ret := __none_func_system__() if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil}) } } // _UpdateDomain // @Title _UpdateDomain // @Description 修改域 // @Param false "域" // @Success 200 {object} Account // @Failure 403 :id is empty func System_UpdateDomain(c *entitys.CtrlContext) { var paramObj0 models.SysDomain c.Ctx.BindJSON(¶mObj0) tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) paramObj0.LastUpdateTime = time.Now().UnixNano() paramObj0.LastUpdateBy = user.UserId paramMap, err := sysutils.BeanToMap(¶mObj0) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } _, err = c.Db.SqlMapClient("update_sys_domain", paramMap).Execute() if err == nil { //添加数据库基本用户权限数据 ret := c.App.AddBusinessDb(paramObj0.Id, "admin@"+paramObj0.Domain, paramObj0.Domain, paramObj0.DataSource, true) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", paramObj0.Id}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "数据库初始化错误。", nil}) } } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) } } // _AddDomainMenu // @Title _AddDomainMenu // @Description 域添加菜单 // @Param false "添加域菜单bean" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddDomainMenu(c *entitys.CtrlContext) { var paramObj0 struct { //域名ID DomainId string `json:"domain_id"` //菜单 Menus []sysmodel.SysMenu `json:"menus"` } err := c.Ctx.BindJSON(¶mObj0) 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", ¶m).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", 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").Execute() if err != nil { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, "Insert menu error: " + err.Error(), nil}) return } if len(paramObj0.Menus) <= 0 { session.Rollback() c.Ctx.JSON(200, sysmodel.SysReturn{500, "the menus is empty", nil}) return } _, err = c.App.GetBusinessDb(domain.Domain).Insert(¶mObj0.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}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _GetDomainMenuTree // @Title _GetDomainMenuTree // @Description 域添加菜单 // @Param domain_id string false "域id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetDomainMenuTree(c *entitys.CtrlContext) { domain_id := c.Ctx.Query("domain_id") _type := c.Ctx.DefaultQuery("type", "") type_op := c.Ctx.DefaultQuery("type_op", "") op := template.HTML(type_op) var domain sysmodel.SysDomain param := map[string]interface{}{"id": domain_id, "type": _type, "type_op": op} _, err := c.Db.SqlMapClient("selectone_sys_domain", ¶m).Get(&domain) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, "not find domain error: " + err.Error(), nil}) return } paramMap := map[string]interface{}{"type": _type, "type_op": op, "name": "", "hidden": ""} domainMenus, err := c.App.GetBusinessDb(domain.Domain).SqlTemplateClient("system_get_menu_tree.tpl", ¶mMap).Query().List() if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, "get domain_menu tree: " + err.Error(), nil}) return } domainTree, err := sysutils.BuildTree("", domainMenus) sysMenus, err := c.Db.SqlTemplateClient("system_get_menu_tree.tpl", ¶mMap).Query().List() if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, "get sys_menu tree: " + err.Error(), nil}) return } var sysMenusMap map[string]map[string]interface{} sysMenusMap = make(map[string]map[string]interface{}, 0) for _, menu := range sysMenus { sysMenusMap[menu["id"].(string)] = menu } //剔除域已存在的菜单 //for _, domainMenu := range domainMenus { // delete(sysMenusMap, domainMenu["id"].(string)) //} var sysMenuRest []map[string]interface{} for _, menu := range sysMenusMap { sysMenuRest = append(sysMenuRest, menu) } sysTree, err := sysutils.BuildTree("", sysMenuRest) ret := __none_func_system__(domain_id) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "domain_tree": domainTree}}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _GetUserMenuTree // @Title _GetUserMenuTree // @Description 获取用户权限菜单 // @Param user_id string false "用户id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetRoleMenuTree(c *entitys.CtrlContext) { role_id := c.Ctx.Query("role_id") //paramMap := map[string]interface{}{"role_id": role_id} //sysMenu, err := c.Db.SqlMapClient("get_role_no_have_menu_tree", ¶mMap).Query().List() //if err != nil { // c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) // return //} //sysTree, err := sysutils.BuildTree("", sysMenu) op := template.HTML(">=") paramMap := map[string]interface{}{"sort": "name", "type": 0, "type_op": op, "hidden": 0} sysTree, err := sysutils.TreeSearch(c.Db, "system", "get_menu_tree", "sys_menu", paramMap) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } paramMap2 := map[string]interface{}{"role_id": role_id} //roleTree, err := sysutils.TreeSearch(c.Db, "system", "get_role_menu_tree", "sys_menu", paramMap2) roleMenu, err := c.Db.SqlMapClient("get_role_menu_tree", ¶mMap2).Query().List() if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } roleTree, err := sysutils.BuildTree("", roleMenu) ret := __none_func_system__(role_id) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", map[string]interface{}{"sys_tree": sysTree, "role_tree": roleTree}}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } // _AddRoleMenu // @Title _AddRoleMenu // @Description 添加角色菜单 // @Param menu_id false "菜单id" // @Param role_id string false "角色id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_AddRoleMenu(c *entitys.CtrlContext) { tk, _ := c.Ctx.Get("token") user := tk.(*entitys.Token) var paramObj0 struct { MenuIds []string `json:"menu_ids"` RoleId string `json:"role_id"` } c.Ctx.BindJSON(¶mObj0) session := c.Db.NewSession() defer session.Close() session.Begin() _, err := session.SqlMapClient("del_role_menu", paramObj0.RoleId).Execute() if err != nil { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } var roleMenus []*sysmodel.SysRoleMenu for _, menu := range paramObj0.MenuIds { roleMenu := &sysmodel.SysRoleMenu{} roleMenu.Id = sysutils.NewUUID() roleMenu.MenuId = menu roleMenu.RoleId = paramObj0.RoleId roleMenu.CreateBy = user.UserId roleMenu.CreateTime = sysmodel.NowLocal() roleMenus = append(roleMenus, roleMenu) } _, err = session.InsertMulti(&roleMenus) if err != nil { session.Rollback() c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } session.Commit() ret := __none_func_system__(paramObj0) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", nil}) } } func __none_func_system__(params ...interface{}) bool { return true }