|
|
@@ -1,5 +1,6 @@
|
|
|
package com.kym.service.awoara.entity.event.handle;
|
|
|
|
|
|
+import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.kym.entity.miniapp.Account;
|
|
|
import com.kym.entity.miniapp.WalletDetail;
|
|
|
import com.kym.entity.miniapp.WashOrder;
|
|
|
@@ -43,38 +44,39 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
|
|
|
log.info("订单:{},结算信息:{}", orderInfo.getOrder_id(), orderInfo);
|
|
|
|
|
|
// 订单状态、支付状态
|
|
|
- var washOrder = washOrderService.lambdaQuery()
|
|
|
- .eq(WashOrder::getOrderId, orderInfo.getOrder_id())
|
|
|
-// .eq(WashOrder::getOrderIdLocal, orderInfo.getOrder_id_local())
|
|
|
- .one();
|
|
|
- washOrder.setAmount(orderInfo.getAmount())
|
|
|
- .setAmountReceivable(orderInfo.getAmount_receivable())
|
|
|
- .setAmountReceived(orderInfo.getAmount_received())
|
|
|
- .setAmountReceived(orderInfo.getAmount_received())
|
|
|
- .setDiscountMoney(orderInfo.getDiscount_money())
|
|
|
- .setDetail(orderInfo.getDetail().toString())
|
|
|
- .setEndTime(LocalDateTime.now())
|
|
|
- .setOrderStatus(WashOrder.ORDER_STATUS_成功)
|
|
|
- .setPayStatus(WashOrder.PAY_STATUS_已支付)
|
|
|
- .setStopReason(orderInfo.getClose_type());
|
|
|
- washOrderService.updateById(washOrder);
|
|
|
+ var washOrder = washOrderService.lambdaQuery().eq(WashOrder::getOrderId, orderInfo.getOrder_id()).one();
|
|
|
+ if (washOrder != null) {
|
|
|
+ washOrder
|
|
|
+ .setCloseType(orderInfo.getClose_type())
|
|
|
+ .setAmount(orderInfo.getAmount())
|
|
|
+ .setAmountReceivable(orderInfo.getAmount_receivable())
|
|
|
+ .setDiscountMoney(orderInfo.getDiscount_money())
|
|
|
+ .setDetail(JSONArray.toJSONString(orderInfo.getDetail()))
|
|
|
+ .setEndTime(LocalDateTime.now())
|
|
|
+ .setOrderStatus(WashOrder.ORDER_STATUS_成功)
|
|
|
+ .setPayStatus(WashOrder.PAY_STATUS_已支付);
|
|
|
+ washOrderService.updateById(washOrder);
|
|
|
|
|
|
- // 扣款更新余额,新增资金流水 TODO 【存在优惠情况下校验优惠,更新优惠使用情况等】
|
|
|
- var account = accountService.getAccountByUserId(washOrder.getUserId());
|
|
|
- accountService.lambdaUpdate().setSql("balance=balance-{0}", orderInfo.getAmount())
|
|
|
- .eq(Account::getUserId, washOrder.getUserId()).update();
|
|
|
+ // 扣款更新余额,新增资金流水 TODO 【存在优惠情况下校验优惠,更新优惠使用情况等】
|
|
|
+ var account = accountService.getAccountByUserId(washOrder.getUserId());
|
|
|
+ accountService.lambdaUpdate().setSql("balance = balance - {0}", orderInfo.getAmount())
|
|
|
+ .eq(Account::getUserId, washOrder.getUserId()).update();
|
|
|
+
|
|
|
+ var walletDetail = new WalletDetail();
|
|
|
+ walletDetail.setUserId(washOrder.getUserId());
|
|
|
+ walletDetail.setType(WalletDetail.TYPE_消费);
|
|
|
+ walletDetail.setOrderNo(washOrder.getOrderId());
|
|
|
+ walletDetail.setAmount(orderInfo.getAmount());
|
|
|
+ walletDetail.setBeforeBalance(account.getBalance());
|
|
|
+ walletDetail.setAfterBalance(account.getBalance() - orderInfo.getAmount());
|
|
|
+ walletDetail.setTransactionId(washOrder.getId().toString());
|
|
|
+ walletDetail.setTransactionTime(LocalDateTime.now());
|
|
|
+ walletDetail.setStatus(WalletDetail.STATUS_已确认);
|
|
|
+ walletDetailService.save(walletDetail);
|
|
|
+ }else {
|
|
|
+ log.error("订单不存在,订单号:{}", orderInfo.getOrder_id());
|
|
|
+ }
|
|
|
|
|
|
- var walletDetail = new WalletDetail();
|
|
|
- walletDetail.setUserId(washOrder.getUserId());
|
|
|
- walletDetail.setType(WalletDetail.TYPE_消费);
|
|
|
- walletDetail.setOrderNo(washOrder.getOrderId());
|
|
|
- walletDetail.setAmount(orderInfo.getAmount());
|
|
|
- walletDetail.setBeforeBalance(account.getBalance());
|
|
|
- walletDetail.setAfterBalance(account.getBalance() - orderInfo.getAmount());
|
|
|
- walletDetail.setTransactionId(washOrder.getId().toString());
|
|
|
- walletDetail.setTransactionTime(LocalDateTime.now());
|
|
|
- walletDetail.setStatus(WalletDetail.STATUS_已确认);
|
|
|
- walletDetailService.save(walletDetail);
|
|
|
|
|
|
}
|
|
|
}
|