package adjust import ( "context" "muyu-apiserver/gateway/internal/svc" "muyu-apiserver/gateway/internal/types" "muyu-apiserver/pkg/ctxdata" "muyu-apiserver/rpc/inventory/pb" "github.com/zeromicro/go-zero/core/logx" ) type CreateStockAdjustLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewCreateStockAdjustLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateStockAdjustLogic { return &CreateStockAdjustLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *CreateStockAdjustLogic) CreateStockAdjust(req *types.CreateStockAdjustReq) (resp *types.IdResp, err error) { userId := ctxdata.GetUserId(l.ctx) details := make([]*pb.StockAdjustDetailReq, 0, len(req.Details)) for _, d := range req.Details { details = append(details, &pb.StockAdjustDetailReq{ ProductId: d.ProductId, AdjustQuantity: d.AdjustQuantity, Remark: d.Remark, }) } rpcResp, err := l.svcCtx.InventoryRpc.CreateStockAdjust(l.ctx, &pb.CreateStockAdjustReq{ AdjustDate: req.AdjustDate, AdjustReason: req.AdjustReason, Operator: userId, Remark: req.Remark, Details: details, }) if err != nil { return nil, err } return &types.IdResp{Id: rpcResp.Id}, nil }