lrf преди 2 години
родител
ревизия
de20b00020
променени са 3 файла, в които са добавени 9 реда и са изтрити 4 реда
  1. 3 1
      app/service/trade/cart.js
  2. 5 2
      app/service/trade/order.js
  3. 1 1
      app/service/util/trade.js

+ 3 - 1
app/service/trade/cart.js

@@ -31,7 +31,7 @@ class CartService extends CrudService {
       data = JSON.parse(JSON.stringify(data));
       data = data.map(i => ({ ...i, cart_id: i._id }));
     }
-    await this.getCartGoodsAct(data);
+    data = await this.getCartGoodsAct(data);
     const actList = await this.ctx.service.trade.order.getActList(data);
     const pageData = await this.ctx.service.trade.order.getPageData(data, actList);
     return pageData;
@@ -41,6 +41,7 @@ class CartService extends CrudService {
    * @param {Array} data 购物车商品
    */
   async getCartGoodsAct(data) {
+    data = data.map(i => ({ ...i, act: [] }));
     // 实时匹配活动问题
     const platformActList = await this.platformActModel.find({ is_use: '0' });
     const platform_act = platformActList.map(i => ObjectId(i._id).toString());
@@ -57,6 +58,7 @@ class CartService extends CrudService {
       }
       cart.act = _.uniq(act);
     }
+    return data;
   }
 
 

+ 5 - 2
app/service/trade/order.js

@@ -199,13 +199,15 @@ class OrderService extends CrudService {
         carts = JSON.parse(JSON.stringify(carts));
         carts = carts.map(i => ({ ...i, cart_id: i._id }));
       }
-      await this.ctx.service.trade.cart.getCartGoodsAct(carts);
+      carts = await this.ctx.service.trade.cart.getCartGoodsAct(carts);
       data = carts;
+    } else {
+      data = await this.ctx.service.trade.cart.getCartGoodsAct(data);
     }
     const { result, msg } = await this.ctx.service.util.trade.checkCanBuy(data, false);
     if (!result) throw new BusinessError(ErrorCode.DATA_INVALID, msg);
     // 本次订单 有关活动的数据
-    const actList = await this.getActList(data);
+    const actList = await this.getActList(data, true);
     // 正常整理商品的内容,与活动结合
     specsData = await this.getPageData(data, actList);
     // 组装页面的数据
@@ -272,6 +274,7 @@ class OrderService extends CrudService {
    * * ps1: 特价与满减/折叠加, 按特价计算总价再看满减/折; 加价购不在满减/折的金额下限计算范围内
    * * ps2: 满减与满折的优先级为:先满减,后满折(理论上不应该同时出现在一个商品上)
    * @param {Array} data 购物车数据(直接购买也会组织成购物车数据)
+   * @param {Boolean} getAll 获取所有活动
    */
   async getActList(data) {
     const actList = [];

+ 1 - 1
app/service/util/trade.js

@@ -57,7 +57,7 @@ class TradeService extends CrudService {
     if (!_.isArray(data)) data = [ data ];
     let result = { result: true };
     for (const i of data) {
-      const { shop, goods, goodsSpec, num, inviter } = i;
+      const { shop, goods, goodsSpec, num } = i;
       if (!shop) {
         result.result = false;
         result.msg = '缺少店铺信息';