Selaa lähdekoodia

Merge branch 'master' into dev

lrf 2 vuotta sitten
vanhempi
commit
4f759d5d57

+ 1 - 0
.gitignore

@@ -12,3 +12,4 @@ run/
 typings/
 .nyc_output/
 .vscode/
+.history

+ 39 - 24
app/controller/shop/config/.goodsJoinAct.js

@@ -1,47 +1,62 @@
 module.exports = {
   create: {
-    requestBody: ['platform_act', 'spec', 'platform_act_type', 'shop', 'goods', 'config', 'status'],
+    requestBody: [
+      "platform_act",
+      "spec",
+      "platform_act_type",
+      "shop",
+      "goods",
+      "config",
+      "status",
+    ],
   },
   destroy: {
-    params: ['!id'],
-    service: 'delete',
+    params: ["!id"],
+    service: "delete",
   },
   update: {
-    params: ['!id'],
-    requestBody: ['platform_act', 'platform_act_type', 'shop', 'config', 'status'],
+    params: ["!id"],
+    requestBody: [
+      "platform_act",
+      "platform_act_type",
+      "shop",
+      "config",
+      "status",
+    ],
   },
   show: {
     parameters: {
-      params: ['!id'],
+      params: ["!id"],
     },
-    service: 'fetch',
+    service: "fetch",
   },
   index: {
     parameters: {
       query: {
-        'meta.createdAt@start': 'meta.createdAt@start',
-        'meta.createdAt@end': 'meta.createdAt@end',
-        platform_act: 'platform_act',
-        platform_act_type: 'platform_act_type',
-        shop: 'shop',
-        shop_name: 'shop_name',
-        goods: 'goods',
-        goods_name: 'goods_name',
-        spec: 'spec',
-        spec_name: 'spec_name',
-        status: 'status',
-        tags: 'tags',
-        act_tags: 'act_tags',
-        goods_type: 'goods_type',
+        "meta.createdAt@start": "meta.createdAt@start",
+        "meta.createdAt@end": "meta.createdAt@end",
+        platform_act: "platform_act",
+        platform_act_type: "platform_act_type",
+        shop: "shop",
+        shop_name: "shop_name",
+        goods: "goods",
+        goods_name: "goods_name",
+        goods_status: "goods_status",
+        spec: "spec",
+        spec_name: "spec_name",
+        status: "status",
+        tags: "tags",
+        act_tags: "act_tags",
+        goods_type: "goods_type",
       },
       // options: {
       //   "meta.state": 0 // 默认条件
       // },
     },
-    service: 'query',
+    service: "query",
     options: {
-      query: ['skip', 'limit'],
-      sort: ['meta.createdAt'],
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
       desc: true,
       count: true,
     },

+ 16 - 1
app/service/shop/goodsJoinAct.js

@@ -64,13 +64,15 @@ class GoodsJoinActService extends CrudService {
   }
 
   async query(filter, { skip = 0, limit, sort, desc, projection } = {}) {
-    const { platform_act, platform_act_type, shop, shop_name, goods, goods_name, spec, spec_name, status, goods_type = 'basic' } = filter;
+    const { platform_act, platform_act_type, shop, shop_name, goods, goods_name, goods_status, spec, spec_name, status, goods_type = 'basic' } = filter;
     const mq = {};
+    const goodsMq = { status: '1' };
     if (platform_act) mq.platform_act = platform_act;
     if (platform_act_type) mq.platform_act_type = platform_act_type;
     if (shop) mq.shop = shop;
     if (goods) mq.goods = goods;
     if (goods_name) mq['goods.name'] = new RegExp(goods_name);
+    if (goods_status) goodsMq.status = new RegExp(goods_status);
     if (spec) mq.spec = spec;
     if (spec_name) mq['spec.name'] = new RegExp(spec_name);
     if (status) mq.status = status;
@@ -104,6 +106,18 @@ class GoodsJoinActService extends CrudService {
         as: 'shopInfo',
       },
     });
+    // 检查商品的实时状态及上架状态
+    pipeline.push({ $addFields: { goods_id: { $toObjectId: '$goods._id' } } });
+    pipeline.push({
+      $lookup: {
+        from: 'goods',
+        localField: 'goods_id',
+        foreignField: '_id',
+        pipeline: [{ $match: goodsMq }],
+        as: 'goods_prototype',
+      },
+    });
+    pipeline.push({ $match: { 'goods_prototype.length': { $gt: 0 } } });
     pipeline.push({
       $project: {
         meta: 1,
@@ -111,6 +125,7 @@ class GoodsJoinActService extends CrudService {
         shop_name: { $first: '$shopInfo.name' },
         goods: '$goods._id',
         goods_name: '$goods.name',
+        // goods_status: "$goods.status",
         act_tags: '$goods.act_tags',
         spec: '$spec._id',
         spec_name: '$spec.name',

+ 2 - 1
app/service/view/goods.js

@@ -84,7 +84,8 @@ class GoodsService extends CrudService {
               limit_num: 1,
               file: 1,
               leader_price: 1,
-              status: 1
+              status: 1,
+              sort: 1,
             },
           },
         ],