|
|
@@ -2,6 +2,7 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "light-apiengine/models"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
@@ -177,8 +178,16 @@ func System_FindUserPage(c *SystemController) {
|
|
|
__none_func_system__(getpageinfo)
|
|
|
fmt.Println(getpageinfo)
|
|
|
page := sysmodel.SysUserPageInfo{}
|
|
|
- var users []sysmodel.SysUser
|
|
|
- err := c.Db.SQL(sysmodel.Selectall_sys_user).Limit(getpageinfo.PageSize, (getpageinfo.PageNum-1)*getpageinfo.PageSize).Find(&users)
|
|
|
+ var users []sysmodel.UserInfo
|
|
|
+ err := c.Db.SQL(sysmodel.SqlUserInfoPage).Limit(getpageinfo.PageSize, (getpageinfo.PageNum-1)*getpageinfo.PageSize).Find(&users)
|
|
|
+
|
|
|
+ //查找每个用户的角色
|
|
|
+ for i, user := range users {
|
|
|
+ roles := []sysmodel.SysUserRole{}
|
|
|
+ c.Db.SQL(sysmodel.SqlSelectUserRoles, user.Id).Find(&roles)
|
|
|
+ users[i].UserRole = roles
|
|
|
+ }
|
|
|
+
|
|
|
page.Content = users
|
|
|
page.PageSize = getpageinfo.PageSize
|
|
|
page.PageNum = getpageinfo.PageNum
|
|
|
@@ -192,18 +201,176 @@ func System_FindUserPage(c *SystemController) {
|
|
|
|
|
|
}
|
|
|
|
|
|
-// _FindPermissions
|
|
|
-// @Title _FindPermissions
|
|
|
-// @Description 查找用户的菜单权限标识集合
|
|
|
-// @Param user string false "用户id"
|
|
|
-// @Success 200 {object} sysmodel.Account
|
|
|
+// _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} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
-func System_FindPermissions(c *SystemController) {
|
|
|
- //获取用户id
|
|
|
+func System_AddUser(c *SystemController) {
|
|
|
+
|
|
|
+ var user sysmodel.SysUser
|
|
|
+ c.Ctx.BindJSON(&user)
|
|
|
+
|
|
|
+ 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 == 0 {
|
|
|
+ oldUser.DelFlag = 1
|
|
|
+ _, 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})
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "login_id exit", nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
tk, _ := c.Ctx.Get("token")
|
|
|
- user := tk.(*entitys.Token)
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ user.Id = utils.NewUUID()
|
|
|
+ user.Name = user.LoginId
|
|
|
+ user.CreateTime = time.Now()
|
|
|
+ user.LastUpdateDate = time.Now()
|
|
|
+ user.CreateBy = op.UserId
|
|
|
+ user.LastUpdateBy = op.UserId
|
|
|
+ user.DelFlag = 1
|
|
|
+ user.Password = utils.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} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_DelUser(c *SystemController) {
|
|
|
+ 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)).ID(param.Id).Update(map[string]interface{}{"del_flag": 0})
|
|
|
+ _, err := c.Db.Table(new(models.SysUser)).In("id", ids).Update(map[string]interface{}{"del_flag": 0})
|
|
|
+ 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": 0})
|
|
|
+ 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} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_UpdateUser(c *SystemController) {
|
|
|
+ tk, _ := c.Ctx.Get("token")
|
|
|
+ op := tk.(*entitys.Token)
|
|
|
+
|
|
|
+ var userInfo sysmodel.UserInfo
|
|
|
+ c.Ctx.BindJSON(&userInfo)
|
|
|
+
|
|
|
+ session := c.Db.NewSession()
|
|
|
+ defer session.Close()
|
|
|
+ //1、删除用户角色
|
|
|
+ _, err := c.Db.SQL(sysmodel.SqlDeleteUserRoles, userInfo.Id).Execute()
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- //user := c.Ctx.Param(":user")
|
|
|
+ //2、修改角色
|
|
|
+ for i, _ := range userInfo.UserRole {
|
|
|
+ userInfo.UserRole[i].Id = utils.NewUUID()
|
|
|
+ userInfo.UserRole[i].CreateBy = op.UserId
|
|
|
+ userInfo.UserRole[i].LastUpdateBy = op.UserId
|
|
|
+ userInfo.UserRole[i].CreateTime = time.Now()
|
|
|
+ userInfo.UserRole[i].LastUpdateDate = time.Now()
|
|
|
+ userInfo.UserRole[i].DelFlag = 1
|
|
|
+ }
|
|
|
+ _, err = c.Db.Insert(userInfo.UserRole)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //3、更新用户信息
|
|
|
+ _, err = c.Db.Table(new(models.SysUser)).ID(userInfo.Id).Update(map[string]interface{}{"name": userInfo.Name, "email": userInfo.Email, "org_id": userInfo.OrgId, "last_update_by": op.UserId, "last_update_date": time.Now()})
|
|
|
+ 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})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _FindRoleMenu
|
|
|
+// @Title _FindRoleMenu
|
|
|
+// @Description 查找角色权限
|
|
|
+// @Param user string false "用户id"
|
|
|
+// @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)
|
|
|
if ret {
|
|
|
c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
@@ -212,36 +379,73 @@ func System_FindPermissions(c *SystemController) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// _AddPermission
|
|
|
-// @Title _AddPermission
|
|
|
-// @Description 查找用户的菜单权限标识集合
|
|
|
+// _RoleAll
|
|
|
+// @Title _RoleAll
|
|
|
+// @Description 查找所有角色
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_RoleAll(c *SystemController) {
|
|
|
+
|
|
|
+ var roles []sysmodel.SysRole
|
|
|
+ err := c.Db.SQL(sysmodel.Selectall_sys_role).Find(&roles)
|
|
|
+
|
|
|
+ ret := __none_func_system__()
|
|
|
+ if ret && err == nil {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", roles})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// _AddMenu
|
|
|
+// @Title _AddMenu
|
|
|
+// @Description 增加菜单
|
|
|
// @Param perms string false "权限标识"
|
|
|
// @Param domain string false "域"
|
|
|
// @Success 200 {object} models.Account
|
|
|
// @Failure 403 :id is empty
|
|
|
-func System_AddPermission(c *SystemController) {
|
|
|
+func System_AddMenu(c *SystemController) {
|
|
|
perms := c.Ctx.Param(":perms")
|
|
|
domain := c.Ctx.Param(":domain")
|
|
|
ret := __none_func_system__(perms, domain)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- //查找此权限标识符是否存在
|
|
|
- //c.Db.Where().Get()
|
|
|
+// _DelMenu
|
|
|
+// @Title _DelMenu
|
|
|
+// @Description 删除菜单
|
|
|
+// @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)
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ } else {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- tk, _ := c.Ctx.Get("token")
|
|
|
- user := tk.(*entitys.Token)
|
|
|
+// _FindPermissions
|
|
|
+// @Title _FindPermissions
|
|
|
+// @Description 查找用户权限
|
|
|
+// @Success 200 {object} models.Account
|
|
|
+// @Failure 403 :id is empty
|
|
|
+func System_FindPermissions(c *SystemController) {
|
|
|
|
|
|
- permiss := &sysmodel.SysPermission{}
|
|
|
- permiss.Id = utils.NewUUID()
|
|
|
- permiss.Perms = perms
|
|
|
- permiss.Domain = domain
|
|
|
- permiss.CreateBy = user.UserId
|
|
|
- permiss.CreateTime = time.Now()
|
|
|
- _, err := c.Db.Insert(permiss)
|
|
|
+ ret := __none_func_system__()
|
|
|
|
|
|
- if ret && err == nil {
|
|
|
- c.Ctx.JSON(200, sysmodel.SysReturn{200, "", nil})
|
|
|
+ strs := []string{"sys:user:edit", "sys:user:delete", "sys:user:add"}
|
|
|
+
|
|
|
+ if ret {
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{200, "", strs})
|
|
|
} else {
|
|
|
- c.Ctx.JSON(200, sysmodel.SysReturn{500, err.Error(), nil})
|
|
|
+ c.Ctx.JSON(200, sysmodel.SysReturn{500, "", nil})
|
|
|
}
|
|
|
}
|
|
|
|