:art:新增用户头像更换、客户端邮件通知

This commit is contained in:
coward
2024-06-13 11:28:02 +08:00
parent d1bb49c208
commit 67f394f136
12 changed files with 226 additions and 143 deletions

View File

@@ -1,8 +1,11 @@
package api
import (
"encoding/base64"
"fmt"
"gitee.ltd/lxh/logger/log"
"github.com/gin-gonic/gin"
"strings"
"wireguard-dashboard/client"
"wireguard-dashboard/component"
"wireguard-dashboard/constant"
@@ -157,6 +160,30 @@ func (user) Save(c *gin.Context) {
}
}
// 只有修改才有头像值
if p.Avatar != "" && p.ID != "" {
// 判断头像是base64开头的就需要重新上传更新
if strings.HasPrefix(p.Avatar, "data:image/png;base64,") {
avatar := strings.Replace(p.Avatar, "data:image/png;base64,", "", -1)
avatarByte, err := base64.StdEncoding.DecodeString(avatar)
if err != nil {
log.Errorf("反解析头像失败: %v", err.Error())
utils.GinResponse(c).FailedWithMsg("上传头像失败")
return
}
file, err := utils.FileSystem().UploadFile(avatarByte, ".png")
if err != nil {
log.Errorf("上传头像失败: %v", err.Error())
utils.GinResponse(c).FailedWithMsg("上传头像失败")
return
}
p.Avatar = file
}
}
if err := repository.User().Save(&entity.User{
Base: entity.Base{
Id: p.ID,
@@ -250,3 +277,17 @@ func (user) DeleteUser(c *gin.Context) {
utils.GinResponse(c).OK()
}
// ChangeAvatar
// @description: 切换头像
// @receiver user
// @param c
func (user) ChangeAvatar(c *gin.Context) {
avatar, err := utils.Avatar().GenerateAvatar(false)
if err != nil {
utils.GinResponse(c).FailedWithErr("生成头像失败", err)
return
}
utils.GinResponse(c).OKWithData(fmt.Sprintf("data:image/png;base64,%s", base64.StdEncoding.EncodeToString([]byte(avatar))))
}