sample/internal/logic/account/set_data.go

66 lines
1.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package account
import (
"context"
"time"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/print"
"git.apinb.com/bsm-sdk/core/service"
"git.apinb.com/bsm-sdk/core/vars"
"git.apinb.com/bsm-sdk/sample/internal/impl"
pb "git.apinb.com/bsm-sdk/sample/pb"
)
// 更新会员的信息数据
// 字段值为空或是0将不更新此数据
func SetData(ctx context.Context, in *pb.SetDataRequest) (reply *pb.StatusReply, err error) {
auth, err := service.ParseMetaCtx(ctx, nil)
if err != nil {
return nil, err
}
var birthday time.Time
if in.Birthday != "" {
birthday, err = time.Parse("2006-01-02", in.Birthday)
if err != nil {
return nil, errcode.ErrInvalidArgument
}
}
var data = models.sampleData{
Nickname: in.Nickname,
Avatar: in.Avatar,
Sex: int8(in.Sex),
Birthday: birthday,
Country: in.Country,
Province: in.Province,
City: in.City,
Area: in.Area,
Sign: in.Sign,
Cover: in.Cover,
UpdatedAt: time.Now(),
}
var cnt int64
impl.DBService.Model(&models.sampleData{}).Where("sample_id=?", auth.ID).Count(&cnt)
if cnt == 0 {
data.sampleID = auth.ID
data.sampleIdentity = auth.Identity
err = impl.DBService.Create(&data).Error
} else {
impl.DBService.Where("sample_id=?", auth.ID).Updates(&data)
}
if err != nil {
print.Error("first or create by sample_id %v error:%v", auth.ID, err)
return nil, errcode.ErrDB
}
return &pb.StatusReply{
Data: vars.OK,
Timeseq: time.Now().UnixNano(),
}, nil
}