From d65b7a01ecd3bb11323ed78a217e029de91cd9d0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 9 Nov 2018 14:50:07 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=86=E8=B4=A6][=E5=88=B7=E5=8D=A1?= =?UTF-8?q?=E6=94=AF=E4=BB=98]:=E6=B7=BB=E5=8A=A0=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/WxOrderService.java | 7 ++ .../service/impl/WxOrderServiceImpl.java | 79 +++++-------------- .../service/impl/WxPayOrderServiceImpl.java | 10 +++ 3 files changed, 35 insertions(+), 61 deletions(-) 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 支付发券 /*