package accountlogic import ( "context" "code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/member" "code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/usecase" pb "code.30cm.net/digimon/app-cloudep-member-server/gen_result/pb/member" "code.30cm.net/digimon/app-cloudep-member-server/internal/svc" "github.com/zeromicro/go-zero/core/logx" ) type UpdateUserInfoLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewUpdateUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateUserInfoLogic { return &UpdateUserInfoLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } // UpdateUserInfo 更新 User Info func (l *UpdateUserInfoLogic) UpdateUserInfo(in *pb.UpdateUserInfoReq) (*pb.OKResp, error) { q := usecase.UpdateUserInfoRequest{ UID: in.GetUid(), AvatarURL: in.Avatar, FullName: in.FullName, Nickname: in.NickName, Birthdate: in.Birthdate, Address: in.Address, PreferredLanguage: in.Language, Currency: in.Currency, } if in.Gender != nil { c := *in.Gender code, err := safeInt64ToInt8(c) if err == nil { q.GenderCode = &code } } if in.AlarmType != nil { a := member.AlarmType(in.GetAlarmType().Number()) q.AlarmCategory = &a } if in.Status != nil { s := member.Status(in.GetStatus().Number()) q.UserStatus = &s } err := l.svcCtx.AccountUseCase.UpdateUserInfo(l.ctx, &q) if err != nil { return nil, err } return &pb.OKResp{}, nil }