diff --git a/frontend/getitem.html b/frontend/getitem.html index 45397bd..9a3dc19 100644 --- a/frontend/getitem.html +++ b/frontend/getitem.html @@ -100,6 +100,7 @@ success: function (data) { if (data.status == "success") { alert("下单成功"); + window.location.reload(); } else { alert("下单失败,原因为" + data.data.errMsg); if (data.data.errCode == "20003") { diff --git a/src/main/java/com/cxyxiaomo/flashsale/dao/ItemDOMapper.java b/src/main/java/com/cxyxiaomo/flashsale/dao/ItemDOMapper.java index e221331..34b36ae 100644 --- a/src/main/java/com/cxyxiaomo/flashsale/dao/ItemDOMapper.java +++ b/src/main/java/com/cxyxiaomo/flashsale/dao/ItemDOMapper.java @@ -1,6 +1,7 @@ package com.cxyxiaomo.flashsale.dao; import com.cxyxiaomo.flashsale.dataobject.ItemDO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -54,4 +55,6 @@ public interface ItemDOMapper { * @mbg.generated Thu Mar 03 13:12:13 CST 2022 */ int updateByPrimaryKey(ItemDO record); + + int increaseSales(@Param("id") Integer id, @Param("amount") Integer amount); } \ No newline at end of file diff --git a/src/main/java/com/cxyxiaomo/flashsale/service/ItemService.java b/src/main/java/com/cxyxiaomo/flashsale/service/ItemService.java index c8e55d7..b952765 100644 --- a/src/main/java/com/cxyxiaomo/flashsale/service/ItemService.java +++ b/src/main/java/com/cxyxiaomo/flashsale/service/ItemService.java @@ -15,5 +15,9 @@ public interface ItemService { // 商品详情浏览 ItemModel getItemById(Integer id); + // 库存扣减 boolean decreaseStock(Integer itemId, Integer amount) throws BusinessException; + + // 商品销量增加 + void increaseSales(Integer itemId, Integer amount); } diff --git a/src/main/java/com/cxyxiaomo/flashsale/service/impl/ItemServiceImpl.java b/src/main/java/com/cxyxiaomo/flashsale/service/impl/ItemServiceImpl.java index e3dbeb2..f6c81fc 100644 --- a/src/main/java/com/cxyxiaomo/flashsale/service/impl/ItemServiceImpl.java +++ b/src/main/java/com/cxyxiaomo/flashsale/service/impl/ItemServiceImpl.java @@ -116,6 +116,12 @@ public class ItemServiceImpl implements ItemService { } } + @Override + @Transactional + public void increaseSales(Integer itemId, Integer amount) { + itemDOMapper.increaseSales(itemId, amount); + } + private ItemModel convertModelFromDataObject(ItemDO itemDO, ItemStockDO itemStockDO) { ItemModel itemModel = new ItemModel(); BeanUtils.copyProperties(itemDO, itemModel); diff --git a/src/main/java/com/cxyxiaomo/flashsale/service/impl/OrderServiceImpl.java b/src/main/java/com/cxyxiaomo/flashsale/service/impl/OrderServiceImpl.java index 73b6627..9c0fe18 100644 --- a/src/main/java/com/cxyxiaomo/flashsale/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/cxyxiaomo/flashsale/service/impl/OrderServiceImpl.java @@ -70,12 +70,15 @@ public class OrderServiceImpl implements OrderService { orderModel.setItemPrice(itemModel.getPrice()); orderModel.setOrderPrice(itemModel.getPrice().multiply(new BigDecimal(amount))); - // 生成交易流水号,订单号 + // 生成交易流水号(订单号) orderModel.setId(generateOrderNo()); OrderDO orderDO = convertFromOrderModel(orderModel); orderDOMapper.insertSelective(orderDO); + // 商品销量增加 + itemService.increaseSales(itemId, amount); + // 4. 返回前端 return orderModel; } diff --git a/src/main/resources/mapping/ItemDOMapper.xml b/src/main/resources/mapping/ItemDOMapper.xml index daf1f1c..343b5e6 100644 --- a/src/main/resources/mapping/ItemDOMapper.xml +++ b/src/main/resources/mapping/ItemDOMapper.xml @@ -28,7 +28,7 @@ This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Mar 03 13:12:13 CST 2022. --> - select + select from item_info where id = #{id,jdbcType=INTEGER} @@ -48,10 +48,10 @@ This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Thu Mar 03 13:12:13 CST 2022. --> - insert into item_info (id, title, price, + insert into item_info (id, title, price, description, sales, img_url ) - values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL}, + values (#{id,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL}, #{description,jdbcType=VARCHAR}, #{sales,jdbcType=INTEGER}, #{imgUrl,jdbcType=VARCHAR} ) @@ -149,4 +149,9 @@ from item_info order by sales DESC + + update item_info + set sales = sales + #{amount} + where id = #{id,jdbcType=INTEGER} + \ No newline at end of file