Files
full/module/ec/address/internal/logic/library/get.go

52 lines
1.2 KiB
Go

package library
import (
"context"
"errors"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
)
// 获取一条地址
func Get(ctx context.Context, in *pb.IdentRequest) (reply *pb.AddressItem, err error) {
// parse authorization meta.
_, err = service.ParseMetaCtx(ctx, nil)
if err != nil {
return nil, err
}
if in.GetId() == 0 {
return nil, errcode.ErrInvalidArgument
}
address := new(models.AddressLibrary)
err = models.DBService.Where("id=?", in.Id).First(&address).Error
if err != nil {
if errors.Is(err, models.ErrNotFound) {
return nil, errcode.ErrRecordNotFound
}
printer.Error(err.Error())
return nil, errcode.ErrDB
}
return &pb.AddressItem{
Id: int64(address.ID),
Identity: address.Identity,
Name: address.Name,
Phone: address.Phone,
Province: address.Province,
City: address.City,
Area: address.Area,
Detail: address.Detail,
Country: address.Country,
Pics: address.Pics,
Contact: address.Contact,
Status: int32(address.Status),
}, nil
}