'use strict'; const { CrudService } = require('naf-framework-mongoose-free/lib/service'); const { BusinessError, ErrorCode } = require('naf-core').Error; const _ = require('lodash'); const assert = require('assert'); // class TradeService extends CrudService { constructor(ctx) { super(ctx, 'trade'); this.goodsModel = this.ctx.model.Shop.Goods; this.goodsSpecModel = this.ctx.model.Shop.GoodsSpec; } /** * 检测是否可以购买该物品 * @param {Object} param 查询条件 * @param param.goods_id 商品id * @param param.goodsSpec_id 商品规格id * @param param.num 购买数量 */ async checkCanBuy({ goods_id, goodsSpec_id, num }) { const result = { result: true }; // 1.检查商品是否可以购买 const goods = await this.goodsModel.findById(goods_id); if (!goods) { result.msg = '未找到商品'; result.result = false; return result; } if (goods.status === '0') { result.msg = '该商品已下架'; result.result = false; return result; } // 2.检验该规格是否可以购买 const goodsSpec = await this.goodsSpecModel.findById(goodsSpec_id); if (!goodsSpec) { result.msg = '未找到商品的指定规格'; result.result = false; return result; } if (goods.status !== '0') { result.msg = '该规格的商品已下架'; result.result = false; return result; } if (goods.num < num) { result.msg = '库存量不足'; result.result = false; return result; } return result; } } module.exports = TradeService;