| @@ -223,6 +223,7 @@ public class WxPressOrderController extends BaseController { | |||||
| orderUpdatePress.updateTenantInfo(order); | orderUpdatePress.updateTenantInfo(order); | ||||
| // 保存订单 | // 保存订单 | ||||
| wxOrderService.saveOrUpdate(orderUpdatePress); | wxOrderService.saveOrUpdate(orderUpdatePress); | ||||
| // 发送砍价成功消息 | // 发送砍价成功消息 | ||||
| if(index.equals(wxCouponCVo.getPressLimitNum())) { | if(index.equals(wxCouponCVo.getPressLimitNum())) { | ||||
| wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | wxOrderPressService.sendPressComplateMsg(orderUpdatePress); | ||||
| @@ -769,9 +769,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| Integer realSubsidyFee = subsidyNum - iSubChargeFee; | Integer realSubsidyFee = subsidyNum - iSubChargeFee; | ||||
| WxOrder order = wxOrderMapper.selectById(couponOrder.getOrderId(), couponOrder.getTenantId()); | WxOrder order = wxOrderMapper.selectById(couponOrder.getOrderId(), couponOrder.getTenantId()); | ||||
| WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, order.getOrderGroupId(), order.getCouponNumber()); | |||||
| int iPriceChargeFee = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); | |||||
| Integer realPayment = price.getRealPayMent() - iPriceChargeFee; | |||||
| int iPriceChargeFee = OrderHelper.getMallCharge(coupon.getSalePrice(), payAccount); | |||||
| Integer realPayment = coupon.getSalePrice() - iPriceChargeFee; | |||||
| WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); | WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); | ||||
| merchantSubsidy.setId(idWorker.nextId()); | merchantSubsidy.setId(idWorker.nextId()); | ||||
| @@ -781,8 +780,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| merchantSubsidy.setMerchantId(merchantId); | merchantSubsidy.setMerchantId(merchantId); | ||||
| merchantSubsidy.setCouponOrderId(couponOrder.getId()); | merchantSubsidy.setCouponOrderId(couponOrder.getId()); | ||||
| merchantSubsidy.setCouponType(couponOrder.getCouponType()); | merchantSubsidy.setCouponType(couponOrder.getCouponType()); | ||||
| merchantSubsidy.setOrderPayment(price.getRealPayMent()); | |||||
| merchantSubsidy.setReceiverPayment(price.getRealPayMent()); | |||||
| merchantSubsidy.setOrderPayment(coupon.getPrice()); | |||||
| merchantSubsidy.setReceiverPayment(coupon.getSalePrice()); | |||||
| merchantSubsidy.setRealPayment(realPayment); | merchantSubsidy.setRealPayment(realPayment); | ||||
| merchantSubsidy.setSubsidy(subsidyNum); | merchantSubsidy.setSubsidy(subsidyNum); | ||||
| merchantSubsidy.setRealSubsidy(realSubsidyFee); | merchantSubsidy.setRealSubsidy(realSubsidyFee); | ||||
| @@ -1526,21 +1525,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| payOrder.setShare(EnumPayShare.NO.getCode()); | payOrder.setShare(EnumPayShare.NO.getCode()); | ||||
| } | } | ||||
| //设置子订单分账金额 | |||||
| Map<String,WxComposeChildOrderShare> childShares = new HashMap<String,WxComposeChildOrderShare>(); | |||||
| OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()); | |||||
| List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); | |||||
| if (null != orderList && orderList.size() > 0) { | |||||
| for (WxOrder o : orderList) { | |||||
| WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); | |||||
| WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); | |||||
| int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); | |||||
| Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; | |||||
| Integer orderRateAmount = PayUtils.getPayRate(price.getRealPayMent(), payAccount.getRealRate(), true); | |||||
| childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); | |||||
| } | |||||
| payOrder.setChildOrderShare(JSON.toJSONString(childShares)); | |||||
| } | |||||
| } | } | ||||
| payOrder.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); | payOrder.setPayFrom(EnumPayFrom.INSIDE_B.getCode()); | ||||
| payOrder.setPosPayOrderId(couponOrder.getId()); | payOrder.setPosPayOrderId(couponOrder.getId()); | ||||
| @@ -2133,7 +2133,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // 4. 保存订单 | // 4. 保存订单 | ||||
| Long orderNumber; | Long orderNumber; | ||||
| // 4.1 券价格 | // 4.1 券价格 | ||||
| WxComposeChildOrderPrice price = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()).getChildOrderPrice(coupon, isPress, orderGroupId, couponNumber); | |||||
| WxComposeChildOrderPrice price = orderFactory.getOrderAdapterService(composeOrder.getComposeOrderType()).getChildCouponOrderPrice(coupon, isPress, orderGroupId, couponNumber); | |||||
| Integer orderStatus = OrderHelper.getOrderStatusWxCoupon(coupon, orderGroupId); | Integer orderStatus = OrderHelper.getOrderStatusWxCoupon(coupon, orderGroupId); | ||||
| @@ -392,12 +392,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { | |||||
| List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); | List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); | ||||
| if(null != orderList && orderList.size() > 0) { | if(null != orderList && orderList.size() > 0) { | ||||
| for (WxOrder o : orderList) { | for (WxOrder o : orderList) { | ||||
| WxCoupon coupon = wxCouponMapper.selectById(o.getProductId(), appInfo.getTenantId()); | |||||
| WxComposeChildOrderPrice price = orderAdapterService.getChildOrderPrice(coupon, false, o.getOrderGroupId(), o.getCouponNumber()); | |||||
| int orderMallCharge = OrderHelper.getMallCharge(price.getRealPayMent(), payAccount); | |||||
| Integer orderShareAmount = price.getRealPayMent() - orderMallCharge; | |||||
| Integer orderRateAmount = OrderHelper.getRateAmount(price.getRealPayMent(),orderMallCharge, payAccount); | |||||
| childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(price.getRealPayMent(), orderShareAmount, orderRateAmount)); | |||||
| int orderMallCharge = OrderHelper.getMallCharge(o.getPayment(), payAccount); | |||||
| Integer orderShareAmount = o.getPayment() - orderMallCharge; | |||||
| Integer orderRateAmount = OrderHelper.getRateAmount(o.getPayment(),orderMallCharge, payAccount); | |||||
| childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(o.getPayment(), orderShareAmount, orderRateAmount)); | |||||
| } | } | ||||
| record.setChildOrderShare(JSON.toJSONString(childShares)); | record.setChildOrderShare(JSON.toJSONString(childShares)); | ||||
| } | } | ||||
| @@ -37,7 +37,7 @@ public interface OrderAdapterService { | |||||
| * @param coupon | * @param coupon | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| WxComposeChildOrderPrice getChildOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber); | |||||
| WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber); | |||||
| /** | /** | ||||
| * 计算每一个子订单的补贴 | * 计算每一个子订单的补贴 | ||||
| @@ -41,6 +41,7 @@ public class SingleOrderAdapterService implements OrderAdapterService { | |||||
| public boolean isOneNumberOneOrder() { | public boolean isOneNumberOneOrder() { | ||||
| return true; | return true; | ||||
| } | } | ||||
| @Override | @Override | ||||
| public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { | public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { | ||||
| @@ -49,6 +50,14 @@ public class SingleOrderAdapterService implements OrderAdapterService { | |||||
| corder.setSingleOrder(wxOrder); | corder.setSingleOrder(wxOrder); | ||||
| return corder; | return corder; | ||||
| } | } | ||||
| @Override | |||||
| public WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon, boolean isPress, Long orderGroupId, | |||||
| Integer couponNumber) { | |||||
| Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); | |||||
| return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); | |||||
| } | |||||
| @Override | @Override | ||||
| public List<WxOrder> getChildOrders(WxComposeOrder composeOrder, String tenantId) { | public List<WxOrder> getChildOrders(WxComposeOrder composeOrder, String tenantId) { | ||||
| @@ -65,13 +74,6 @@ public class SingleOrderAdapterService implements OrderAdapterService { | |||||
| wxOrderMapper.updateCUserId(order); | wxOrderMapper.updateCUserId(order); | ||||
| } | } | ||||
| @Override | |||||
| public WxComposeChildOrderPrice getChildOrderPrice(WxCoupon coupon, boolean isPress, Long orderGroupId, | |||||
| Integer couponNumber) { | |||||
| Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); | |||||
| return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); | |||||
| } | |||||
| @Override | @Override | ||||
| public Integer calcuteChildOrderSubsidy(WxCoupon coupon) { | public Integer calcuteChildOrderSubsidy(WxCoupon coupon) { | ||||
| return coupon.getSubsidyNum(); | return coupon.getSubsidyNum(); | ||||
| @@ -39,7 +39,7 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic | |||||
| WxOrderMapper wxOrderMapper; | WxOrderMapper wxOrderMapper; | ||||
| @Override | @Override | ||||
| public WxComposeChildOrderPrice getChildOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber) { | |||||
| public WxComposeChildOrderPrice getChildCouponOrderPrice(WxCoupon coupon,boolean isPress,Long orderGroupId,Integer couponNumber) { | |||||
| Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); | Integer perPrice = OrderHelper.getCouponPerPayment(coupon, isPress, orderGroupId); | ||||
| return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); | return new WxComposeChildOrderPrice(perPrice, couponNumber, coupon.getId()); | ||||
| } | } | ||||
| @@ -53,7 +53,7 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic | |||||
| int payment = 0; | int payment = 0; | ||||
| for (OrderComposeSaveDto ocsd : orderSave) { | for (OrderComposeSaveDto ocsd : orderSave) { | ||||
| boolean isPress = ocsd.getSignleOrder().isPressOrder(); | boolean isPress = ocsd.getSignleOrder().isPressOrder(); | ||||
| WxComposeChildOrderPrice price = getChildOrderPrice(ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); | |||||
| WxComposeChildOrderPrice price = getChildCouponOrderPrice(ocsd.getWxCoupon(), isPress, ocsd.getSignleOrder().getOrderGroupId(), ocsd.getCount()); | |||||
| payment = payment+price.getRealPayMent(); | payment = payment+price.getRealPayMent(); | ||||
| } | } | ||||
| order.setPayment(payment); | order.setPayment(payment); | ||||
| @@ -8,6 +8,14 @@ import com.iformall.utils.PayUtils; | |||||
| public class OrderHelper { | public class OrderHelper { | ||||
| /** | |||||
| * 砍价初始金额是price, 砍价完成会更新成salePrice | |||||
| * | |||||
| * @param coupon | |||||
| * @param isPress | |||||
| * @param orderGroupId | |||||
| * @return | |||||
| */ | |||||
| public static int getCouponPerPayment(WxCoupon coupon,boolean isPress,Long orderGroupId) { | public static int getCouponPerPayment(WxCoupon coupon,boolean isPress,Long orderGroupId) { | ||||
| // 4.1 券价格 | // 4.1 券价格 | ||||
| int payment = coupon.getSalePrice(); | int payment = coupon.getSalePrice(); | ||||