AmazonOrder.java 8.3 KB
package com.aukey.example.entity.fbaStock;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.UnsupportedEncodingException;
import java.util.Date;

@Data
@Table(name = "amazon_order")
public class AmazonOrder {
    /**
     * 自增主键
     */
    @Id
    private Integer aid;

    /**
     * 亚马逊订单ID
     */
    @Column(name = "amazon_order_id")
    private String amazonOrderId;

    /**
     * 卖家订单ID
     */
    @Column(name = "seller_order_id")
    private String sellerOrderId;

    /**
     * 购买日期
     */
    @Column(name = "purchase_date")
    private Date purchaseDate;

    /**
     * 付款日期
     */
    @Column(name = "payments_date")
    private Date paymentsDate;

    /**
     * 最后更新日期
     */
    @Column(name = "last_update_date")
    private Date lastUpdateDate;

    /**
     * 订单状态:1、Pending Availability等待订单生效;2、Pending待定;3、Unshipped未发货;4、Partially Shipped部分发货;5、Shipped已发货;6、Invoice Unconfirmed发票未确认;7、Canceled已取消;8、Unfulfillable无法发货
     */
    @Column(name = "order_status")
    private String orderStatus;

    /**
     * 发货渠道(AFN、MFN)
     */
    @Column(name = "fulfillment_channel")
    private String fulfillmentChannel;

    /**
     * 销售渠道(站点)
     */
    @Column(name = "sales_channel")
    private String salesChannel;

    /**
     * 运输服务等级
     */
    @Column(name = "ship_service_level")
    private String shipServiceLevel;

    /**
     * 收货地址-城市
     */
    @Column(name = "shipping_address_city")
    private String shippingAddressCity;

    /**
     * 收货地址-县
     */
    @Column(name = "shipping_address_county")
    private String shippingAddressCounty;

    /**
     * 收货地址-地区
     */
    @Column(name = "shipping_address_district")
    private String shippingAddressDistrict;

    /**
     * 收货地址-州
     */
    @Column(name = "shipping_address_stateOrRegion")
    private String shippingAddressStateorregion;

    /**
     * 收货地址-邮政编码
     */
    @Column(name = "shipping_address_postalCode")
    private String shippingAddressPostalcode;

    /**
     * 收货地址-国家编码
     */
    @Column(name = "shipping_address_countryCode")
    private String shippingAddressCountrycode;

    @Column(name = "shipping_address_phone")
    private String shippingAddressPhone;

    /**
     * 订单总额(币种)
     */
    @Column(name = "order_total_currency_code")
    private String orderTotalCurrencyCode;

    /**
     * 订单总额
     */
    @Column(name = "order_total_amount")
    private Double orderTotalAmount;

    /**
     * 邮费总额
     */
    @Column(name = "postage_total")
    private Double postageTotal;

    /**
     * 折扣总额
     */
    @Column(name = "discount_total")
    private Double discountTotal;

    /**
     * 发货数量
     */
    @Column(name = "number_of_items_shipped")
    private Integer numberOfItemsShipped;

    /**
     * 未发货数量
     */
    @Column(name = "number_of_items_unshipped")
    private Integer numberOfItemsUnshipped;

    /**
     * 付款方式
     */
    @Column(name = "payment_method")
    private String paymentMethod;

    /**
     * 市场ID
     */
    @Column(name = "marketplace_id")
    private String marketplaceId;

    /**
     * 买家邮箱
     */
    @Column(name = "buyer_email")
    private String buyerEmail;

    /**
     * 买家名称
     */
    @Column(name = "buyer_name")
    private String buyerName;

    /**
     * 出货服务等级类别
     */
    @Column(name = "shipment_service_level_category")
    private String shipmentServiceLevelCategory;

    @Column(name = "shipped_by_amazon_tfm")
    private String shippedByAmazonTfm;

    @Column(name = "tfm_shipment_status")
    private String tfmShipmentStatus;

    @Column(name = "cba_displayable_shipping_label")
    private String cbaDisplayableShippingLabel;

    /**
     * 订单类型
     */
    @Column(name = "order_type")
    private String orderType;

    /**
     * 最早发货日期
     */
    @Column(name = "earliest_ship_date")
    private Date earliestShipDate;

    /**
     * 最晚发货日期
     */
    @Column(name = "latest_ship_date")
    private Date latestShipDate;

    /**
     * 最早交货日期
     */
    @Column(name = "earliest_delivery_date")
    private Date earliestDeliveryDate;

    /**
     * 最晚交货日期
     */
    @Column(name = "latest_delivery_date")
    private Date latestDeliveryDate;

    @Column(name = "is_business_order")
    private String isBusinessOrder;

    /**
     * 买家采购订单编号
     */
    @Column(name = "purchase_order_number")
    private String purchaseOrderNumber;

    @Column(name = "is_prime")
    private String isPrime;

    @Column(name = "is_premium_order")
    private String isPremiumOrder;

    /**
     * 是否导入E登:0未导入;1已导入
     */
    @Column(name = "is_import_ed")
    private String isImportEd;

    /**
     * 导入E登时间
     */
    @Column(name = "import_ed_date")
    private Date importEdDate;

    /**
     * 抓单时间
     */
    @Column(name = "import_sys_date")
    private Date importSysDate;

    /**
     * 店铺ID
     */
    @Column(name = "account_id")
    private Integer accountId;

    /**
     * 店铺简码
     */
    @Column(name = "account_code")
    private String accountCode;

    /**
     * 区域ID
     */
    @Column(name = "area_id")
    private Integer areaId;

    /**
     * 区域
     */
    private String area;

    /**
     * 记录创建时间
     */
    @Column(name = "create_date")
    private Date createDate;

    /**
     * 记录更新时间
     */
    @Column(name = "update_date")
    private Date updateDate;

    /**
     * item表处理状态
     */
    @Column(name = "order_item_status")
    private String orderItemStatus;

    /**
     * 收件人姓名
     */
    @Column(name = "shipping_address_name")
    private byte[] shippingAddressName;

    /**
     * 收货地址-街道1
     */
    @Column(name = "shipping_address_line1")
    private byte[] shippingAddressLine1;

    /**
     * 收货地址-街道2
     */
    @Column(name = "shipping_address_line2")
    private byte[] shippingAddressLine2;

    /**
     * 收货地址-街道3
     */
    @Column(name = "shipping_address_line3")
    private byte[] shippingAddressLine3;

    @Transient
    @JSONField(name = "shipping_address_name")
    private String shippingAddressNameStr;

    @Transient
    @JSONField(name = "shipping_address_line1")
    private String shippingAddressLine1Str;

    @Transient
    @JSONField(name = "shipping_address_line2")
    private String shippingAddressLine2Str;

    @Transient
    @JSONField(name = "shipping_address_line3")
    private String shippingAddressLine3Str;

    public byte[] getShippingAddressName() {
        if (StringUtils.isNotBlank(shippingAddressNameStr)) {
            try {
                return shippingAddressNameStr.getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public byte[] getShippingAddressLine1() {
        if (StringUtils.isNotBlank(shippingAddressLine1Str)) {
            try {
                return shippingAddressLine1Str.getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public byte[] getShippingAddressLine2() {
        if (StringUtils.isNotBlank(shippingAddressLine2Str)) {
            try {
                return shippingAddressLine2Str.getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public byte[] getShippingAddressLine3() {
        if (StringUtils.isNotBlank(shippingAddressLine3Str)) {
            try {
                return shippingAddressLine3Str.getBytes("UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}