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" "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) { fmt.Println(c.Db.DataSourceName()) paramMap_i_t := map[string]interface{}{"sort": "name"} result, err := sysutils.TreeSearch(c.Db, "system", "sidebar", "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}) } } // _GetMenuTree // @Title _GetMenuTree // @Description 获取系统菜单 // @Param user string false "用户id" // @Success 200 {object} Account // @Failure 403 :id is empty func System_GetMenuTree(c *entitys.CtrlContext) { paramMap_i_t := map[string]interface{}{"sort": "name"} 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}) } } // _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", "") paramMap_i_t := map[string]interface{}{"page": page, "rows": rows, "name": name, "login_id": login_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")) paramMap_i_t := map[string]interface{}{"page": page, "rows": rows} 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 = time.Now() user.LastUpdateDate = time.Now() 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() _, 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) { var user sysmodel.SysUser err := c.Ctx.BindJSON(&user) if err != nil { c.Ctx.JSON(500, sysmodel.SysReturn{500, err.Error(), nil}) return } _, err = c.Db.SqlMapClient("update_sys_user", &user).Execute() if err == nil { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } 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) { name := c.Ctx.Query("name") remark := c.Ctx.Query("remark") ret := __none_func_system__(name, remark) if ret { 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) { id := c.Ctx.Query("id") ret := __none_func_system__(id) if ret { 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) { id := c.Ctx.Query("id") name := c.Ctx.Query("name") remark := c.Ctx.Query("remark") ret := __none_func_system__(id, name, remark) if ret { c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil}) } else { c.Ctx.JSON(500, sysmodel.SysReturn{500, "", 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")) paramMap_i_t := map[string]interface{}{"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", "") 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_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}) } } // _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.Domain = user.Domain paramObj0.CreateBy = user.UserId paramObj0.LastUpdateBy = user.UserId paramObj0.CreateTime = time.Now() paramObj0.LastUpdateDate = time.Now() paramObj0.DelFlag = 0 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) _, err = c.Db.SqlMapClient("insert_sys_menu", ¶mObj0).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) { id := c.Ctx.Query("id") ret := __none_func_system__(id) if ret { 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 c.Ctx.BindJSON(¶mObj0) _, err := c.Db.SqlMapClient("update_sys_menu", paramObj0).Execute() if err == nil { 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 }