From 786742ed3d630ddb1244cf41f39c0c6aaf929ad2 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 16 Sep 2022 11:49:52 +0800
Subject: [PATCH] 20220902
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 68 ++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 24 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 b553009..f152ab7 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
@@ -76,6 +76,8 @@
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final MallLeaderAchieveMapper mallLeaderAchieveMapper;
private final IApiMallTeamLeaderService iApiMallTeamLeaderService;
+ private final IMallElectronicFenceService iMallElectronicFenceService;
+ private final MallElectronicFenceMapper mallElectronicFenceMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -91,6 +93,17 @@
if(ObjectUtil.isEmpty(mallTeamLeader)){
throw new FebsException("请重新选择团长");
}
+
+ //订单范围内才允许下单
+ MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
+// MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode());
+// if(ObjectUtil.isNotEmpty(mallElectronicFence)){
+// String inStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFence.getGKey(),
+// mallElectronicFence.getServiceId(), address.getLongitude() + "," + address.getLatitude(), mallElectronicFence.getGid());
+// if("1".equals(inStr)){
+// throw new FebsException("不在当前团长的配送范围内");
+// }
+// }
String orderNo = MallUtils.getOrderNum();
MallOrderInfo orderInfo = new MallOrderInfo();
@@ -161,9 +174,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 +199,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());
}
@@ -201,7 +220,6 @@
}
orderInfo.setAmount(total);
- MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
orderInfo.setName(address.getName());
orderInfo.setPhone(address.getPhone());
orderInfo.setIsHome(addOrderDto.getIsHome());
@@ -527,23 +545,25 @@
if(CollUtil.isNotEmpty(mallOrderItemList)){
MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
+ Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch();
BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
-// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
-// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
- for(MallOrderItem mallOrderItem : mallOrderItemList){
- Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
- if(1 == state){
- MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
- mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
- mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
- mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
- BigDecimal itemAmount = mallOrderItem.getAmount();
- mallLeaderAchieve.setAmount(itemAmount);
- BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
- mallLeaderAchieve.setProfitAmount(bigDecimal);
- mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
- mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
- mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+
+ if(1 == profitSwitch){
+ for(MallOrderItem mallOrderItem : mallOrderItemList){
+ Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
+ if(1 == state){
+ MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
+ mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
+ mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
+ mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
+ BigDecimal itemAmount = mallOrderItem.getAmount();
+ mallLeaderAchieve.setAmount(itemAmount);
+ BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
+ mallLeaderAchieve.setProfitAmount(bigDecimal);
+ mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
+ mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
+ mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+ }
}
}
}
--
Gitblit v1.9.1