|
@@ -3,9 +3,39 @@ import { InjectEntityModel } from '@midwayjs/typegoose';
|
|
|
import { ReturnModelType } from '@typegoose/typegoose';
|
|
|
import { BaseService } from 'free-midway-component';
|
|
|
import { OrderDetail } from '../entity/OrderDetail.entity';
|
|
|
+import { Good } from '../entity/Good.entity';
|
|
|
+import { Specs } from '../entity/Specs.entity';
|
|
|
+import { User } from '../entity/User.entity';
|
|
|
type modelType = ReturnModelType<typeof OrderDetail>;
|
|
|
@Provide()
|
|
|
export class OrderDetailService extends BaseService<modelType> {
|
|
|
@InjectEntityModel(OrderDetail)
|
|
|
model: modelType;
|
|
|
+
|
|
|
+ @InjectEntityModel(Good)
|
|
|
+ goodModel: ReturnModelType<typeof Good>;
|
|
|
+
|
|
|
+ @InjectEntityModel(Specs)
|
|
|
+ specModel: ReturnModelType<typeof Specs>;
|
|
|
+
|
|
|
+ @InjectEntityModel(User)
|
|
|
+ userModel: ReturnModelType<typeof User>;
|
|
|
+
|
|
|
+ async queryInfo(filter): Promise<object> {
|
|
|
+ const { skip = 0, limit, ...info } = filter;
|
|
|
+ let list: any = [];
|
|
|
+ let total: any = 0;
|
|
|
+ list = await this.model.find(info).skip(skip).limit(limit).lean();
|
|
|
+ total = await this.model.count(info);
|
|
|
+ for (const val of list) {
|
|
|
+ let res;
|
|
|
+ res = await this.goodModel.findById(val.good).lean();
|
|
|
+ val.good_name = res.name;
|
|
|
+ res = await this.specModel.findById(val.spec).lean();
|
|
|
+ val.spec_name = res.name;
|
|
|
+ res = await this.userModel.findById(val.user).lean();
|
|
|
+ val.user_name = res.name;
|
|
|
+ }
|
|
|
+ return { list, total };
|
|
|
+ }
|
|
|
}
|