diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index 87a8feb8c..0eb0054ce 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -128,4 +128,11 @@ public interface WxOrderService { void stockBack(WxOrder updateOrder); + /** + * microPay分账 + * @param orderId + * @param payOrderId + */ + void shareForMicroPay(Long orderId, Long payOrderId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 29ab13599..9bb167db0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -78,6 +78,9 @@ public class WxOrderServiceImpl implements WxOrderService { @Autowired WxCouponActionLogService wxCouponActionLogService; + @Autowired + WxProfitSharingOrderService wxProfitSharingOrderService; + @Override public PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); @@ -133,7 +136,7 @@ public class WxOrderServiceImpl implements WxOrderService { if (pageIndex == null || pageSize == null) { List list; list = wxOrderMapper.findListOfMicroPayOrderByDate(dateMap); - logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); + logger.info("find " + list.size() + " order from " + startDate + " to " + new Date()); int total_price = 0; for (WxOrder order : list) { total_price = total_price + order.getPayment(); @@ -815,69 +818,23 @@ public class WxOrderServiceImpl implements WxOrderService { return wxOrderMapper.selectDetailOfCUser(record); } - - /* @Override - public ResultData microPayListOnDateAsPage(Long bUserId, String date, Integer pageIndex, Integer pageSize) { - - WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectByPrimaryKey(bUserId.longValue()); - if (wxMerchantBUser == null) { - logger.error("B端用户不存在:" + bUserId); - throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); - } - - WxMerchant wxMerchant = wxMerchantMapper.selectByPrimaryKey(wxMerchantBUser.getMerchantId()); - if (wxMerchant == null) { - logger.error("商户不存在:" + bUserId); - throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); - } - - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - String dateString; - Date startDate; - Date endDate; - - if (date == null) { - endDate = new Date(); - dateString = fmt.format(new Date()); - try { - startDate = fmt.parse(dateString); - } catch (ParseException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR); - } - } else { - try { - startDate = fmt.parse(date); - } catch (ParseException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR); - } - Calendar cal = Calendar.getInstance(); - cal.setTime(startDate); - cal.add(Calendar.DATE, 1); - endDate = cal.getTime(); - } - - Map dateMap = new HashMap(); - dateMap.put("startDate", startDate); - dateMap.put("endDate", endDate); - dateMap.put("merchantID", wxMerchant.getId()); - - Map resultMap = new HashMap(); - - if (pageIndex == null || pageSize == null) { - List list; - list = wxOrderMapper.findListOfOrderedByDate(dateMap); - logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); - int total_price = 0; - for (WxCouponOrder couponOrder : list) { - total_price = total_price + couponOrder.getCouponPrice(); + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void shareForMicroPay(Long orderId, Long payOrderId) { + // 微信分账 + try { + WxPayOrder wxPayOrder = new WxPayOrder(); + wxPayOrder.setId(payOrderId); + wxPayOrder.setOrderId(orderId); + wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); + wxPayOrder = wxPayOrderMapper.selectOne(wxPayOrder); + if (wxPayOrder != null && + wxPayOrder.getShare().equals(EnumPayShare.YES.getCode())) { + wxProfitSharingOrderService.createSharingOrder(wxPayOrder); } - resultMap.put("amount", total_price); - } else { - resultMap.put("list", PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfOrderedByDateForBUser(dateMap))); + } catch (Exception e) { + logger.error("微信分账: " + e.getMessage()); } - return new ResultData(resultMap); } - */ } 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 3c5c1bcac..f8c35c69d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1244,6 +1244,16 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "订单更新"); } + // 支付分账 + try { + wxOrderService.shareForMicroPay(record.getOrderId(), record.getId()); + logger.info("订单分账: orderId: {}, payOrderId: {}", record.getOrderId(), record.getId()); + } catch (Exception e) { + logger.error("订单分账失败: orderId: {}, payOrderId: {}", record.getOrderId(), record.getId()); + logger.error(e.getMessage()); + // throw new MallinkException(ErrorCode.PAY_ORDER_NOT_FOUND.getCode(), "分账更新"); + } + // TODO 支付发券 /*