package deliverylogic import ( "context" "errors" "bsm/full/module/ec/delivery/external/pb/delivery" "bsm/full/module/ec/delivery/internal/models" "bsm/full/module/ec/delivery/internal/svc" "git.apinb.com/bsm-sdk/core/errcode" "git.apinb.com/bsm-sdk/core/service" "gorm.io/gorm" "log/slog" "bsm/full/shared/logging" ) type MemberGetLogic struct { ctx context.Context svcCtx *svc.ServiceContext *slog.Logger } func NewMemberGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MemberGetLogic { return &MemberGetLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logging.Context(ctx), } } // 获取配送员数据 func (l *MemberGetLogic) MemberGet(in *delivery.IdentRequest) (*delivery.MemberItem, error) { _, err := service.ParseMetaCtx(l.ctx, nil) if err != nil { return nil, err } if in.GetIdentity() == "" { return nil, errcode.ErrInvalidArgument } var data = delivery.MemberItem{} err = models.DBService.Model(&models.DeliveryMember{}).Where("identity = ?", in.Identity).Find(&data).Error if err != nil { l.Logger.Error(err.Error()) if errors.Is(err, gorm.ErrRecordNotFound) { return nil, errcode.ErrRecordNotFound } return nil, errcode.ErrDB } return &data, nil }