src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -48,4 +48,6 @@ IPage<DataDictionaryCustom> getDeliveryHomeListInPage(Page<DataDictionaryCustom> page, @Param("record")AdminHomeDeliverySettingVo adminHomeDeliverySettingVo); MallGoodsCommentVo findMallGoodsCommentLevelByGoodsId(@Param("id")Long id); Integer upDateStockAndVolumeByGoodsId(@Param("id")Long id,@Param("cnt")Integer cnt); } src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
@@ -19,4 +19,6 @@ MallGoodsSku selectSkuInfoById(@Param("id") Long id); int delSkuByIds(@Param("list") List<Long> ids); Integer upDateStockAndVolumeBySkuId(@Param("id")Long id, @Param("cnt")Integer cnt); } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -161,9 +161,12 @@ throw new FebsException(mallGoods.getGoodsName() + "已下架"); } mallGoods.setStock(mallGoods.getStock() - item.getCnt()); mallGoods.setVolume(mallGoods.getVolume() + item.getCnt()); mallGoodsMapper.updateById(mallGoods); // mallGoods.setStock(mallGoods.getStock() - item.getCnt()); // mallGoods.setVolume(mallGoods.getVolume() + item.getCnt()); Integer goodsResult = mallGoodsMapper.upDateStockAndVolumeByGoodsId(mallGoods.getId(), item.getCnt()); if(1 != goodsResult){ throw new FebsException(mallGoods.getGoodsName() + "库存不足"); } BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); orderItem.setAmount(amount); @@ -183,10 +186,13 @@ total = total.add(amount); carriage = carriage.add(mallGoods.getCarriage()); sku.setStock(sku.getStock() - item.getCnt()); sku.setSkuVolume(sku.getSkuVolume() + item.getCnt()); mallGoodsSkuMapper.updateById(sku); // sku.setStock(sku.getStock() - item.getCnt()); // sku.setSkuVolume(sku.getSkuVolume() + item.getCnt()); // mallGoodsSkuMapper.updateById(sku); Integer skuResult = mallGoodsSkuMapper.upDateStockAndVolumeBySkuId(sku.getId(),item.getCnt()); if(1 != skuResult){ throw new FebsException(sku.getSkuName() + "库存不足"); } if (addOrderDto.getType() == 1) { mallShoppingCartMapper.delBySkuId(sku.getId(), member.getId()); } src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -264,4 +264,11 @@ from mall_goods_comment a limit 1 </select> <update id="upDateStockAndVolumeByGoodsId"> update mall_goods set stock = stock - #{cnt}, volume = volume + #{cnt} where id=#{id} and stock - #{cnt} <![CDATA[ >= ]]> 0 </update> </mapper> src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
@@ -38,4 +38,11 @@ #{item} </foreach> </delete> <update id="upDateStockAndVolumeBySkuId"> update mall_goods_sku set stock = stock - #{cnt}, sku_volume = sku_volume + #{cnt} where id=#{id} and stock - #{cnt} <![CDATA[ >= ]]> 0 </update> </mapper> src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -198,15 +198,20 @@ } @Autowired private IXcxPayService iXcxPayService; @Autowired private MallGoodsMapper mallGoodsMapper; @Test public void qrcodeBase64(){ WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto(); wxGenerateQrCodeDto.setPage("pages/product/details"); wxGenerateQrCodeDto.setScene("35"); FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto); String data = febsResponse.get("data").toString(); System.out.println(data); Integer integer = mallGoodsMapper.upDateStockAndVolumeByGoodsId(35L, 3); System.out.println(integer); // WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto(); // wxGenerateQrCodeDto.setPage("pages/product/details"); // wxGenerateQrCodeDto.setScene("35"); // FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto); // String data = febsResponse.get("data").toString(); // System.out.println(data); }