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