diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 6dd7a0533..974b23980 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -959,7 +959,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (record.getShare().equals(EnumPayShare.NO.getCode())) { //结算记录 try { - createMerchantSubsidy(record, order, new Date()); + proxy.createMerchantSubsidy(record, order, new Date(),true); } catch (Exception e) { logger.error("收银台结算记录失败,{}", e.getMessage()); } @@ -1057,7 +1057,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - public void createMerchantSubsidy(WxPayOrder record, WxOrder order, Date curDate) { + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void createMerchantSubsidy(WxPayOrder record, WxOrder order, Date curDate,boolean freshMerchantCash) { final IdWorker idWorker = IdWorker.get(); WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); merchantSubsidy.setId(idWorker.nextId()); @@ -1068,17 +1069,31 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); merchantSubsidy.setCouponOrderId(0L); merchantSubsidy.setCouponType(0); - merchantSubsidy.setOrderPayment(record.getPayAmount()); - merchantSubsidy.setReceiverPayment(record.getPayAmount()); - merchantSubsidy.setRealPayment(record.getPayAmount()); - merchantSubsidy.setSubsidy(record.getPayAmount()); - merchantSubsidy.setRealSubsidy(record.getPayAmount()); + if (null == record.getPayAmount()) { + merchantSubsidy.setOrderPayment(order.getPayment()); + merchantSubsidy.setReceiverPayment(order.getPayment()); + merchantSubsidy.setRealPayment(order.getPayment()); + merchantSubsidy.setSubsidy(order.getPayment()); + merchantSubsidy.setRealSubsidy(order.getPayment()); + }else { + merchantSubsidy.setOrderPayment(record.getPayAmount()); + merchantSubsidy.setReceiverPayment(record.getPayAmount()); + merchantSubsidy.setRealPayment(record.getPayAmount()); + merchantSubsidy.setSubsidy(record.getPayAmount()); + merchantSubsidy.setRealSubsidy(record.getPayAmount()); + } merchantSubsidy.setCreateDate(curDate); merchantSubsidy.setUpdateDate(curDate); merchantSubsidy.setStatus(EnumMerchantSubsidyStatus.NOT_SUBSIDY.getCode()); merchantSubsidy.setType(EnumMerchantSubsidyType.WECHAT.getCode()); merchantSubsidy.setSource(EnumMerchantSubsidySource.CASHIER.getCode()); wxMerchantSubsidyMapper.insert(merchantSubsidy); + + if (freshMerchantCash) { + WxMerchant merchant = wxMerchantMapper.selectById(wxMerchantBUser.getMerchantId()); + merchant.setCashOutNumber(merchantSubsidy.getRealPayment()); + wxMerchantMapper.increaseCash(merchant); + } } @Override