TS 使goodsID唯一,num加一[{"num": 1, "price": 500, "goodsID": 6},{"num": 1, "price": 500, "goodsID": 6},{"num": 1, "price": 500, "goodsID": 6}]
时间: 2023-04-03 07:04:43 浏览: 44
可以使用一个字典来记录每个goodsID对应的num值,遍历列表中的每个元素,如果该元素的goodsID已经在字典中出现过,则将其对应的num值加一,否则将该元素的goodsID添加到字典中,并将其对应的num值设为1。最终得到的列表即为唯一的goodsID,num加一后的结果。
相关问题
TS 使goodsID唯一,num加一
可以使用 TS 中的接口或类型定义来确保 goodsID 唯一,例如:
interface Good {
goodsID: string;
num: number;
}
然后在添加商品时,可以先检查是否已经存在该 goodsID 的商品,如果存在则将 num 加一,否则创建一个新的商品对象。
const stock = await this.repoStock.find({ where: { goods: { sort: EType.noCode }, }, select: ['id', 'shopID', 'goodsID'] }) let where: {} for (let tmp of stock) { where = { order: { shopID: tmp.id }, goodsID: tmp.goodsID, } //查询订单制作数量 const makeNum = sumBy(await this.repoOrderDetail.find({ where }), 'makeNum') //查询门店签收 const goodCarryInfo = await this.repoGoodCarryInfo.find({ where: { goodsID: tmp.goodsID, stockID: tmp.id } }) let amount = sumBy(goodCarryInfo, 'signForCount') //计算报损数量 let breakageNum = amount - makeNum - tmp.num - tmp.readyOut this.repoBreakage.save({ goodsID: tmp.goodsID, cause: ECause.cause, shopID: tmp.shopID, num: breakageNum }) //计算门店库存 let stockNum = amount - makeNum - tmp.readyOut - breakageNum this.repoStock.update({ id: tmp.id }, { num: stockNum }) } return stock
这是一段 TypeScript 代码,用于查询商品库存并更新库存信息。它首先查询所有未编码的商品库存,然后对每个库存进行以下操作:查询订单制作数量,查询门店签收数量,计算报损数量并保存报损记录,计算门店库存并更新库存信息。最后返回所有库存信息。
阅读全文