// 批次库存服务(逻辑库存) // 职责:批次CRUD、列表查询 // 紧密耦合:dao.StockBatch // 注意:区别于PrivateStock的实物库存,批次库存是逻辑概念,不记录物理位置 package service import ( dao "assets/dao/stock" dto "assets/model/dto/stock" "context" "gitea.com/red-future/common/utils" "go.mongodb.org/mongo-driver/v2/bson" ) type stockBatch struct{} // StockBatch 批次服务 var StockBatch = new(stockBatch) func (s *stockBatch) Create(ctx context.Context, req *dto.CreateBatchReq) (res *dto.CreateBatchRes, err error) { ids, err := dao.StockBatch.Insert(ctx, req) if err != nil { return } id := ids[0].(bson.ObjectID) res = &dto.CreateBatchRes{ Id: &id, } return } func (s *stockBatch) Update(ctx context.Context, req *dto.UpdateBatchReq) error { return dao.StockBatch.Update(ctx, req) } func (s *stockBatch) Delete(ctx context.Context, req *dto.DeleteBatchReq) error { return dao.StockBatch.DeleteFake(ctx, req) } func (s *stockBatch) GetOne(ctx context.Context, req *dto.GetBatchReq) (res *dto.GetBatchRes, err error) { one, err := dao.StockBatch.GetOneById(ctx, req) if err != nil { return } err = utils.Struct(one, &res) return } func (s *stockBatch) List(ctx context.Context, req *dto.ListBatchReq) (res *dto.ListBatchRes, err error) { list, total, err := dao.StockBatch.List(ctx, req) if err != nil { return } res = &dto.ListBatchRes{ Total: total, } err = utils.Struct(list, &res.List) return }