mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 10:13:01 +00:00
refactor🎨: 改造升级用户管理模块
This commit is contained in:
+109
-41
@@ -1,6 +1,7 @@
|
|||||||
package apis
|
package apis
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/gin-gonic/gin/binding"
|
||||||
"go-admin/app/admin/models"
|
"go-admin/app/admin/models"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@@ -29,11 +30,11 @@ type SysUser struct {
|
|||||||
// @Router /api/v1/sysUser [get]
|
// @Router /api/v1/sysUser [get]
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (e SysUser) GetSysUserList(c *gin.Context) {
|
func (e SysUser) GetSysUserList(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserSearch)
|
req := dto.SysUserSearch{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req, binding.Form).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -48,7 +49,7 @@ func (e SysUser) GetSysUserList(c *gin.Context) {
|
|||||||
list := make([]models.SysUser, 0)
|
list := make([]models.SysUser, 0)
|
||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
err = s.GetSysUserPage(req, p, &list, &count)
|
err = s.GetSysUserPage(&req, p, &list, &count)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Error(http.StatusInternalServerError, err, "查询失败")
|
e.Error(http.StatusInternalServerError, err, "查询失败")
|
||||||
return
|
return
|
||||||
@@ -66,11 +67,11 @@ func (e SysUser) GetSysUserList(c *gin.Context) {
|
|||||||
// @Router /api/v1/sysUser/{userId} [get]
|
// @Router /api/v1/sysUser/{userId} [get]
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (e SysUser) GetSysUser(c *gin.Context) {
|
func (e SysUser) GetSysUser(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserById)
|
req := dto.SysUserById{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req, nil).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -78,18 +79,14 @@ func (e SysUser) GetSysUser(c *gin.Context) {
|
|||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var object models.SysUser
|
var object models.SysUser
|
||||||
|
|
||||||
//数据权限检查
|
//数据权限检查
|
||||||
p := actions.GetPermissionFromContext(c)
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
err = s.GetSysUser(&req, p, &object)
|
||||||
err = s.GetSysUser(req, p, &object)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Error(http.StatusUnprocessableEntity, err, "查询失败")
|
e.Error(http.StatusUnprocessableEntity, err, "查询失败")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
e.OK(object, "查看成功")
|
e.OK(object, "查看成功")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,11 +101,11 @@ func (e SysUser) GetSysUser(c *gin.Context) {
|
|||||||
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
|
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
|
||||||
// @Router /api/v1/sysUser [post]
|
// @Router /api/v1/sysUser [post]
|
||||||
func (e SysUser) InsertSysUser(c *gin.Context) {
|
func (e SysUser) InsertSysUser(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserControl)
|
req := dto.SysUserControl{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req, binding.JSON).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -116,14 +113,12 @@ func (e SysUser) InsertSysUser(c *gin.Context) {
|
|||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置创建人
|
// 设置创建人
|
||||||
req.SetCreateBy(user.GetUserId(c))
|
req.SetCreateBy(user.GetUserId(c))
|
||||||
|
err = s.InsertSysUser(&req)
|
||||||
err = s.InsertSysUser(req)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
e.Error(http.StatusInternalServerError, err, "创建失败")
|
e.Error(http.StatusInternalServerError, err, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,11 +136,11 @@ func (e SysUser) InsertSysUser(c *gin.Context) {
|
|||||||
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
|
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
|
||||||
// @Router /api/v1/sysuser/{userId} [put]
|
// @Router /api/v1/sysuser/{userId} [put]
|
||||||
func (e SysUser) UpdateSysUser(c *gin.Context) {
|
func (e SysUser) UpdateSysUser(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserControl)
|
req := dto.SysUserControl{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req, binding.JSON, nil).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -159,7 +154,7 @@ func (e SysUser) UpdateSysUser(c *gin.Context) {
|
|||||||
//数据权限检查
|
//数据权限检查
|
||||||
p := actions.GetPermissionFromContext(c)
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
err = s.UpdateSysUser(req, p)
|
err = s.UpdateSysUser(&req, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
return
|
return
|
||||||
@@ -176,11 +171,11 @@ func (e SysUser) UpdateSysUser(c *gin.Context) {
|
|||||||
// @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
|
// @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
|
||||||
// @Router /api/v1/sysuser/{userId} [delete]
|
// @Router /api/v1/sysuser/{userId} [delete]
|
||||||
func (e SysUser) DeleteSysUser(c *gin.Context) {
|
func (e SysUser) DeleteSysUser(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserById)
|
req := dto.SysUserById{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req, binding.JSON, nil).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -195,7 +190,7 @@ func (e SysUser) DeleteSysUser(c *gin.Context) {
|
|||||||
// 数据权限检查
|
// 数据权限检查
|
||||||
p := actions.GetPermissionFromContext(c)
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
err = s.RemoveSysUser(req, p)
|
err = s.RemoveSysUser(&req, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
return
|
return
|
||||||
@@ -214,7 +209,7 @@ func (e SysUser) DeleteSysUser(c *gin.Context) {
|
|||||||
// @Router /api/v1/user/avatar [post]
|
// @Router /api/v1/user/avatar [post]
|
||||||
func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
||||||
s := service.SysUser{}
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserControl)
|
req := dto.SysUserControl{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
@@ -226,7 +221,6 @@ func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 数据权限检查
|
// 数据权限检查
|
||||||
p := actions.GetPermissionFromContext(c)
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
form, _ := c.MultipartForm()
|
form, _ := c.MultipartForm()
|
||||||
files := form.File["upload[]"]
|
files := form.File["upload[]"]
|
||||||
guid := uuid.New().String()
|
guid := uuid.New().String()
|
||||||
@@ -244,7 +238,7 @@ func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
|||||||
req.UserId = p.UserId
|
req.UserId = p.UserId
|
||||||
req.Avatar = "/" + filPath
|
req.Avatar = "/" + filPath
|
||||||
|
|
||||||
err = s.UpdateSysUser(req, p)
|
err = s.UpdateSysUser(&req, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Logger.Error(err)
|
e.Logger.Error(err)
|
||||||
return
|
return
|
||||||
@@ -252,7 +246,81 @@ func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
|||||||
e.OK(filPath, "修改成功")
|
e.OK(filPath, "修改成功")
|
||||||
}
|
}
|
||||||
|
|
||||||
// SysUserUpdatePwd
|
// UpdateSysUserStatus 修改用户状态
|
||||||
|
// @Summary 修改用户状态
|
||||||
|
// @Description 获取JSON
|
||||||
|
// @Tags 用户
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param data body dto.UpdateSysUserStatusReq true "body"
|
||||||
|
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
|
||||||
|
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
|
||||||
|
// @Router /api/v1/user/status [put]
|
||||||
|
func (e SysUser) UpdateSysUserStatus(c *gin.Context) {
|
||||||
|
s := service.SysUser{}
|
||||||
|
req := dto.UpdateSysUserStatusReq{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Error(http.StatusInternalServerError, err, err.Error())
|
||||||
|
e.Logger.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
|
||||||
|
//数据权限检查
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.UpdateSysUserStatus(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK(req.GetId(), "更新成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResetSysUserPwd 重置用户密码
|
||||||
|
// @Summary 重置用户密码
|
||||||
|
// @Description 获取JSON
|
||||||
|
// @Tags 用户
|
||||||
|
// @Accept application/json
|
||||||
|
// @Product application/json
|
||||||
|
// @Param data body dto.ResetSysUserPwdReq true "body"
|
||||||
|
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
|
||||||
|
// @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
|
||||||
|
// @Router /api/v1/user/pwd/reset [put]
|
||||||
|
func (e SysUser) ResetSysUserPwd(c *gin.Context) {
|
||||||
|
s := service.SysUser{}
|
||||||
|
req := dto.ResetSysUserPwdReq{}
|
||||||
|
err := e.MakeContext(c).
|
||||||
|
MakeOrm().
|
||||||
|
Bind(&req).
|
||||||
|
MakeService(&s.Service).
|
||||||
|
Errors
|
||||||
|
if err != nil {
|
||||||
|
e.Error(http.StatusInternalServerError, err, err.Error())
|
||||||
|
e.Logger.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
req.SetUpdateBy(user.GetUserId(c))
|
||||||
|
|
||||||
|
//数据权限检查
|
||||||
|
p := actions.GetPermissionFromContext(c)
|
||||||
|
|
||||||
|
err = s.ResetSysUserPwd(&req, p)
|
||||||
|
if err != nil {
|
||||||
|
e.Logger.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
e.OK(req.GetId(), "更新成功")
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateSysUserPwd
|
||||||
// @Summary 重置密码
|
// @Summary 重置密码
|
||||||
// @Description 获取JSON
|
// @Description 获取JSON
|
||||||
// @Tags 用户
|
// @Tags 用户
|
||||||
@@ -262,12 +330,12 @@ func (e SysUser) InsetSysUserAvatar(c *gin.Context) {
|
|||||||
// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
// @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
|
||||||
// @Router /api/v1/user/pwd [post]
|
// @Router /api/v1/user/pwd [post]
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (e SysUser) SysUserUpdatePwd(c *gin.Context) {
|
func (e SysUser) UpdateSysUserPwd(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.PassWord)
|
req := dto.PassWord{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
Bind(req).
|
Bind(&req).
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
Errors
|
Errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -296,8 +364,8 @@ func (e SysUser) SysUserUpdatePwd(c *gin.Context) {
|
|||||||
// @Router /api/v1/user/profile [get]
|
// @Router /api/v1/user/profile [get]
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
func (e SysUser) GetSysUserProfile(c *gin.Context) {
|
func (e SysUser) GetSysUserProfile(c *gin.Context) {
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
req := new(dto.SysUserById)
|
req := dto.SysUserById{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
@@ -313,7 +381,7 @@ func (e SysUser) GetSysUserProfile(c *gin.Context) {
|
|||||||
user := new(models.SysUser)
|
user := new(models.SysUser)
|
||||||
roles := make([]models.SysRole, 0)
|
roles := make([]models.SysRole, 0)
|
||||||
posts := make([]models.SysPost, 0)
|
posts := make([]models.SysPost, 0)
|
||||||
err = s.GetSysUserProfile(req, user, &roles, &posts)
|
err = s.GetSysUserProfile(&req, user, &roles, &posts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Logger.Errorf("get user profile error, %s", err.Error())
|
e.Logger.Errorf("get user profile error, %s", err.Error())
|
||||||
e.Error(http.StatusInternalServerError, err, "获取用户信息失败")
|
e.Error(http.StatusInternalServerError, err, "获取用户信息失败")
|
||||||
@@ -327,8 +395,8 @@ func (e SysUser) GetSysUserProfile(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (e SysUser) GetInfo(c *gin.Context) {
|
func (e SysUser) GetInfo(c *gin.Context) {
|
||||||
req := new(dto.SysUserById)
|
req := dto.SysUserById{}
|
||||||
s := new(service.SysUser)
|
s := service.SysUser{}
|
||||||
err := e.MakeContext(c).
|
err := e.MakeContext(c).
|
||||||
MakeOrm().
|
MakeOrm().
|
||||||
MakeService(&s.Service).
|
MakeService(&s.Service).
|
||||||
@@ -369,7 +437,7 @@ func (e SysUser) GetInfo(c *gin.Context) {
|
|||||||
|
|
||||||
req.Id = user.GetUserId(c)
|
req.Id = user.GetUserId(c)
|
||||||
|
|
||||||
err = s.GetSysUser(req, p, &sysUser)
|
err = s.GetSysUser(&req, p, &sysUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.Error(http.StatusUnauthorized, err, "登录失败")
|
e.Error(http.StatusUnauthorized, err, "登录失败")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ func init() {
|
|||||||
// 需认证的路由代码
|
// 需认证的路由代码
|
||||||
func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||||
api := apis.SysUser{}
|
api := apis.SysUser{}
|
||||||
r := v1.Group("/sysUser").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()).Use(actions.PermissionAction())
|
r := v1.Group("/sys-user").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()).Use(actions.PermissionAction())
|
||||||
{
|
{
|
||||||
r.GET("", api.GetSysUserList)
|
r.GET("", api.GetSysUserList)
|
||||||
r.GET("/:id", api.GetSysUser)
|
r.GET("/:id", api.GetSysUser)
|
||||||
@@ -28,7 +28,9 @@ func registerSysUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle
|
|||||||
{
|
{
|
||||||
user.GET("/profile", api.GetSysUserProfile)
|
user.GET("/profile", api.GetSysUserProfile)
|
||||||
user.POST("/avatar", api.InsetSysUserAvatar)
|
user.POST("/avatar", api.InsetSysUserAvatar)
|
||||||
user.PUT("/pwd", api.SysUserUpdatePwd)
|
user.PUT("/pwd", api.UpdateSysUserPwd)
|
||||||
|
user.PUT("/pwd/reset", api.ResetSysUserPwd)
|
||||||
|
user.PUT("/status", api.UpdateSysUserStatus)
|
||||||
}
|
}
|
||||||
v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc())
|
v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
type SysUserSearch struct {
|
type SysUserSearch struct {
|
||||||
dto.Pagination `search:"-"`
|
dto.Pagination `search:"-"`
|
||||||
UserId int `form:"UserId" search:"type:exact;column:user_id;table:sys_user" comment:"用户ID"`
|
UserId int `form:"userId" search:"type:exact;column:user_id;table:sys_user" comment:"用户ID"`
|
||||||
Username string `form:"username" search:"type:contains;column:username;table:sys_user" comment:"用户名"`
|
Username string `form:"username" search:"type:contains;column:username;table:sys_user" comment:"用户名"`
|
||||||
NickName string `form:"nickName" search:"type:contains;column:nick_name;table:sys_user" comment:"昵称"`
|
NickName string `form:"nickName" search:"type:contains;column:nick_name;table:sys_user" comment:"昵称"`
|
||||||
Phone string `form:"phone" search:"type:contains;column:phone;table:sys_user" comment:"手机号"`
|
Phone string `form:"phone" search:"type:contains;column:phone;table:sys_user" comment:"手机号"`
|
||||||
@@ -29,24 +29,59 @@ type SysUserOrder struct {
|
|||||||
CreatedAtOrder string `search:"type:order;column:created_at;table:sys_user" form:"createdAtOrder"`
|
CreatedAtOrder string `search:"type:order;column:created_at;table:sys_user" form:"createdAtOrder"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (m *SysUserSearch) GetNeedSearch() interface{} {
|
func (m *SysUserSearch) GetNeedSearch() interface{} {
|
||||||
return *m
|
return *m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ResetSysUserPwdReq struct {
|
||||||
|
UserId int `json:"userId" comment:"用户ID" binding:"required"` // 用户ID
|
||||||
|
Password string `json:"password" comment:"密码" binding:"required"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ResetSysUserPwdReq) GetId() interface{} {
|
||||||
|
return s.UserId
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ResetSysUserPwdReq) Generate(model *models.SysUser) {
|
||||||
|
if s.UserId != 0 {
|
||||||
|
model.UserId = s.UserId
|
||||||
|
}
|
||||||
|
model.Password = s.Password
|
||||||
|
}
|
||||||
|
|
||||||
|
type UpdateSysUserStatusReq struct {
|
||||||
|
UserId int `json:"userId" comment:"用户ID" binding:"required"` // 用户ID
|
||||||
|
Status string `json:"status" comment:"状态" binding:"required"`
|
||||||
|
common.ControlBy
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *UpdateSysUserStatusReq) GetId() interface{} {
|
||||||
|
return s.UserId
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *UpdateSysUserStatusReq) Generate(model *models.SysUser) {
|
||||||
|
if s.UserId != 0 {
|
||||||
|
model.UserId = s.UserId
|
||||||
|
}
|
||||||
|
model.Status = s.Status
|
||||||
|
}
|
||||||
|
|
||||||
type SysUserControl struct {
|
type SysUserControl struct {
|
||||||
UserId int `json:"userId" comment:"用户ID"` // 用户ID
|
UserId int `json:"userId" comment:"用户ID"` // 用户ID
|
||||||
Username string `json:"username" comment:"用户名"`
|
Username string `json:"username" comment:"用户名" binding:"required"`
|
||||||
Password string `json:"password" comment:"密码"`
|
Password string `json:"password" comment:"密码"`
|
||||||
NickName string `json:"nickName" comment:"昵称"`
|
NickName string `json:"nickName" comment:"昵称" binding:"required"`
|
||||||
Phone string `json:"phone" comment:"手机号"`
|
Phone string `json:"phone" comment:"手机号" binding:"required"`
|
||||||
RoleId int `json:"roleId" comment:"角色ID"`
|
RoleId int `json:"roleId" comment:"角色ID"`
|
||||||
Avatar string `json:"avatar" comment:"头像"`
|
Avatar string `json:"avatar" comment:"头像"`
|
||||||
Sex string `json:"sex" comment:"性别"`
|
Sex string `json:"sex" comment:"性别"`
|
||||||
Email string `json:"email" comment:"邮箱"`
|
Email string `json:"email" comment:"邮箱" binding:"required,email"`
|
||||||
DeptId int `json:"deptId" comment:"部门"`
|
DeptId int `json:"deptId" comment:"部门" binding:"required"`
|
||||||
PostId int `json:"postId" comment:"岗位"`
|
PostId int `json:"postId" comment:"岗位"`
|
||||||
Remark string `json:"remark" comment:"备注"`
|
Remark string `json:"remark" comment:"备注"`
|
||||||
Status string `json:"status" comment:"状态"`
|
Status string `json:"status" comment:"状态" binding:"required" default:"1"`
|
||||||
common.ControlBy
|
common.ControlBy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,13 +23,12 @@ func (e *SysUser) GetSysUserPage(c *dto.SysUserSearch, p *actions.DataPermission
|
|||||||
var err error
|
var err error
|
||||||
var data models.SysUser
|
var data models.SysUser
|
||||||
|
|
||||||
err = e.Orm.Model(&data).
|
err = e.Orm.Debug().Preload("Dept").
|
||||||
Scopes(
|
Scopes(
|
||||||
cDto.MakeCondition(c.GetNeedSearch()),
|
cDto.MakeCondition(c.GetNeedSearch()),
|
||||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||||
actions.Permission(data.TableName(), p),
|
actions.Permission(data.TableName(), p),
|
||||||
).
|
).
|
||||||
Preload("Dept").
|
|
||||||
Find(list).Limit(-1).Offset(-1).
|
Find(list).Limit(-1).Offset(-1).
|
||||||
Count(count).Error
|
Count(count).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -43,7 +42,7 @@ func (e *SysUser) GetSysUserPage(c *dto.SysUserSearch, p *actions.DataPermission
|
|||||||
func (e *SysUser) GetSysUser(d *dto.SysUserById, p *actions.DataPermission, model *models.SysUser) error {
|
func (e *SysUser) GetSysUser(d *dto.SysUserById, p *actions.DataPermission, model *models.SysUser) error {
|
||||||
var data models.SysUser
|
var data models.SysUser
|
||||||
|
|
||||||
err := e.Orm.Model(&data).
|
err := e.Orm.Model(&data).Debug().
|
||||||
Scopes(
|
Scopes(
|
||||||
actions.Permission(data.TableName(), p),
|
actions.Permission(data.TableName(), p),
|
||||||
).
|
).
|
||||||
@@ -64,6 +63,17 @@ func (e *SysUser) GetSysUser(d *dto.SysUserById, p *actions.DataPermission, mode
|
|||||||
func (e *SysUser) InsertSysUser(c *dto.SysUserControl) error {
|
func (e *SysUser) InsertSysUser(c *dto.SysUserControl) error {
|
||||||
var err error
|
var err error
|
||||||
var data models.SysUser
|
var data models.SysUser
|
||||||
|
var i int64
|
||||||
|
err = e.Orm.Model(&data).Where("username = ?", c.Username).Count(&i).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("db error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if i > 0 {
|
||||||
|
err := errors.New("用户名已存在!")
|
||||||
|
e.Log.Errorf("db error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
c.Generate(&data)
|
c.Generate(&data)
|
||||||
err = e.Orm.Create(&data).Error
|
err = e.Orm.Create(&data).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -97,6 +107,53 @@ func (e *SysUser) UpdateSysUser(c *dto.SysUserControl, p *actions.DataPermission
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateSysUserStatus 更新用户状态
|
||||||
|
func (e *SysUser) UpdateSysUserStatus(c *dto.UpdateSysUserStatusReq, p *actions.DataPermission) error {
|
||||||
|
var err error
|
||||||
|
var model models.SysUser
|
||||||
|
db := e.Orm.Scopes(
|
||||||
|
actions.Permission(model.TableName(), p),
|
||||||
|
).First(&model, c.GetId())
|
||||||
|
if err = db.Error; err != nil {
|
||||||
|
e.Log.Errorf("Service UpdateSysUser error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权更新该数据")
|
||||||
|
|
||||||
|
}
|
||||||
|
c.Generate(&model)
|
||||||
|
err = e.Orm.Save(&model).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("Service UpdateSysUser error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResetSysUserPwd 重置用户密码
|
||||||
|
func (e *SysUser) ResetSysUserPwd(c *dto.ResetSysUserPwdReq, p *actions.DataPermission) error {
|
||||||
|
var err error
|
||||||
|
var model models.SysUser
|
||||||
|
db := e.Orm.Scopes(
|
||||||
|
actions.Permission(model.TableName(), p),
|
||||||
|
).First(&model, c.GetId())
|
||||||
|
if err = db.Error; err != nil {
|
||||||
|
e.Log.Errorf("At Service ResetSysUserPwd error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if db.RowsAffected == 0 {
|
||||||
|
return errors.New("无权更新该数据")
|
||||||
|
}
|
||||||
|
c.Generate(&model)
|
||||||
|
err = e.Orm.Save(&model).Error
|
||||||
|
if err != nil {
|
||||||
|
e.Log.Errorf("At Service ResetSysUserPwd error: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// RemoveSysUser 删除SysUser
|
// RemoveSysUser 删除SysUser
|
||||||
func (e *SysUser) RemoveSysUser(c *dto.SysUserById, p *actions.DataPermission) error {
|
func (e *SysUser) RemoveSysUser(c *dto.SysUserById, p *actions.DataPermission) error {
|
||||||
var err error
|
var err error
|
||||||
@@ -107,7 +164,7 @@ func (e *SysUser) RemoveSysUser(c *dto.SysUserById, p *actions.DataPermission) e
|
|||||||
actions.Permission(data.TableName(), p),
|
actions.Permission(data.TableName(), p),
|
||||||
).Delete(&data, c.GetId())
|
).Delete(&data, c.GetId())
|
||||||
if err = db.Error; err != nil {
|
if err = db.Error; err != nil {
|
||||||
e.Log.Errorf("Delete error: %s", err)
|
e.Log.Errorf("Error found in RemoveSysUser : %s", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if db.RowsAffected == 0 {
|
if db.RowsAffected == 0 {
|
||||||
@@ -128,7 +185,8 @@ func (e *SysUser) UpdateSysUserPwd(id int, oldPassword, newPassword string, p *a
|
|||||||
err = e.Orm.Model(c).
|
err = e.Orm.Model(c).
|
||||||
Scopes(
|
Scopes(
|
||||||
actions.Permission(c.TableName(), p),
|
actions.Permission(c.TableName(), p),
|
||||||
).Where(id).Select("UserId", "Password", "Salt").First(c).Error
|
).Select("UserId", "Password", "Salt").
|
||||||
|
First(c, id).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
return errors.New("无权更新该数据")
|
return errors.New("无权更新该数据")
|
||||||
|
|||||||
Reference in New Issue
Block a user