From 8fd05c6fd4b970cd86ec2341d1bd39e20ecc407f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 10 Feb 2023 11:08:57 +0800
Subject: [PATCH] prod参数修改
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 77 insertions(+), 27 deletions(-)
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 2a3f376..219705f 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
@@ -86,20 +86,27 @@
@Override
@Transactional(rollbackFor = Exception.class)
public Long createOrder(AddOrderDto addOrderDto) {
- synchronized(this){
+// synchronized(this){
MallMember member = LoginUserUtil.getLoginUser();
- String takeUniqueCode = addOrderDto.getTakeUniqueCode();
- if(StrUtil.isEmpty(takeUniqueCode)){
- throw new FebsException("请选择自提点");
+ //验证用户的等级
+ if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
+ throw new FebsException("请先申请成为代理人");
}
+// String takeUniqueCode = addOrderDto.getTakeUniqueCode();
+// if(StrUtil.isEmpty(takeUniqueCode)){
+// throw new FebsException("请选择自提点");
+// }
- MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
- if(ObjectUtil.isEmpty(mallTeamLeader)){
- throw new FebsException("请重新选择团长");
- }
+// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
+// if(ObjectUtil.isEmpty(mallTeamLeader)){
+// throw new FebsException("请重新选择团长");
+// }
//订单范围内才允许下单
MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
+ if(ObjectUtil.isEmpty(address)){
+ throw new FebsException("请重新选择收货地址信息");
+ }
// MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode());
// if(ObjectUtil.isNotEmpty(mallElectronicFence)){
// String inStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFence.getGKey(),
@@ -118,8 +125,8 @@
orderInfo.setRemark(addOrderDto.getRemark());
orderInfo.setOrderType(addOrderDto.getOrderType());
- orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode());
- orderInfo.setDeliveryType(1);
+// orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode());
+ orderInfo.setDeliveryType(2);
if (CollUtil.isEmpty(addOrderDto.getItems())) {
throw new FebsException("参数错误");
@@ -223,24 +230,24 @@
orderInfo.setCarriage(delivaryAmount);
}
orderInfo.setAmount(total);
-
+ orderInfo.setAddressId(address.getId());
orderInfo.setName(address.getName());
orderInfo.setPhone(address.getPhone());
orderInfo.setIsHome(addOrderDto.getIsHome());
//订单金额大于50,且选择送货上门,订单需要选择地址信息
- if(1 == addOrderDto.getIsHome()){
+// if(1 == addOrderDto.getIsHome()){
if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) {
throw new FebsException("请添加地址");
}
orderInfo.setAddress(address.getArea() + address.getAddress());
orderInfo.setLatitude(address.getLatitude());
orderInfo.setLongitude(address.getLongitude());
- }
+// }
this.baseMapper.updateById(orderInfo);
agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
return orderInfo.getId();
- }
+// }
}
@@ -260,23 +267,34 @@
orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF);
this.baseMapper.updateById(orderInfo);
- List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+
+
+
+ List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
if(CollUtil.isNotEmpty(mallOrderItemList)){
for(MallOrderItem mallOrderItem : mallOrderItemList){
- Long goodsId = mallOrderItem.getGoodsId();
- Long skuId = mallOrderItem.getSkuId();
- Integer cnt = mallOrderItem.getCnt();
- MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
- mallGoods.setVolume(mallGoods.getVolume() - cnt);
- mallGoods.setStock(mallGoods.getStock() + cnt);
- mallGoodsMapper.updateById(mallGoods);
+ MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId());
+ if (sku == null) {
+ throw new FebsException("购买商品或sku不存在");
+ }
- MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId);
- mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - cnt);
- mallGoodsSku.setStock(mallGoodsSku.getStock() + cnt);
- mallGoodsSkuMapper.updateById(mallGoodsSku);
+ if (sku.getStock() < mallOrderItem.getCnt()) {
+ throw new FebsException(sku.getSkuName() + "库存不足");
+ }
+
+ MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
+ Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt());
+ if(1 != goodsResult){
+ throw new FebsException(mallGoods.getGoodsName() + "库存不足");
+ }
+
+ Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt());
+ if(1 != skuResult){
+ throw new FebsException(sku.getSkuName() + "库存不足");
+ }
}
}
+
}
/**
@@ -478,11 +496,18 @@
@Override
public List<OrderListVo> findOrderList(OrderListDto orderListDto) {
+ log.info("订单查询");
MallMember member = LoginUserUtil.getLoginUser();
IPage<MallOrderInfo> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize());
orderListDto.setMemberId(member.getId());
- IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto);
+// IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto);
+ IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectNewApiOrderListInPage(page, orderListDto);
+ if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) {
+ mallOrderInfos.getRecords().forEach(item -> {
+ item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId()));
+ });
+ }
return MallOrderInfoConversion.INSTANCE.entitysToVos(mallOrderInfos.getRecords());
}
@@ -682,6 +707,31 @@
orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY);
this.baseMapper.updateById(orderInfo);
+
+ List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
+ if(CollUtil.isNotEmpty(mallOrderItemList)){
+ for(MallOrderItem mallOrderItem : mallOrderItemList){
+ MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId());
+ if (sku == null) {
+ throw new FebsException("购买商品或sku不存在");
+ }
+
+// if (sku.getStock() < mallOrderItem.getCnt()) {
+// throw new FebsException(sku.getSkuName() + "库存不足");
+// }
+
+ MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
+ Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt());
+ if(1 != goodsResult){
+ throw new FebsException(mallGoods.getGoodsName() + "库存不足");
+ }
+
+ Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt());
+ if(1 != skuResult){
+ throw new FebsException(sku.getSkuName() + "库存不足");
+ }
+ }
+ }
}
}
--
Gitblit v1.9.1