|
@@ -172,15 +172,32 @@ class PayService extends CrudService {
|
|
|
async addSell(order, tran) {
|
|
|
const goods = _.get(order, 'goods', []);
|
|
|
for (const sg of goods) {
|
|
|
- const sgList = _.get(sg, 'goods', []);
|
|
|
- for (const g of sgList) {
|
|
|
- const buy_num = _.get(g, 'buy_num', 0);
|
|
|
- const goods_id = _.get(goods, '_id');
|
|
|
- if (!goods_id) return;
|
|
|
- const goodsInfo = await this.goodsModel.findById(goods_id, { sell_num: 1 });
|
|
|
- const newSell_num = this.ctx.plus(buy_num, _.get(goodsInfo, 'sell_num'));
|
|
|
- tran.update('Goods', goods_id, { sell_num: newSell_num });
|
|
|
+ const { is_set = '1' } = sg;
|
|
|
+ if (is_set === '1') {
|
|
|
+ const sgList = _.get(sg, 'goods', []);
|
|
|
+ for (const g of sgList) {
|
|
|
+ const buy_num = _.get(g, 'buy_num', 0);
|
|
|
+ const goods_id = _.get(goods, '_id');
|
|
|
+ if (!goods_id) return;
|
|
|
+ const goodsInfo = await this.goodsModel.findById(goods_id, { sell_num: 1 });
|
|
|
+ const newSell_num = this.ctx.plus(buy_num, _.get(goodsInfo, 'sell_num'));
|
|
|
+ tran.update('Goods', goods_id, { sell_num: newSell_num });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const sgList = _.get(sg, 'goods', []);
|
|
|
+ for (const g of sgList) {
|
|
|
+ const buy_num = _.get(g, 'buy_num', 0);
|
|
|
+ const goodsList = _.get(g, 'goods', []);
|
|
|
+ for (const i of goodsList) {
|
|
|
+ const goods_id = _.get(i, 'goods_id');
|
|
|
+ const set_num = _.get(i, 'set_num');
|
|
|
+ const goodsInfo = await this.goodsModel.findById(goods_id, { sell_num: 1 });
|
|
|
+ const newNum = this.ctx.plus(_.get(goodsInfo, 'sell_num'), this.ctx.multiply(buy_num, set_num));
|
|
|
+ tran.update('Goods', goods_id, { sell_num: newNum });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|