fix: 统一戒烟小程序默认头像为指定OSS地址

This commit is contained in:
root
2026-03-10 22:50:06 +08:00
parent 0cdfebd1dc
commit a46b51cd58
+21 -4
View File
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"strings"
"sync"
"wx_service/internal/model"
@@ -17,6 +18,8 @@ var (
ErrMiniProgramNotFound = errors.New("mini program not found")
)
const defaultAvatarURL = "https://linghu-wmr.oss-cn-beijing.aliyuncs.com/smt/avatar.png"
type AuthService struct {
db *gorm.DB
miniProgramSvc *MiniProgramService
@@ -72,6 +75,8 @@ func (s *AuthService) LoginWithCode(ctx context.Context, req LoginRequest) (*Log
return nil, fmt.Errorf("wechat response missing openid")
}
avatarURL := normalizeAvatarURL(req.AvatarURL)
tx := s.db.WithContext(ctx)
var user model.User
err = tx.Where("mini_program_id = ? AND open_id = ?", miniProgram.ID, session.OpenID).First(&user).Error
@@ -81,7 +86,7 @@ func (s *AuthService) LoginWithCode(ctx context.Context, req LoginRequest) (*Log
OpenID: session.OpenID,
UnionID: session.UnionID,
NickName: req.NickName,
AvatarURL: req.AvatarURL,
AvatarURL: avatarURL,
Phone: req.Phone,
SessionKey: session.SessionKey,
}
@@ -105,9 +110,13 @@ func (s *AuthService) LoginWithCode(ctx context.Context, req LoginRequest) (*Log
updates["nick_name"] = req.NickName
user.NickName = req.NickName
}
if req.AvatarURL != "" && req.AvatarURL != user.AvatarURL {
updates["avatar_url"] = req.AvatarURL
user.AvatarURL = req.AvatarURL
if req.AvatarURL != "" && avatarURL != user.AvatarURL {
updates["avatar_url"] = avatarURL
user.AvatarURL = avatarURL
}
if strings.TrimSpace(user.AvatarURL) == "" {
updates["avatar_url"] = defaultAvatarURL
user.AvatarURL = defaultAvatarURL
}
if req.Phone != "" && req.Phone != user.Phone {
updates["phone"] = req.Phone
@@ -147,3 +156,11 @@ func (s *AuthService) getWeChatClient(mp *model.MiniProgram) *WeChatClient {
s.cacheMu.Unlock()
return newClient
}
func normalizeAvatarURL(raw string) string {
text := strings.TrimSpace(raw)
if text == "" {
return defaultAvatarURL
}
return text
}