浏览代码

修改购物车接口

zs 1 年之前
父节点
当前提交
fd540e5eda

+ 1 - 1
src/controller/OrderDetail.controller.ts

@@ -62,7 +62,7 @@ export class OrderDetailController extends BaseController {
     return { data, total };
   }
 
-  @Get('detail/:id')
+  @Get('/detail/:id')
   async detail(@Param('id') id: string) {
     const data = await this.service.detail(id);
     return data;

+ 3 - 1
src/entity/Cart.entity.ts

@@ -14,6 +14,8 @@ export class Cart extends BaseModel {
   spec: string;
   @prop({ required: false, index: false, zh: '数量' })
   num: number;
-  @prop({ required: false, index: true, zh: '金额' })
+  @prop({ required: false, index: true, zh: '单价金额' })
   money: number;
+  @prop({ required: false, index: true, zh: '总价金额' })
+  total_money: number;
 }

+ 3 - 1
src/entity/OrderDetail.entity.ts

@@ -20,8 +20,10 @@ export class OrderDetail extends BaseModel {
   buy_time: string;
   @prop({ required: false, index: false, zh: '数量' })
   num: number;
-  @prop({ required: false, index: true, zh: '金额' })
+  @prop({ required: false, index: true, zh: '单价金额' })
   money: number;
+  @prop({ required: false, index: true, zh: '总价金额' })
+  total_money: number;
   @prop({ required: false, index: false, zh: '审核记录' })
   record: Array<any>;
   @prop({ required: false, index: false, zh: '领导' })

+ 7 - 2
src/interface/Cart.interface.ts

@@ -24,8 +24,10 @@ export class FVO_Cart {
   'spec': string = undefined;
   @ApiProperty({ description: '数量' })
   'num': number = undefined;
-  @ApiProperty({ description: '金额' })
+  @ApiProperty({ description: '单价金额' })
   'money': number = undefined;
+  @ApiProperty({ description: '总价金额' })
+  'total_money': number = undefined;
 }
 
 export class QDTO_Cart extends SearchBase {
@@ -70,9 +72,12 @@ export class CDTO_Cart {
   @ApiProperty({ description: '数量' })
   @Rule(RuleType['number']().empty(''))
   'num': number = undefined;
-  @ApiProperty({ description: '金额' })
+  @ApiProperty({ description: '单价金额' })
   @Rule(RuleType['number']().empty(''))
   'money': number = undefined;
+  @ApiProperty({ description: '总价金额' })
+  @Rule(RuleType['number']().empty(''))
+  'total_money': number = undefined;
 }
 
 export class CVO_Cart extends FVO_Cart {

+ 7 - 2
src/interface/OrderDetail.interface.ts

@@ -30,8 +30,10 @@ export class FVO_OrderDetail {
   'buy_time': string = undefined;
   @ApiProperty({ description: '数量' })
   'num': number = undefined;
-  @ApiProperty({ description: '金额' })
+  @ApiProperty({ description: '单价金额' })
   'money': number = undefined;
+  @ApiProperty({ description: '总价金额' })
+  'total_money': number = undefined;
   @ApiProperty({ description: '审核记录' })
   'record': Array<any> = undefined;
   @ApiProperty({ description: '领导' })
@@ -105,9 +107,12 @@ export class CDTO_OrderDetail {
   @ApiProperty({ description: '数量' })
   @Rule(RuleType['number']().empty(''))
   'num': number = undefined;
-  @ApiProperty({ description: '金额' })
+  @ApiProperty({ description: '单价金额' })
   @Rule(RuleType['number']().empty(''))
   'money': number = undefined;
+  @ApiProperty({ description: '总价金额' })
+  @Rule(RuleType['number']().empty(''))
+  'total_money': number = undefined;
   @ApiProperty({ description: '审核记录' })
   @Rule(RuleType['array']().empty(''))
   'record': Array<any> = undefined;

+ 6 - 4
src/service/Cart.service.ts

@@ -49,9 +49,9 @@ export class CartService extends BaseService<modelType> {
 
   // 特殊创建
   async specialCreate(data: CDTO_Cart): Promise<object> {
-    const { user, supplier_id, goods, spec, num, money } = data;
+    const { user, supplier_id, goods, spec, num, total_money } = data;
     let res;
-    // 查询库存 如果没有库存 不允许添加购物车
+    // 查询库存 如果没有库存 不允许添加购物车
     res = await this.specModel.findById(spec).lean();
     if (res.num <= 0) {
       throw new ServiceError(
@@ -66,7 +66,7 @@ export class CartService extends BaseService<modelType> {
     if (arr) {
       // 如果有就修改这条数据
       data.num = arr.num + num;
-      data.money = arr.money + money;
+      data.total_money = arr.total_money + total_money;
       res = await this.model.updateOne({ _id: new ObjectId(arr._id) }, data);
     } else res = await this.model.create(data);
     // 没有就创建
@@ -101,8 +101,9 @@ export class CartService extends BaseService<modelType> {
           num: res.num,
           file: res.file,
         };
-        info.money = parseFloat(res.money) * val.num;
+        info.money = res.money;
         info.num = val.num;
+        info.total_money = val.total_money;
         res = await this.userModel.findById(val.user).lean();
         info.user = { _id: res._id, name: res.name };
         info.cart_id = val._id;
@@ -169,6 +170,7 @@ export class CartService extends BaseService<modelType> {
             address: order.address,
             num: val.num,
             money: val.money,
+            total_money: val.total_money,
             accounting: order.accounting,
             leader: order.leader,
             buy_time: order.buy_time,

+ 22 - 2
src/service/OrderDetail.service.ts

@@ -50,6 +50,7 @@ export class OrderDetailService extends BaseService<modelType> {
       val.spec_file = res.file[0];
       res = await this.userModel.findById(val.user).lean();
       val.user_name = res.name;
+      val.user_role = res.role;
       res = await this.userModel.findById(val.supplier).lean();
       val.supplier_name = res.name;
     }
@@ -62,14 +63,33 @@ export class OrderDetailService extends BaseService<modelType> {
     const info: any = {};
     arr = await this.goodModel.findById(res.good).lean();
     info.good_name = arr.name;
-    info.good_file = info.file[0];
+    info.good_type = arr.type;
+    info.good_file = arr.file;
     arr = await this.specModel.findById(res.spec).lean();
     info.spec_name = arr.name;
-    info.spec_file = arr.file[0];
+    info.spec_file = arr.file;
     arr = await this.userModel.findById(res.user).lean();
     info.user_name = arr.name;
+    info.user_tel = arr.tel;
+    info.user_role = arr.role;
     arr = await this.userModel.findById(res.supplier).lean();
     info.supplier_name = arr.name;
+    if (res.leader && res.leader.length > 0) {
+      const leader = [];
+      for (const val of res.leader) {
+        arr = await this.userModel.findById(val).lean();
+        leader.push(arr.name);
+      }
+      info.leader_name = leader.toString();
+    }
+    if (res.accounting && res.accounting.length > 0) {
+      const accounting = [];
+      for (const val of res.accounting) {
+        arr = await this.userModel.findById(val).lean();
+        accounting.push(arr.name);
+      }
+      info.accounting_name = accounting.toString();
+    }
     const result = _.assign(info, res);
     return result;
   }