yujian
2020-06-08 b3da9f82b7740d39742fef1a81a56c22fe1c8b9c
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/CommonOrderFactory.java
@@ -6,8 +6,14 @@
import com.yeshi.fanli.entity.jd.JDOrderItem;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.pdd.PDDOrder;
import com.yeshi.fanli.entity.suning.SuningOrderInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.vipshop.VipShopOrderDetail;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
public class CommonOrderFactory {
@@ -15,16 +21,23 @@
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(order.getGoodsQuantity());
      commonOrder.setCreateTime(new Date());
      if (order.getOrderStatus() == 3) {
      if (order.getOrderStatus() == 3) {// 审核通过
         commonOrder.seteIncome(
               MoneyBigDecimalUtil.div(new BigDecimal(order.getPromotionAmount()), new BigDecimal(100)));
         commonOrder.setSettlement(
               MoneyBigDecimalUtil.div(new BigDecimal(order.getOrderAmount()), new BigDecimal(100)));// 结算金额
         commonOrder.setSettleTime(new Date(order.getOrderVerifyTime() * 1000));
      } else if (order.getOrderStatus() == 2) {// 确认收货归为审核通过
         commonOrder.seteIncome(
               MoneyBigDecimalUtil.div(new BigDecimal(order.getPromotionAmount()), new BigDecimal(100)));
         commonOrder.setSettlement(
               MoneyBigDecimalUtil.div(new BigDecimal(order.getOrderAmount()), new BigDecimal(100)));// 结算金额
         commonOrder.setSettleTime(new Date(order.getOrderReceiveTime() * 1000));
      } else {
         commonOrder.seteIncome(new BigDecimal(0));
         commonOrder.setSettlement(new BigDecimal(0));
      }
      commonOrder
            .setEstimate(MoneyBigDecimalUtil.div(new BigDecimal(order.getPromotionAmount()), new BigDecimal(100)));
      commonOrder.setOrderNo(order.getOrderSn());
@@ -39,7 +52,7 @@
         state = CommonOrder.STATE_FK;
      } else if (1 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
      } else if (2 == order.getOrderStatus()) {//确认收货
      } else if (2 == order.getOrderStatus()) {// 确认收货
         state = CommonOrder.STATE_JS;
      } else if (3 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
@@ -58,6 +71,7 @@
      commonOrder.setThirdCreateTime(new Date(order.getOrderCreateTime() * 1000));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getOrderId());
      commonOrder.setChildSourceType("拼多多");
      return commonOrder;
   }
@@ -82,6 +96,26 @@
      int state = 0;
      if (order.getValidCode() < 16) {
         state = CommonOrder.STATE_SX;
         String stateDesc = null;
         if (order.getValidCode() == 4)
            stateDesc = "京东帮主订单";
         else if (order.getValidCode() == 5)
            stateDesc = "账号异常";
         else if (order.getValidCode() == 6)
            stateDesc = "赠品类目";
         else if (order.getValidCode() == 7)
            stateDesc = "校园订单";
         else if (order.getValidCode() == 8)
            stateDesc = "企业订单";
         else if (order.getValidCode() == 9)
            stateDesc = "团购订单";
         else if (order.getValidCode() == 10)
            stateDesc = "专用发票";
         else if (order.getValidCode() == 11)
            stateDesc = "乡村推广员";
         else if (order.getValidCode() == 13)
            stateDesc = "违规订单";
         commonOrder.setStateDesc(stateDesc);
      } else if (order.getValidCode() == 16) {
         state = CommonOrder.STATE_FK;
      } else if (order.getValidCode() == 17) {
@@ -93,7 +127,127 @@
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getTradeId());
      commonOrder.setEstimate(order.getEstimateFee());
      commonOrder.setChildSourceType("京东");
      return commonOrder;
   }
   public static CommonOrder create(TaoBaoOrder taoBaoOrder) {
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(taoBaoOrder.getCount());
      commonOrder.setCreateTime(new Date());
      // 如果relationId不为空
      if (taoBaoOrder.geteIncome() != null && taoBaoOrder.getSubsidy() != null)
         commonOrder.seteIncome(taoBaoOrder.geteIncome().add(taoBaoOrder.getSubsidy()));
      else
         commonOrder.seteIncome(taoBaoOrder.geteIncome());
      commonOrder.setEstimate(taoBaoOrder.getEstimate());
      commonOrder.setOrderNo(taoBaoOrder.getOrderId());
      commonOrder.setPayment(taoBaoOrder.getPayment());
      commonOrder.setSettlement(taoBaoOrder.getSettlement());
      if (!StringUtil.isNullOrEmpty(taoBaoOrder.getSettlementTime()))
         commonOrder.setSettleTime(
               new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getSettlementTime(), "yyyy-MM-dd HH:mm:ss")));
      commonOrder.setSourcePosition(String.format("mm_%s_%s_%s", "124933865", taoBaoOrder.getSourceMediaId(),
            taoBaoOrder.getAdPositionId()));
      commonOrder.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
      int state = 0;
      if ("订单付款".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
         state = CommonOrder.STATE_FK;
      } else if ("订单成功".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
         state = CommonOrder.STATE_FK;
      } else if ("订单失效".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
         state = CommonOrder.STATE_SX;
      } else if ("订单结算".equalsIgnoreCase(taoBaoOrder.getOrderState())) {
         state = CommonOrder.STATE_JS;
      }
      commonOrder.setOrderBy(taoBaoOrder.getOrderBy());
      commonOrder.setState(state);
      commonOrder.setThirdCreateTime(
            new Date(TimeUtil.convertToTimeTemp(taoBaoOrder.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(taoBaoOrder.getTradeId());
      commonOrder.setChildSourceType(taoBaoOrder.getOrderType());
      if (!StringUtil.isNullOrEmpty(taoBaoOrder.getRelationId())) {
         commonOrder.setEstimate(
               TaoBaoUtil.getCanShareMoney(commonOrder.getThirdCreateTime(), commonOrder.getEstimate()));
         commonOrder.seteIncome(
               TaoBaoUtil.getCanShareMoney(commonOrder.getThirdCreateTime(), commonOrder.geteIncome()));
      }
      return commonOrder;
   }
   public static CommonOrder create(VipShopOrderDetail order) {
      if (order.getOrder() == null)
         return null;
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(order.getGoodsCount());
      commonOrder.setCreateTime(new Date());
      if (order.getStatus() == VipShopOrderDetail.STATUS_FINISH) {
         commonOrder.seteIncome(order.getCommission());
         commonOrder.setSettlement(order.getCommissionTotalCost());
         commonOrder.setSettleTime(new Date(order.getOrder().getCommissionEnterTime()));
      }
      commonOrder.setOrderNo(order.getOrderSn() + "");
      commonOrder.setPayment(order.getCommissionTotalCost());
      commonOrder.setSourcePosition(order.getOrder().getChannelTag());
      commonOrder.setSourceType(Constant.SOURCE_TYPE_VIP);
      int state = 0;
      if (order.getStatus() == VipShopOrderDetail.STATUS_FINISH)
         state = CommonOrder.STATE_JS;
      else if (order.getStatus() == VipShopOrderDetail.STATUS_INVALID)
         state = CommonOrder.STATE_SX;
      else if (order.getStatus() == VipShopOrderDetail.STATUS_UNKOWN)
         state = CommonOrder.STATE_FK;
      commonOrder.setOrderBy(1);
      commonOrder.setState(state);
      commonOrder.setThirdCreateTime(new Date(order.getOrder().getOrderTime()));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getIdentifyCode());
      commonOrder.setEstimate(order.getCommission());
      commonOrder.setChildSourceType("唯品会");
      return commonOrder;
   }
   public static CommonOrder create(SuningOrderInfo order) {
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(Integer.parseInt(order.getSaleNum()));
      commonOrder.setCreateTime(new Date());
      if ("确认收货".equalsIgnoreCase(order.getOrderLineStatusDesc())) {
         commonOrder.seteIncome(new BigDecimal(order.getPrePayCommission()));
         commonOrder.setSettlement(new BigDecimal(order.getPayAmount()));
         commonOrder.setSettleTime(
               new Date(TimeUtil.convertToTimeTemp(order.getOrderLineStatusChangeTime(), "yyyy-MM-dd HH:mm:ss")));
      }
      commonOrder.setOrderNo(order.getOrderCode() + "");
      commonOrder.setPayment(new BigDecimal(order.getPayAmount()));
      commonOrder.setSourcePosition(order.getPositionId());
      commonOrder.setSourceType(Constant.SOURCE_TYPE_SUNING);
      int state = 0;
      if ("等待付款".equalsIgnoreCase(order.getOrderLineStatusDesc()))
         state = CommonOrder.STATE_FK;
      else if ("支付完成".equalsIgnoreCase(order.getOrderLineStatusDesc()))
         state = CommonOrder.STATE_FK;
      else if ("退款".equalsIgnoreCase(order.getOrderLineStatusDesc()))
         state = CommonOrder.STATE_SX;
      else if ("订单已取消".equalsIgnoreCase(order.getOrderLineStatusDesc()))
         state = CommonOrder.STATE_SX;
      else if ("确认收货".equalsIgnoreCase(order.getOrderLineStatusDesc()))
         state = CommonOrder.STATE_JS;
      commonOrder.setOrderBy(1);
      commonOrder.setState(state);
      commonOrder.setThirdCreateTime(
            new Date(TimeUtil.convertToTimeTemp(order.getOrderSubmitTime(), "yyyy-MM-dd HH:mm:ss")));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getOrderLineNumber());
      commonOrder.setEstimate(new BigDecimal(order.getPrePayCommission()));
      commonOrder.setChildSourceType("苏宁");
      return commonOrder;
   }
}