|
|
@@ -262,8 +262,7 @@ public class OrderInfoService {
|
|
|
if (next) {
|
|
|
|
|
|
OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
|
- //按商户Id找出用户
|
|
|
- User userMer = userRepo.findById(merchantRepo.findUserIdById(orderInfo.getMerchantId())).orElseThrow(new BusinessException("无用户"));
|
|
|
+
|
|
|
|
|
|
if (OrderStatus.CANCELLED.equals(orderInfo.getStatus())) {
|
|
|
throw new BusinessException("订单已取消");
|
|
|
@@ -282,35 +281,8 @@ public class OrderInfoService {
|
|
|
orderInfo.setRiderStatus(RiderStatus.CARRY_OUT);
|
|
|
orderInfo.setUserReceivedTime(LocalDateTime.now());
|
|
|
orderInfo.setStatus(OrderStatus.RATED);
|
|
|
- //添加销量数据
|
|
|
- salesService.addSale(orderInfo);
|
|
|
-
|
|
|
-
|
|
|
- //扣除金额
|
|
|
- SysConfig sysConfig = sysConfigRepo.findByName("commission").orElseThrow(new BusinessException("无设置"));
|
|
|
- //平台抽成
|
|
|
- BigDecimal platform = orderInfo.getRealAmount().multiply(new BigDecimal(sysConfig.getValue()));
|
|
|
- //商家应得 = 减去骑手应得,减去平台抽成
|
|
|
- userMer.setMoney(userMer.getMoney().add(orderInfo.getRealAmount().subtract(orderInfo.getDeliveryAmount()).subtract(platform)));
|
|
|
- userRepo.save(userMer);
|
|
|
-
|
|
|
- //购买的user
|
|
|
- User user = userRepo.findById(orderInfo.getUserId()).orElseThrow(new BusinessException("无商户"));
|
|
|
- //记录到对账单
|
|
|
- moneyRecordRepo.save(
|
|
|
- MoneyRecord.builder()
|
|
|
- .avatar(user.getAvatar())
|
|
|
- .name(user.getNickname() + "购买")
|
|
|
- .type(FinancialType.INCOME)
|
|
|
- .time(LocalDateTime.now())
|
|
|
- .amount(orderInfo.getRealAmount())
|
|
|
- .userId(merchantRepo.findUserIdById(orderInfo.getMerchantId()))
|
|
|
- .build()
|
|
|
- );
|
|
|
|
|
|
|
|
|
- //骑手应得
|
|
|
-
|
|
|
|
|
|
break;
|
|
|
}
|
|
|
@@ -408,4 +380,41 @@ public class OrderInfoService {
|
|
|
orderInfo.setStatus(OrderStatus.CANCELLED);
|
|
|
orderInfoRepo.save(orderInfo);
|
|
|
}
|
|
|
+
|
|
|
+ public void orderCarryOut(Long orderId){
|
|
|
+ OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
|
+
|
|
|
+ //按商户Id找出用户
|
|
|
+ User userMer = userRepo.findById(merchantRepo.findUserIdById(orderInfo.getMerchantId())).orElseThrow(new BusinessException("无用户"));
|
|
|
+
|
|
|
+ //添加销量数据
|
|
|
+ salesService.addSale(orderInfo);
|
|
|
+
|
|
|
+ //扣除金额
|
|
|
+ SysConfig sysConfig = sysConfigRepo.findByName("commission").orElseThrow(new BusinessException("无设置"));
|
|
|
+ //平台抽成
|
|
|
+ BigDecimal platform = orderInfo.getRealAmount().multiply(new BigDecimal(sysConfig.getValue()));
|
|
|
+ //商家应得 = 减去骑手应得,减去平台抽成
|
|
|
+ userMer.setMoney(userMer.getMoney().add(orderInfo.getRealAmount().subtract(orderInfo.getDeliveryAmount()).subtract(platform)));
|
|
|
+ userRepo.save(userMer);
|
|
|
+
|
|
|
+ //购买的user
|
|
|
+ User user = userRepo.findById(orderInfo.getUserId()).orElseThrow(new BusinessException("无商户"));
|
|
|
+ //记录到对账单
|
|
|
+ moneyRecordRepo.save(
|
|
|
+ MoneyRecord.builder()
|
|
|
+ .avatar(user.getAvatar())
|
|
|
+ .name(user.getNickname() + "购买")
|
|
|
+ .type(FinancialType.INCOME)
|
|
|
+ .time(LocalDateTime.now())
|
|
|
+ .amount(orderInfo.getRealAmount())
|
|
|
+ .userId(merchantRepo.findUserIdById(orderInfo.getMerchantId()))
|
|
|
+ .build()
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //骑手应得
|
|
|
+ }
|
|
|
}
|