66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
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
|
||
|
||
}
|