|
@@ -48,6 +48,8 @@ public class OrderUtils {
|
|
|
@Resource
|
|
|
private CmReturnedPurchaseDao returnDao;
|
|
|
@Resource
|
|
|
+ private NewOrderProductDao newOrderProductDao;
|
|
|
+ @Resource
|
|
|
private CmDiscernReceiptDao receiptDao;
|
|
|
@Resource
|
|
|
private NewOrderService newOrderService;
|
|
@@ -60,12 +62,12 @@ public class OrderUtils {
|
|
|
* @param shopOrder
|
|
|
*/
|
|
|
public NewShopOrder getShouldPay(NewShopOrder shopOrder) {
|
|
|
+ setShopOrderStatus(shopOrder);
|
|
|
List<NewOrderProduct> products = payShopDao.findPayOrderProducts(shopOrder.getShopOrderId());
|
|
|
shopOrder.setShopOrderNos(payShopDao.findShopOrderNos(shopOrder.getOrderId()));
|
|
|
AtomicReference<BigDecimal> organizeFee = new AtomicReference<>();
|
|
|
AtomicReference<BigDecimal> shopFee = new AtomicReference<>();
|
|
|
AtomicReference<BigDecimal> totalAmount = new AtomicReference<>();
|
|
|
- shopOrder.setNewOrderProducts(products);
|
|
|
products.forEach(p -> {
|
|
|
// 商品总价 * 供应商成本比例 - 手续费 = 应付供应商
|
|
|
shopFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), MathUtil.div(p.getShopPercent(), 100), 2), shopFee.get()));
|
|
@@ -73,7 +75,15 @@ public class OrderUtils {
|
|
|
organizeFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), MathUtil.div(p.getOrganizePercent(), 100), 2), organizeFee.get()));
|
|
|
// 商品总价
|
|
|
totalAmount.set(MathUtil.add(p.getTotalAmount(), totalAmount.get()));
|
|
|
+ /**
|
|
|
+ * 确认收货信息
|
|
|
+ */
|
|
|
+ if (NewOrderStatus.hasReceived(shopOrder.getShopStatus())) {
|
|
|
+ Integer receivedNum = newOrderProductDao.getReceivedNum(p.getOrderProductId());
|
|
|
+ p.setReceivedNum(receivedNum);
|
|
|
+ }
|
|
|
});
|
|
|
+ shopOrder.setNewOrderProducts(products);
|
|
|
// 子订单总额 - 付供应商成本 - 付组织 = 应付采美
|
|
|
Double cmFee = MathUtil.sub(totalAmount.get(), MathUtil.add(shopFee.get(), organizeFee.get())).doubleValue();
|
|
|
|
|
@@ -473,6 +483,42 @@ public class OrderUtils {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 设置子订单状态
|
|
|
+ * shopStatus 0:待确认 1:已确认 2:交易完成 3:订单完成 4:已关闭 5:交易全退
|
|
|
+ *
|
|
|
+ * payStatus (付款供应商)付款状态:1待付款、2部分付款、3已付款
|
|
|
+ * sendOutStatus 发货状态:1待发货、2部分发货、3已发货
|
|
|
+ * receiptStatus 收款状态:1待收款、2部分收款、3已收款
|
|
|
+ */
|
|
|
+ public void setShopOrderStatus(NewShopOrder newShopOrder) {
|
|
|
+ // 11, 待付待收待发
|
|
|
+ if (("1".equals(newShopOrder.getShopStatus()) || "2".equals(newShopOrder.getShopStatus()) || "3".equals(newShopOrder.getShopStatus())) && "1".equals(newShopOrder.getOrderStatusFlag()) && "1".equals(newShopOrder.getRefundStatus())) {
|
|
|
+ if ( "1".equals(newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())){
|
|
|
+ newShopOrder.setShopStatus("11");
|
|
|
+ } else if ( "1".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("12");
|
|
|
+ } else if ( "1".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("13");
|
|
|
+ } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("21");
|
|
|
+ } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("22");
|
|
|
+ } else if ( "2".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("23");
|
|
|
+ } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "1".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("31");
|
|
|
+ } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "2".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("32");
|
|
|
+ } else if ( "3".equals( newShopOrder.getReceiptStatus()) && "3".equals( newShopOrder.getSendOutStatus())) {
|
|
|
+ newShopOrder.setShopStatus("33");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!"1".equals(newShopOrder.getOrderStatusFlag()) || !"1".equals(newShopOrder.getRefundStatus())) {
|
|
|
+ newShopOrder.setShopStatus("5");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 设置收货人信息
|
|
|
*
|