Browse Source

fix order

release_toaliyun_real
xiaohanzi 4 years ago
parent
commit
c041f696b9
8 changed files with 30 additions and 37 deletions
  1. +1
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java
  2. +4
    -20
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  4. +4
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java
  6. +9
    -7
      mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java
  7. +2
    -2
      mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java
  8. +8
    -0
      mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java

+ 1
- 0
mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java View File

@@ -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);


+ 4
- 20
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java View File

@@ -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());


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -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);




+ 4
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java View File

@@ -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));
} }


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java View File

@@ -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);
/** /**
* 计算每一个子订单的补贴 * 计算每一个子订单的补贴


+ 9
- 7
mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java View File

@@ -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();


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java View File

@@ -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
- 0
mallinkService/src/main/java/com/iformall/service/order/util/OrderHelper.java View File

@@ -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();


Loading…
Cancel
Save