From f4396e7e83fe62925da76ff8f86681271791a228 Mon Sep 17 00:00:00 2001 From: zhangwenjian Date: Wed, 30 Jun 2021 18:55:16 +0800 Subject: [PATCH] =?UTF-8?q?fix=F0=9F=90=9B:=20=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=B4=E5=83=8F=E6=8E=A5=E5=8F=A3=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E6=A8=A1=E5=9E=8B=E5=88=86=E7=A6=BB(#468)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sys_user.go | 4 ++-- app/admin/service/dto/sys_user.go | 17 +++++++++++++++++ app/admin/service/sys_user.go | 24 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/admin/apis/sys_user.go b/app/admin/apis/sys_user.go index b5c149a1..4bd6fb14 100644 --- a/app/admin/apis/sys_user.go +++ b/app/admin/apis/sys_user.go @@ -208,7 +208,7 @@ func (e SysUser) Delete(c *gin.Context) { // @Security Bearer func (e SysUser) InsetAvatar(c *gin.Context) { s := service.SysUser{} - req := dto.SysUserControl{} + req := dto.UpdateSysUserAvatarReq{} err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). @@ -237,7 +237,7 @@ func (e SysUser) InsetAvatar(c *gin.Context) { req.UserId = p.UserId req.Avatar = "/" + filPath - err = s.Update(&req, p) + err = s.UpdateSysUserAvatar(&req, p) if err != nil { e.Logger.Error(err) return diff --git a/app/admin/service/dto/sys_user.go b/app/admin/service/dto/sys_user.go index 0493dfa4..003d8be8 100644 --- a/app/admin/service/dto/sys_user.go +++ b/app/admin/service/dto/sys_user.go @@ -54,6 +54,23 @@ func (s *ResetSysUserPwdReq) Generate(model *models.SysUser) { model.Password = s.Password } +type UpdateSysUserAvatarReq struct { + UserId int `json:"userId" comment:"用户ID" vd:"required"` // 用户ID + Avatar string `json:"avatar" comment:"头像" vd:"required"` + common.ControlBy +} + +func (s *UpdateSysUserAvatarReq) GetId() interface{} { + return s.UserId +} + +func (s *UpdateSysUserAvatarReq) Generate(model *models.SysUser) { + if s.UserId != 0 { + model.UserId = s.UserId + } + model.Avatar = s.Avatar +} + type UpdateSysUserStatusReq struct { UserId int `json:"userId" comment:"用户ID" binding:"required"` // 用户ID Status string `json:"status" comment:"状态" binding:"required"` diff --git a/app/admin/service/sys_user.go b/app/admin/service/sys_user.go index dbd3d4e9..e7a69dd0 100644 --- a/app/admin/service/sys_user.go +++ b/app/admin/service/sys_user.go @@ -107,6 +107,30 @@ func (e *SysUser) Update(c *dto.SysUserControl, p *actions.DataPermission) error return nil } +// UpdateSysUserAvatar 更新用户头像 +func (e *SysUser) UpdateSysUserAvatar(c *dto.UpdateSysUserAvatarReq, 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 +} + // UpdateSysUserStatus 更新用户状态 func (e *SysUser) UpdateSysUserStatus(c *dto.UpdateSysUserStatusReq, p *actions.DataPermission) error { var err error