lrf 2 年之前
父节点
当前提交
a776127c61

+ 2 - 2
app/controller/shop/config/.goods.js

@@ -1,6 +1,6 @@
 module.exports = {
   create: {
-    requestBody: ['source', 'url', 'act_tags', 'shop', 'name', 'shot_brief', 'send_time', 'brief', 'file', 'tags', 'status'],
+    requestBody: ['sort', 'source', 'url', 'act_tags', 'shop', 'name', 'shot_brief', 'send_time', 'brief', 'file', 'tags', 'status'],
   },
   destroy: {
     params: ['!id'],
@@ -8,7 +8,7 @@ module.exports = {
   },
   update: {
     params: ['!id'],
-    requestBody: ['source', 'url', 'act_tags', 'shop', 'name', 'shot_brief', 'send_time', 'brief', 'file', 'tags', 'status'],
+    requestBody: ['sort', 'source', 'url', 'act_tags', 'shop', 'name', 'shot_brief', 'send_time', 'brief', 'file', 'tags', 'status'],
   },
   show: {
     parameters: {

+ 4 - 4
app/controller/system/config/.banner.js

@@ -1,6 +1,6 @@
 module.exports = {
   create: {
-    requestBody: ['content', 'name', 'url', 'type', 'to', 'status'],
+    requestBody: ['sort', 'content', 'name', 'url', 'type', 'to', 'status'],
   },
   destroy: {
     params: ['!id'],
@@ -8,7 +8,7 @@ module.exports = {
   },
   update: {
     params: ['!id'],
-    requestBody: ['content', 'name', 'url', 'type', 'to', 'status'],
+    requestBody: ['sort', 'content', 'name', 'url', 'type', 'to', 'status'],
   },
   show: {
     parameters: {
@@ -32,8 +32,8 @@ module.exports = {
     service: 'query',
     options: {
       query: ['skip', 'limit'],
-      sort: ['meta.createdAt'],
-      desc: true,
+      sort: ['sort'],
+      desc: false,
       count: true,
     },
   },

+ 2 - 0
app/model/system/banner.js

@@ -10,6 +10,7 @@ const banner = {
   to: { type: String, required: false, zh: '跳转至' }, // 填写路径
   status: { type: String, required: false, default: '0', zh: '是否正在使用' }, // 字典status
   content: { type: String, required: false, zh: '自定义内容' }, //
+  sort: { type: Number, required: false, zh: '排序' }, //
 };
 const schema = new Schema(banner, { toJSON: { getters: true, virtuals: true } });
 schema.index({ id: 1 });
@@ -17,6 +18,7 @@ schema.index({ 'meta.createdAt': 1 });
 schema.index({ name: 1 });
 schema.index({ type: 1 });
 schema.index({ status: 1 });
+schema.index({ sort: 1 });
 
 schema.plugin(metaPlugin);
 

+ 12 - 3
app/service/view/goods.js

@@ -63,7 +63,9 @@ class GoodsService extends CrudService {
     // 格式化平铺后的数据
     // 2022-10-17反馈-问题6:将规格图片也拿出来
     // TODO: 整理规格图片与正常的商品图片
-    pipline.push({ $project: { name: 1, view_num: 1, sell_num: 1, file: 1, sell_money: { $toDouble: '$specs.sell_money' }, createdAt: '$meta.createdAt' }, spec_file: '$specs.file' });
+    pipline.push({
+      $project: { name: 1, view_num: 1, sell_num: 1, file: 1, sell_money: { $toDouble: '$specs.sell_money' }, createdAt: '$meta.createdAt', spec_file: '$specs.file' },
+    });
     pipline.push({
       $group: {
         _id: '$_id',
@@ -72,7 +74,7 @@ class GoodsService extends CrudService {
         sell_num: { $first: '$sell_num' },
         sell_money: { $min: '$sell_money' },
         file: { $first: '$file' },
-        spec_file: { $first: 'spec_file' },
+        spec_file: { $first: '$spec_file' },
         createdAt: { $first: '$createdAt' },
       },
     });
@@ -85,7 +87,14 @@ class GoodsService extends CrudService {
     qPipline.push({ $sort: { createdAt: -1 } });
     if (parseInt(skip)) qPipline.push({ $skip: parseInt(skip) });
     if (parseInt(limit)) qPipline.push({ $limit: parseInt(limit) });
-    const list = await this.goodsModel.aggregate(qPipline);
+    let list = await this.goodsModel.aggregate(qPipline);
+    // 处理合并图片
+    list = list.map(i => {
+      if (_.isArray(i.spec_file)) {
+        i.file = [ ...i.spec_file, ...i.file ];
+      }
+      return i;
+    });
     const tPipline = _.cloneDeep(pipline);
     tPipline.push({ $count: 'total' });
     const total = await this.goodsModel.aggregate(tPipline);