|
|
@@ -2,11 +2,12 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
- "light-apiengine/models"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
|
+ "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
+
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
|
|
|
sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
|
|
|
"git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
|
|
|
@@ -90,6 +91,28 @@ func System_Logout(c *SystemController) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// _GetNavTree
|
|
|
+// @Title _GetNavTree
|
|
|
+// @Description 获取导航菜单
|
|
|
+// @Param user string false "用户id"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_GetNavTree(c *SystemController) {
|
|
|
+ user := c.Ctx.Param(":user")
|
|
|
+ ret := __none_func_system__(user)
|
|
|
+ var menus []sysmodel.SysMenuTree
|
|
|
+ c.Db.SQL(sysmodel.Selectall_sys_menu).Find(&menus)
|
|
|
+
|
|
|
+ var menutree []sysmodel.SysMenuTree
|
|
|
+ finChildrenMenu(&menus, "", nil, &menutree)
|
|
|
+ for i := 0; i < len(menutree); i++ {
|
|
|
+ finChildrenMenu(&menus, menutree[i].Id, &menutree[i], &menutree)
|
|
|
+ }
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", menutree})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// _GetMenuTree
|
|
|
// @Title _GetMenuTree
|
|
|
// @Description 获取系统菜单
|
|
|
@@ -97,11 +120,11 @@ func System_Logout(c *SystemController) {
|
|
|
// @Success 200 {object} sysmodel.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
func System_GetMenuTree(c *SystemController) {
|
|
|
+
|
|
|
user := c.Ctx.Param(":user")
|
|
|
ret := __none_func_system__(user)
|
|
|
var menus []sysmodel.SysMenuTree
|
|
|
c.Db.SQL(sysmodel.Selectall_sys_menu).Find(&menus)
|
|
|
-
|
|
|
var menutree []sysmodel.SysMenuTree
|
|
|
finChildrenMenu(&menus, "", nil, &menutree)
|
|
|
for i := 0; i < len(menutree); i++ {
|
|
|
@@ -110,6 +133,7 @@ func System_GetMenuTree(c *SystemController) {
|
|
|
if ret {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{200, "", menutree})
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// _GetOrgTree
|
|
|
@@ -155,9 +179,11 @@ func finChildrenMenu(menus *[]sysmodel.SysMenuTree, parent string, parent_menu *
|
|
|
for _, m := range *menus {
|
|
|
if m.Parent == parent {
|
|
|
if parent_menu == nil {
|
|
|
+ m.Level = 0
|
|
|
*menutree = append(*menutree, m)
|
|
|
//finChildrenMenu(menus, m.Id, menutree[len(*menutree)-1], menutree)
|
|
|
} else {
|
|
|
+ m.Level = parent_menu.Level + 1
|
|
|
parent_menu.Children = append(parent_menu.Children, m)
|
|
|
finChildrenMenu(menus, m.Id, &parent_menu.Children[len(parent_menu.Children)-1], menutree)
|
|
|
}
|
|
|
@@ -363,6 +389,130 @@ func System_UpdateUser(c *SystemController) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// _AddRole
|
|
|
+// @Title _AddRole
|
|
|
+// @Description 添加角色
|
|
|
+// @Param name string false "角色名称"
|
|
|
+// @Param remark string false "备注"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_AddRole(c *SystemController) {
|
|
|
+ var role models.SysRole
|
|
|
+ c.Ctx.BindJSON(&role)
|
|
|
+
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ role.Id = utils.NewUUID()
|
|
|
+ role.DelFlag = 1
|
|
|
+ role.CreateBy = op.UserId
|
|
|
+ role.LastUpdateBy = op.UserId
|
|
|
+ role.CreateTime = time.Now()
|
|
|
+ role.LastUpdateDate = time.Now()
|
|
|
+
|
|
|
+ _, err := c.Db.Insert(&role)
|
|
|
+
|
|
|
+ ret := __none_func_system__()
|
|
|
+ if ret && err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _DelRole
|
|
|
+// @Title _DelRole
|
|
|
+// @Description 添加角色
|
|
|
+// @Param id string false "角色ID"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_DelRole(c *SystemController) {
|
|
|
+ type Param struct {
|
|
|
+ Id string `json:"id"`
|
|
|
+ }
|
|
|
+
|
|
|
+ var params []Param
|
|
|
+ c.Ctx.BindJSON(¶ms)
|
|
|
+ fmt.Println(params, "-----------")
|
|
|
+ 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": 0})
|
|
|
+ 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})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _UpdateRole
|
|
|
+// @Title _UpdateRole
|
|
|
+// @Description 修改角色
|
|
|
+// @Param id string false "角色ID"
|
|
|
+// @Param name string false "角色名称"
|
|
|
+// @Param remark string false "备注"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_UpdateRole(c *SystemController) {
|
|
|
+
|
|
|
+ var role models.SysRole
|
|
|
+ c.Ctx.BindJSON(&role)
|
|
|
+
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ role.LastUpdateBy = op.UserId
|
|
|
+ role.LastUpdateDate = time.Now()
|
|
|
+
|
|
|
+ c.Db.ID(role.Id).Update(&role)
|
|
|
+
|
|
|
+ ret := __none_func_system__()
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _FindRolePage
|
|
|
+// @Title _FindRolePage
|
|
|
+// @Description 角色分页
|
|
|
+// @Param page false "分页参数"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_FindRolePage(c *SystemController) {
|
|
|
+ var getpageinfo models.GetPageInfo
|
|
|
+ c.Ctx.BindJSON(&getpageinfo)
|
|
|
+
|
|
|
+ page := sysmodel.SysRolePageInfo{}
|
|
|
+ var roles []sysmodel.SysRole
|
|
|
+ err := c.Db.SQL(sysmodel.Selectall_sys_role).Limit(getpageinfo.PageSize, (getpageinfo.PageNum-1)*getpageinfo.PageSize).Find(&roles)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("-----------", len(roles))
|
|
|
+ page.Content = roles
|
|
|
+ page.PageSize = getpageinfo.PageSize
|
|
|
+ page.PageNum = getpageinfo.PageNum
|
|
|
+ page.TotalSize = 1
|
|
|
+
|
|
|
+ ret := __none_func_system__(getpageinfo)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", page})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// _FindRoleMenu
|
|
|
// @Title _FindRoleMenu
|
|
|
// @Description 查找角色权限
|
|
|
@@ -370,8 +520,33 @@ func System_UpdateUser(c *SystemController) {
|
|
|
// @Success 200 {object} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
func System_FindRoleMenu(c *SystemController) {
|
|
|
- user := c.Ctx.Param(":user")
|
|
|
- ret := __none_func_system__(user)
|
|
|
+
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ menus := []models.SysMenu{}
|
|
|
+ c.Db.SQL(models.SqlSelectRoleMenuByUserId, op.UserId).Find(&menus)
|
|
|
+
|
|
|
+ ret := __none_func_system__()
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", menus})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _SaveRoleMenu
|
|
|
+// @Title _SaveRoleMenu
|
|
|
+// @Description 保存角色权限
|
|
|
+// @Param role_menu string false "角色权限"
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_SaveRoleMenu(c *SystemController) {
|
|
|
+ var saverolemenu []models.SaveRoleMenu
|
|
|
+
|
|
|
+ c.Ctx.BindJSON(&saverolemenu)
|
|
|
+
|
|
|
+ ret := __none_func_system__(&saverolemenu)
|
|
|
if ret {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
} else {
|
|
|
@@ -397,17 +572,51 @@ func System_RoleAll(c *SystemController) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// _FindPermissions
|
|
|
+// @Title _FindPermissions
|
|
|
+// @Description 查找用户权限
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_FindPermissions(c *SystemController) {
|
|
|
+
|
|
|
+ ret := __none_func_system__()
|
|
|
+
|
|
|
+ strs := []string{"sys:menu:add", "sys:menu:view", "sys:menu:edit", "sys:menu:delete", "sys:user:edit", "sys:user:delete", "sys:user:add", "sys:role:view", "sys:role:edit", "sys:role:delete", "sys:role:add"}
|
|
|
+
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strs})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// _AddMenu
|
|
|
// @Title _AddMenu
|
|
|
-// @Description 增加菜单
|
|
|
-// @Param perms string false "权限标识"
|
|
|
-// @Param domain string false "域"
|
|
|
+// @Description 添加菜单
|
|
|
+// @Param string false "菜单"
|
|
|
// @Success 200 {object} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
func System_AddMenu(c *SystemController) {
|
|
|
- perms := c.Ctx.Param(":perms")
|
|
|
- domain := c.Ctx.Param(":domain")
|
|
|
- ret := __none_func_system__(perms, domain)
|
|
|
+ var sysmenu models.SysMenu
|
|
|
+ c.Ctx.BindJSON(&sysmenu)
|
|
|
+
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ sysmenu.Id = utils.NewUUID()
|
|
|
+ sysmenu.CreateBy = op.UserId
|
|
|
+ sysmenu.LastUpdateBy = op.UserId
|
|
|
+ sysmenu.LastUpdateDate = time.Now()
|
|
|
+ sysmenu.CreateTime = time.Now()
|
|
|
+ sysmenu.DelFlag = 1
|
|
|
+
|
|
|
+ _, err := c.Db.Insert(&sysmenu)
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ret := __none_func_system__(sysmenu)
|
|
|
if ret {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
} else {
|
|
|
@@ -418,12 +627,29 @@ func System_AddMenu(c *SystemController) {
|
|
|
// _DelMenu
|
|
|
// @Title _DelMenu
|
|
|
// @Description 删除菜单
|
|
|
-// @Param id string false "ID"
|
|
|
+// @Param id string false "菜单ID"
|
|
|
// @Success 200 {object} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
func System_DelMenu(c *SystemController) {
|
|
|
- id := c.Ctx.Param(":id")
|
|
|
- ret := __none_func_system__(id)
|
|
|
+ type Param struct {
|
|
|
+ Id string `json:"id"`
|
|
|
+ }
|
|
|
+
|
|
|
+ var params []Param
|
|
|
+ c.Ctx.BindJSON(¶ms)
|
|
|
+ fmt.Println(params, "-----------")
|
|
|
+ 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": 0})
|
|
|
+ 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 {
|
|
|
@@ -431,19 +657,32 @@ func System_DelMenu(c *SystemController) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// _FindPermissions
|
|
|
-// @Title _FindPermissions
|
|
|
-// @Description 查找用户权限
|
|
|
+// _UpdateMenu
|
|
|
+// @Title _UpdateMenu
|
|
|
+// @Description 更新菜单
|
|
|
+// @Param string false "菜单"
|
|
|
// @Success 200 {object} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
-func System_FindPermissions(c *SystemController) {
|
|
|
+func System_UpdateMenu(c *SystemController) {
|
|
|
+ var sysmenu models.SysMenu
|
|
|
+ c.Ctx.BindJSON(&sysmenu)
|
|
|
|
|
|
- ret := __none_func_system__()
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
|
|
|
- strs := []string{"sys:user:edit", "sys:user:delete", "sys:user:add"}
|
|
|
+ sysmenu.LastUpdateBy = op.UserId
|
|
|
+ sysmenu.LastUpdateDate = time.Now()
|
|
|
|
|
|
+ _, err := c.Db.ID(sysmenu.Id).Update(&sysmenu)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ret := __none_func_system__(sysmenu)
|
|
|
if ret {
|
|
|
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strs})
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
} else {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
}
|