From e0be773f58b404719b532528202675359c8eb157 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 13 Sep 2022 16:21:40 +0800
Subject: [PATCH] 20220902
---
src/main/resources/mapper/modules/MallGoodsMapper.xml | 7 +++++++
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java | 2 ++
src/test/java/cc/mrbird/febs/ProfitTest.java | 17 +++++++++++------
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 20 +++++++++++++-------
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java | 2 ++
src/main/resources/mapper/modules/MallGoodsSkuMapper.xml | 7 +++++++
6 files changed, 42 insertions(+), 13 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
index 0a0e495..4314de6 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
+++ b/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);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
index d4d5900..fe8ad12 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsSkuMapper.java
+++ b/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);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index b553009..c803616 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/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());
}
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index b401ffd..697cbed 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml b/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
index 99771dc..49deb04 100644
--- a/src/main/resources/mapper/modules/MallGoodsSkuMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 9c916cc..e9f366a 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/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);
}
--
Gitblit v1.9.1