admin
2024-10-16 62a447d89331aee1feae7724c7616aa1bb2cfe79
fanli/src/main/java/com/yeshi/fanli/util/factory/goods/CommonOrderFactory.java
@@ -1,95 +1,298 @@
package com.yeshi.fanli.util.factory.goods;
import java.math.BigDecimal;
import java.util.Date;
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.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
public class CommonOrderFactory {
   public static CommonOrder create(PDDOrder order) {
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(order.getGoodsQuantity());
      commonOrder.setCreateTime(new Date());
      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 {
         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());
      commonOrder.setPayment(MoneyBigDecimalUtil.div(new BigDecimal(order.getOrderAmount()), new BigDecimal(100)));
      commonOrder.setSourcePosition(order.getpId());
      commonOrder.setSourceType(Constant.SOURCE_TYPE_PDD);
      int state = 0;
      if (-1 == order.getOrderStatus()) {
         state = CommonOrder.STATE_SX;
      } else if (0 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
      } else if (1 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
      } else if (2 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
      } else if (3 == order.getOrderStatus()) {
         state = CommonOrder.STATE_FK;
      } else if (4 == order.getOrderStatus()) {
         state = CommonOrder.STATE_WQ;
      } else if (5 == order.getOrderStatus()) {
         state = CommonOrder.STATE_JS;
      } else if (8 == order.getOrderStatus()) {
         state = CommonOrder.STATE_SX;
      }
      commonOrder.setOrderBy(1);
      commonOrder.setState(state);
      commonOrder.setThirdCreateTime(new Date(order.getOrderCreateTime() * 1000));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getOrderId());
      return commonOrder;
   }
   public static CommonOrder create(JDOrderItem order) {
      if (order.getOrder() == null)
         return null;
      CommonOrder commonOrder = new CommonOrder();
      commonOrder.setCount(Integer.parseInt(order.getSkuNum() + ""));
      commonOrder.setCreateTime(new Date());
      if (order.getValidCode() == 17) {
         commonOrder.seteIncome(order.getActualFee());
         commonOrder.setSettlement(order.getActualCosPrice());
         commonOrder.setSettleTime(new Date(order.getOrder().getFinishTime()));
      } else {
         commonOrder.seteIncome(order.getActualFee());
         commonOrder.setSettlement(order.getActualCosPrice());
      }
      commonOrder.setOrderNo(order.getOrderId() + "");
      commonOrder.setPayment(order.getEstimateCosPrice());
      commonOrder.setSourcePosition(order.getPositionId() + "");
      commonOrder.setSourceType(Constant.SOURCE_TYPE_JD);
      int state = 0;
      if (order.getValidCode() < 16) {
         state = CommonOrder.STATE_SX;
      } else if (order.getValidCode() == 16) {
         state = CommonOrder.STATE_FK;
      } else if (order.getValidCode() == 17) {
         state = CommonOrder.STATE_JS;
      }
      commonOrder.setOrderBy(order.getOrderBy());
      commonOrder.setState(state);
      commonOrder.setThirdCreateTime(new Date(order.getOrder().getOrderTime()));
      commonOrder.setUpdateTime(new Date());
      commonOrder.setTradeId(order.getTradeId());
      return commonOrder;
   }
}
package com.yeshi.fanli.util.factory.goods;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import com.yeshi.fanli.entity.dy.DYOrder;
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 org.yeshi.utils.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import org.yeshi.utils.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
public class CommonOrderFactory {
    public static CommonOrder create(PDDOrder order) {
        CommonOrder commonOrder = new CommonOrder();
        commonOrder.setCount(order.getGoodsQuantity());
        commonOrder.setCreateTime(new Date());
        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());
        commonOrder.setPayment(MoneyBigDecimalUtil.div(new BigDecimal(order.getOrderAmount()), new BigDecimal(100)));
        commonOrder.setSourcePosition(order.getpId());
        commonOrder.setSourceType(Constant.SOURCE_TYPE_PDD);
        int state = 0;
        if (-1 == order.getOrderStatus()) {
            state = CommonOrder.STATE_SX;
        } else if (0 == order.getOrderStatus()) {
            state = CommonOrder.STATE_FK;
        } else if (1 == order.getOrderStatus()) {
            state = CommonOrder.STATE_FK;
        } else if (2 == order.getOrderStatus()) {// 确认收货
            state = CommonOrder.STATE_JS;
        } else if (3 == order.getOrderStatus()) {
            state = CommonOrder.STATE_FK;
        } else if (4 == order.getOrderStatus()) {
            if (order.getOrderReceiveTime() == null || order.getOrderReceiveTime() == 0)
                state = CommonOrder.STATE_SX;
            else
                state = CommonOrder.STATE_WQ;
        } else if (5 == order.getOrderStatus()) {
            state = CommonOrder.STATE_JS;
        } else if (8 == order.getOrderStatus()) {
            state = CommonOrder.STATE_SX;
        }
        commonOrder.setOrderBy(1);
        commonOrder.setState(state);
        commonOrder.setThirdCreateTime(new Date(order.getOrderCreateTime() * 1000));
        commonOrder.setUpdateTime(new Date());
        commonOrder.setTradeId(order.getOrderId());
        commonOrder.setChildSourceType("拼多多");
        return commonOrder;
    }
    public static CommonOrder create(JDOrderItem order) {
        if (order.getOrder() == null)
            return null;
        CommonOrder commonOrder = new CommonOrder();
        commonOrder.setCount(Integer.parseInt(order.getSkuNum() + ""));
        commonOrder.setCreateTime(new Date());
        if (order.getValidCode() == 17) {
            commonOrder.seteIncome(order.getActualFee());
            commonOrder.setSettlement(order.getActualCosPrice());
            commonOrder.setSettleTime(new Date(order.getOrder().getFinishTime()));
        } else {
            commonOrder.seteIncome(order.getActualFee());
            commonOrder.setSettlement(order.getActualCosPrice());
        }
        commonOrder.setOrderNo(order.getOrderId() + "");
        commonOrder.setPayment(order.getEstimateCosPrice());
        commonOrder.setSourcePosition(order.getPositionId() + "");
        commonOrder.setSourceType(Constant.SOURCE_TYPE_JD);
        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) {
            state = CommonOrder.STATE_JS;
        }
        commonOrder.setOrderBy(order.getOrderBy());
        commonOrder.setState(state);
        commonOrder.setThirdCreateTime(new Date(order.getOrder().getOrderTime()));
        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;
    }
    public static CommonOrder create(DYOrder order) {
        CommonOrder commonOrder = new CommonOrder();
        commonOrder.setCount(1);
        commonOrder.setCreateTime(new Date());
        if (order.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_SETTLE)) {
            commonOrder.seteIncome(new BigDecimal(order.getEstimated_commission()).add(new BigDecimal(order.getEstimated_tech_service_fee())).divide(new BigDecimal(100), 2, RoundingMode.DOWN));
            commonOrder.setSettlement(new BigDecimal(order.getPay_goods_amount()).divide(new BigDecimal(100), 2, RoundingMode.FLOOR));
            commonOrder.setSettleTime(
                    new Date(TimeUtil.convertToTimeTemp(order.getSettle_time(), "yyyy-MM-dd HH:mm:ss")));
        }
        commonOrder.setOrderNo(order.getOrder_id());
        commonOrder.setPayment(new BigDecimal(order.getTotal_pay_amount()).divide(new BigDecimal(100), 2, RoundingMode.FLOOR));
        commonOrder.setSourcePosition(order.getApp_id());
        commonOrder.setSourceType(Constant.SOURCE_TYPE_DY);
        int state = 0;
        //正常状态
        if (order.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_SETTLE)) {
            // 结算
            state = CommonOrder.STATE_JS;
        } else if (order.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_CONFIRM)) {
            // 确认收货
            state = CommonOrder.STATE_FK;
        } else if (order.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_PAY_SUCCESS)) {
            //支付成功
            state = CommonOrder.STATE_FK;
        } else if (order.getFlow_point().equalsIgnoreCase(DYOrder.FLOW_POINT_REFUND)) {
            //退款
            state = CommonOrder.STATE_SX;
        }
        commonOrder.setOrderBy(1);
        commonOrder.setState(state);
        commonOrder.setThirdCreateTime(
                new Date(TimeUtil.convertToTimeTemp(order.getPay_success_time(), "yyyy-MM-dd HH:mm:ss")));
        commonOrder.setUpdateTime(new Date());
        commonOrder.setTradeId(order.getOrder_id());
        commonOrder.setEstimate(new BigDecimal(order.getEstimated_commission()).add(new BigDecimal(order.getEstimated_tech_service_fee())).divide(new BigDecimal(100), 2, RoundingMode.DOWN));
        commonOrder.setChildSourceType("抖音");
        return commonOrder;
    }
}