|
@@ -47,14 +47,14 @@ class GoodsService extends CrudService {
|
|
|
condition = this.dealFilter(condition);
|
|
|
const pipline = [{ $match: { status: { $ne: '0' } } }]; // { $sort: { sort: 1 } },
|
|
|
const { view_num, sell_num, sell_money, name, shop, tags } = condition;
|
|
|
- const sort = {};
|
|
|
+ let sort = {};
|
|
|
if (view_num) sort.view_num = parseInt(view_num);
|
|
|
if (sell_num) sort.sell_num = parseInt(sell_num);
|
|
|
if (sell_money) sort.sell_money = parseInt(sell_money);
|
|
|
if (name) pipline.push({ $match: { name: new RegExp(name) } });
|
|
|
if (shop) pipline.push({ $match: { shop } });
|
|
|
if (tags) pipline.push({ $match: { tags: { $elemMatch: { $elemMatch: { $eq: tags } } } } });
|
|
|
- pipline.push({ $addFields: { goods_id: { $toString: '$_id' } } });
|
|
|
+ pipline.push({ $addFields: { goods_id: { $toString: '$_id' }, create_time: { $dateToString: { date: '$meta.createdAt', format: '%Y-%m-%d %H:%M:%S', timezone: '+08:00' } } } });
|
|
|
// 表关联
|
|
|
pipline.push({
|
|
|
$lookup: {
|
|
@@ -75,6 +75,8 @@ class GoodsService extends CrudService {
|
|
|
view_num: 1,
|
|
|
sell_num: 1,
|
|
|
file: 1,
|
|
|
+ sort: 1,
|
|
|
+ create_time: 1,
|
|
|
sell_money: { $toDouble: '$specs.sell_money' },
|
|
|
flow_money: { $toDouble: '$specs.flow_money' },
|
|
|
createdAt: '$meta.createdAt',
|
|
@@ -85,30 +87,26 @@ class GoodsService extends CrudService {
|
|
|
$group: {
|
|
|
_id: '$_id',
|
|
|
data: { $min: '$$CURRENT' },
|
|
|
- // name: { $first: '$name' },
|
|
|
- // view_num: { $first: '$view_num' },
|
|
|
- // sell_num: { $first: '$sell_num' },
|
|
|
- // sell_money: { $min: '$sell_money' },
|
|
|
- // flow_money: { $first: '$flow_money' },
|
|
|
- // file: { $first: '$file' },
|
|
|
- // spec_file: { $first: '$spec_file' },
|
|
|
- // createdAt: { $first: '$createdAt' },
|
|
|
},
|
|
|
});
|
|
|
pipline.push({
|
|
|
$project: {
|
|
|
name: '$data.name',
|
|
|
- view_num: '$data.view_num',
|
|
|
- sell_num: '$data.sell_num',
|
|
|
- file: '$data.file',
|
|
|
- sell_money: '$data.sell_money',
|
|
|
- flow_money: '$data.flow_money',
|
|
|
- createdAt: '$data.createdAt',
|
|
|
- spec_file: '$data.spec_file',
|
|
|
+ // view_num: '$data.view_num',
|
|
|
+ // sell_num: '$data.sell_num',
|
|
|
+ // file: '$data.file',
|
|
|
+ // sell_money: '$data.sell_money',
|
|
|
+ // flow_money: '$data.flow_money',
|
|
|
+ // createdAt: '$data.createdAt',
|
|
|
+ // spec_file: '$data.spec_file',
|
|
|
+ create_time: '$data.create_time',
|
|
|
+ sort: '$data.sort',
|
|
|
},
|
|
|
});
|
|
|
sort.sort = 1;
|
|
|
+ sort = { ...sort, sort: 1, create_time: -1 };
|
|
|
pipline.push({ $sort: sort });
|
|
|
+ console.log(pipline);
|
|
|
// 分页处理
|
|
|
const qPipline = _.cloneDeep(pipline);
|
|
|
if (parseInt(skip)) qPipline.push({ $skip: parseInt(skip) });
|