ferry/apis/system/sysuser.go

312 lines
7.4 KiB
Go
Raw Permalink Normal View History

2020-07-13 20:33:20 +08:00
package system
import (
2020-07-14 14:07:44 +08:00
"ferry/models/system"
2020-08-18 00:53:02 +08:00
"ferry/pkg/ldap"
2020-08-15 23:34:37 +08:00
"ferry/pkg/logger"
2020-07-13 20:33:20 +08:00
"ferry/tools"
"ferry/tools/app"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/google/uuid"
)
2020-07-17 15:51:05 +08:00
/*
@Author : lanyulei
*/
2020-07-13 20:33:20 +08:00
// @Summary 列表数据
// @Description 获取JSON
// @Tags 用户
// @Param username query string false "username"
// @Success 200 {string} string "{"code": 200, "data": [...]}"
// @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
// @Router /api/v1/sysUserList [get]
// @Security Bearer
func GetSysUserList(c *gin.Context) {
2020-07-16 01:22:01 +08:00
var (
pageIndex = 1
pageSize = 10
err error
data system.SysUser
)
2020-07-13 20:33:20 +08:00
size := c.Request.FormValue("pageSize")
if size != "" {
pageSize = tools.StrToInt(err, size)
}
index := c.Request.FormValue("pageIndex")
if index != "" {
pageIndex = tools.StrToInt(err, index)
}
data.Username = c.Request.FormValue("username")
2020-11-22 16:46:16 +08:00
data.NickName = c.Request.FormValue("nickName")
2020-07-13 20:33:20 +08:00
data.Status = c.Request.FormValue("status")
data.Phone = c.Request.FormValue("phone")
postId := c.Request.FormValue("postId")
data.PostId, _ = tools.StringToInt(postId)
deptId := c.Request.FormValue("deptId")
data.DeptId, _ = tools.StringToInt(deptId)
result, count, err := data.GetPage(pageSize, pageIndex)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
app.PageOK(c, result, count, pageIndex, pageSize, "")
}
// @Summary 获取用户
// @Description 获取JSON
// @Tags 用户
// @Param userId path int true "用户编码"
// @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
// @Router /api/v1/sysUser/{userId} [get]
// @Security
func GetSysUser(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var SysUser system.SysUser
2020-07-13 20:33:20 +08:00
SysUser.UserId, _ = tools.StringToInt(c.Param("userId"))
result, err := SysUser.Get()
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-14 14:07:44 +08:00
var SysRole system.SysRole
var Post system.Post
2020-07-14 14:47:17 +08:00
roles, _ := SysRole.GetList()
posts, _ := Post.GetList()
2020-07-13 20:33:20 +08:00
postIds := make([]int, 0)
postIds = append(postIds, result.PostId)
roleIds := make([]int, 0)
roleIds = append(roleIds, result.RoleId)
app.Custum(c, gin.H{
"code": 200,
"data": result,
"postIds": postIds,
"roleIds": roleIds,
"roles": roles,
"posts": posts,
})
}
// @Summary 获取当前登录用户
// @Description 获取JSON
// @Tags 个人中心
// @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
// @Router /api/v1/user/profile [get]
// @Security
func GetSysUserProfile(c *gin.Context) {
2020-07-16 01:22:01 +08:00
var (
Dept system.Dept
Post system.Post
SysRole system.SysRole
SysUser system.SysUser
)
2020-07-13 20:33:20 +08:00
userId := tools.GetUserIdStr(c)
SysUser.UserId, _ = tools.StringToInt(userId)
result, err := SysUser.Get()
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
//获取角色列表
2020-07-16 01:22:01 +08:00
roles, err := SysRole.GetList()
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
//获取职位列表
2020-07-16 01:22:01 +08:00
posts, err := Post.GetList()
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
//获取部门列表
Dept.DeptId = result.DeptId
2020-07-16 01:22:01 +08:00
dept, err := Dept.Get()
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
postIds := make([]int, 0)
postIds = append(postIds, result.PostId)
roleIds := make([]int, 0)
roleIds = append(roleIds, result.RoleId)
app.Custum(c, gin.H{
"code": 200,
"data": result,
"postIds": postIds,
"roleIds": roleIds,
"roles": roles,
"posts": posts,
"dept": dept,
})
}
// @Summary 获取用户角色和职位
// @Description 获取JSON
// @Tags 用户
// @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
// @Router /api/v1/sysUser [get]
// @Security
func GetSysUserInit(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var SysRole system.SysRole
var Post system.Post
2020-07-13 20:33:20 +08:00
roles, err := SysRole.GetList()
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
posts, err := Post.GetList()
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
mp := make(map[string]interface{}, 2)
mp["roles"] = roles
mp["posts"] = posts
app.OK(c, mp, "")
}
// @Summary 创建用户
// @Description 获取JSON
// @Tags 用户
// @Accept application/json
// @Product application/json
2022-10-25 18:16:04 +08:00
// @Param data body system.SysUser true "用户数据"
2020-07-13 20:33:20 +08:00
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
// @Router /api/v1/sysUser [post]
func InsertSysUser(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var sysuser system.SysUser
err := c.MustBindWith(&sysuser, binding.JSON)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
sysuser.CreateBy = tools.GetUserIdStr(c)
id, err := sysuser.Insert()
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
app.OK(c, id, "添加成功")
}
// @Summary 修改用户数据
// @Description 获取JSON
// @Tags 用户
// @Accept application/json
// @Product application/json
2022-10-25 18:16:04 +08:00
// @Param data body system.SysUser true "body"
2020-07-13 20:33:20 +08:00
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
// @Router /api/v1/sysuser/{userId} [put]
func UpdateSysUser(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var data system.SysUser
2020-07-13 20:33:20 +08:00
err := c.Bind(&data)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
data.UpdateBy = tools.GetUserIdStr(c)
result, err := data.Update(data.UserId)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
app.OK(c, result, "修改成功")
}
// @Summary 删除用户数据
// @Description 删除数据
// @Tags 用户
// @Param userId path int true "userId"
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
// @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
// @Router /api/v1/sysuser/{userId} [delete]
func DeleteSysUser(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var data system.SysUser
2020-07-13 20:33:20 +08:00
data.UpdateBy = tools.GetUserIdStr(c)
IDS := tools.IdsStrToIdsIntGroup("userId", c)
result, err := data.BatchDelete(IDS)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
app.OK(c, result, "删除成功")
}
// @Summary 修改头像
// @Description 获取JSON
// @Tags 用户
// @Accept multipart/form-data
// @Param file formData file true "file"
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
// @Router /api/v1/user/profileAvatar [post]
func InsetSysUserAvatar(c *gin.Context) {
2020-07-16 01:22:01 +08:00
form, err := c.MultipartForm()
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
files := form.File["upload[]"]
guid := uuid.New().String()
filPath := "static/uploadfile/" + guid + ".jpg"
for _, file := range files {
2020-08-15 23:34:37 +08:00
logger.Info(file.Filename)
2020-07-13 20:33:20 +08:00
// 上传文件至指定目录
2020-07-16 01:22:01 +08:00
err = c.SaveUploadedFile(file, filPath)
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-13 20:33:20 +08:00
}
2020-07-14 14:07:44 +08:00
sysuser := system.SysUser{}
2020-07-13 20:33:20 +08:00
sysuser.UserId = tools.GetUserId(c)
sysuser.Avatar = "/" + filPath
sysuser.UpdateBy = tools.GetUserIdStr(c)
2020-07-14 14:47:17 +08:00
_, _ = sysuser.Update(sysuser.UserId)
2020-07-13 20:33:20 +08:00
app.OK(c, filPath, "修改成功")
}
func SysUserUpdatePwd(c *gin.Context) {
2020-07-14 14:07:44 +08:00
var pwd system.SysUserPwd
2020-07-13 20:33:20 +08:00
err := c.Bind(&pwd)
2020-07-16 01:22:01 +08:00
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-08-18 00:53:02 +08:00
if pwd.PasswordType == 0 {
sysuser := system.SysUser{}
sysuser.UserId = tools.GetUserId(c)
_, err = sysuser.SetPwd(pwd)
if err != nil {
app.Error(c, -1, err, "")
return
}
} else if pwd.PasswordType == 1 {
// 修改ldap密码
err = ldap.LdapUpdatePwd(tools.GetUserName(c), pwd.OldPassword, pwd.NewPassword)
if err != nil {
app.Error(c, -1, err, "")
return
}
2020-07-16 01:22:01 +08:00
}
2020-08-18 00:53:02 +08:00
2020-07-13 20:33:20 +08:00
app.OK(c, "", "密码修改成功")
}