content: package com.alibaba.json.bvt.bug;
  
  import java.io.Serializable;
  import java.util.Date;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  import junit.framework.TestCase;
  
  import com.alibaba.fastjson.JSON;
  
  public class Bug_for_ludong extends TestCase {
  
      public void test_for_ludong() throws Exception {
          String msg = "{\"changedItems\":[{\"attribute\":\"new\",\"benefitCustomer\":\"chance130320584431\",\"benefitCustomerContactor\":5809917,\"benefitCustomerId\":2001385618,\"bizStatus\":\"audit_pass\",\"creator\":\"dowjons\",\"defaultBiz\":true,\"discountRate\":100,\"domain\":\"nirvana\",\"executeAmount\":3688,\"gmtCreate\":1367856000000,\"gmtModified\":1368374400000,\"gmtSign\":1367856000000,\"id\":321600616,\"isDeleted\":\"n\",\"itemNum\":\"W1305070000053_1\",\"lastOperType\":\"finance_pass_rollback\",\"memberId\":\"3592950865\",\"modifier\":\"haiquan.zhanghq\",\"num\":12,\"oppId\":103722314,\"orderId\":315749401,\"parentId\":0,\"paymentAmount\":0,\"paymentStatus\":\"payment_none\",\"policyId\":63149,\"price\":3688,\"productCode\":\"pc060\",\"purchaseType\":\"bought\",\"quotedPrice\":3688,\"salesId\":\"tiandan\",\"salesOrgFullid\":\"/10/1/30/101/160/1001/1051/\",\"serviceSupplyCompany\":\"B50\",\"signSalesId\":\"tiandan\",\"signSalesOrgFullId\":\"/10/1/30/101/160/1001/1051/\",\"traceChange\":true,\"ultimatePrice\":3688,\"unServiceDay\":0,\"unit\":\"M\",\"unvoucherAmount\":3688,\"voucherStatus\":\"voucher_none\"}],\"context\":{\"payAmount\":3688,\"payDate\":1368442850437,\"paymentStatus\":\"payment_success\"},\"generateTime\":1368442868624,\"msgType\":\"PAYMENT\",\"orderNumber\":\"W1305070000053\"}";
  
          OrderInternalDto dto = JSON.parseObject(msg, OrderInternalDto.class);
      }
  
      public static class OrderInternalDto implements Serializable {
  
          private static final long   serialVersionUID = 3228508302993121205L;
  
          /* 对象生成的时间 */
  
          private Date                generateTime;
  
          /** 订单号 */
  
          private String              orderNumber;
  
          /** 对象的业务状态 */
  
          private MSGTYPE             msgType;
  
          /** 订单的瞬时状态 */
  
          // private List<OrdOrderItemDto> instantItems;
  
          /** 发生状态变化的订单行列,比如到款只是对一个订单行发生到账行为 */
  
          private List<OrdOrderItem>  changedItems;
  
          /** 上下文参数 */
  
          private Map<String, Object> context;
  
          public OrderInternalDto(){
  
              this.generateTime = new Date();
  
              context = new HashMap<String, Object>();
  
          }
  
          public void setContext(Map<String, Object> context) {
  
              if (context == null) return;
  
              this.context = context;
  
          }
  
          @Override
          public String toString() {
  
              return JSON.toJSONString(this);
  
          }
  
      }
  
      public static class OrdOrderItem implements Cloneable, Serializable {
  
          public static String         ORDER_ID                   = "orderId";
  
          private Object               orderId;
  
          public static String         PARENT_ID                  = "parentId";
  
          private Integer              parentId;
  
          public static String         SERIAL_NUM                 = "serialNum";
  
          private String               serialNum;
  
          public static String         ITEM_NUM                   = "itemNum";
  
          private String               itemNum;
  
          public static String         PURCHASE_TYPE              = "purchaseType";
  
          private String               purchaseType;
  
          public static String         ATTRIBUTE                  = "attribute";
  
          private String               attribute;
  
          public static String         MEMBER_ID                  = "memberId";
  
          private String               memberId;
  
          public static String         PRODUCT_CODE               = "productCode";
  
          private String               productCode;
  
          public static String         NUM                        = "num";
  
          private Integer              num;
  
          public static String         UNIT                       = "unit";
  
          private String               unit;
  
          public static String         PRICE                      = "price";
  
          private java.math.BigDecimal price;
  
          public static String         DISCOUNT_RATE              = "discountRate";
  
          private java.math.BigDecimal discountRate;
  
          public static String         QUOTED_PRICE               = "quotedPrice";
  
          private java.math.BigDecimal quotedPrice;
  
          public static String         ULTIMATE_PRICE             = "ultimatePrice";
  
          private java.math.BigDecimal ultimatePrice;
  
          public static String         EXECUTE_AMOUNT             = "executeAmount";
  
          private java.math.BigDecimal executeAmount;
  
          public static String         GMT_TARGET_BEGIN           = "gmtTargetBegin";
  
          private java.util.Date       gmtTargetBegin;
  
          public static String         GMT_TARGET_END             = "gmtTargetEnd";
  
          private java.util.Date       gmtTargetEnd;
  
          public static String         GMT_ACTUAL_BEGIN           = "gmtActualBegin";
  
          private java.util.Date       gmtActualBegin;
  
          public static String         GMT_ACTUAL_END             = "gmtActualEnd";
  
          private java.util.Date       gmtActualEnd;
  
          public static String         SERVICE_SUPPLY_COMPANY     = "serviceSupplyCompany";
  
          private String               serviceSupplyCompany;
  
          public static String         BENEFIT_CUSTOMER           = "benefitCustomer";
  
          private String               benefitCustomer;
  
          public static String         BENEFIT_CUSTOMER_ID        = "benefitCustomerId";
  
          private Integer              benefitCustomerId;
  
          public static String         BENEFIT_CUSTOMER_CONTACTOR = "benefitCustomerContactor";
  
          private Integer              benefitCustomerContactor;
  
          public static String         BIZ_STATUS                 = "bizStatus";
  
          private String               bizStatus;
  
          public static String         VOUCHER_STATUS             = "voucherStatus";
  
          private String               voucherStatus;
  
          public static String         PAYMENT_STATUS             = "paymentStatus";
  
          private String               paymentStatus;
  
          public static String         PAYMENT_AMOUNT             = "paymentAmount";
  
          private java.math.BigDecimal paymentAmount;
  
          public static String         POLICY_ID                  = "policyId";
  
          private Integer              policyId;
  
          public static String         MEMO                       = "memo";
  
          private String               memo;
  
          public static String         SUPPORTER                  = "supporter";
  
          private String               supporter;
  
          public static String         SUPPORTER_ORG_ID           = "supporterOrgId";
  
          private Integer              supporterOrgId;
  
          public static String         SUPPORTER_ORG_FULLID       = "supporterOrgFullid";
  
          private String               supporterOrgFullid;
  
          public static String         SALES_ORG_FULLID           = "salesOrgFullid";
  
          private String               salesOrgFullid;
  
          public static String         SIGN_SALES_ORG_FULLID      = "signSalesOrgFullId";
  
          private String               signSalesOrgFullId;
  
          public static String         OPP_ID                     = "oppId";
  
          private Integer              oppId;
  
          public static String         DOMAIN                     = "domain";
  
          private String               domain;
  
          public static String         UN_SERVICE_DAY             = "unServiceDay";
  
          private java.math.BigDecimal unServiceDay;
  
          public static String         PROCESS_ID                 = "processId";
  
          private Long                 processId;
  
          public static String         LAST_OPER_TYPE             = "lastOperType";
  
          private String               lastOperType;
  
          public static String         UNVOUCHER_AMOUNT           = "unvoucherAmount";
  
          private java.math.BigDecimal unvoucherAmount;
  
          public static String         GMT_VOUCHER_RECEIVE        = "gmtVoucherReceive";
  
          private java.util.Date       gmtVoucherReceive;
  
          public static String         GMT_PAYMENT_REMIT          = "gmtPaymentRemit";
  
          private java.util.Date       gmtPaymentRemit;
  
          public static String         SERVICE_JUMP_DAYS          = "serviceJumpDays";
  
          private Integer              serviceJumpDays;
  
          public static String         SIGN_SALES_ID              = "signSalesId";
  
          private String               signSalesId;
  
          public static String         SALES_ORG_ID               = "salesOrgId";
  
          private Integer              salesOrgId;
  
          public static String         SIGN_SALES_ORG_ID          = "signSalesOrgId";
  
          private Integer              signSalesOrgId;
  
          public Integer getSignSalesOrgId() {
  
              return signSalesOrgId;
  
          }
  
          public void setSignSalesOrgId(Integer signSalesOrgId) {
  
              this.signSalesOrgId = signSalesOrgId;
  
          }
  
          public Integer getSalesOrgId() {
  
              return salesOrgId;
  
          }
  
          public void setSalesOrgId(Integer salesOrgId) {
  
              this.salesOrgId = salesOrgId;
  
          }
  
          public static String SIGN_SELLER_COMPANY = "signSellerCompany";
  
          private String       signSellerCompany;
  
          public static String BARGAIN_ID          = "bargainId";
  
          private Integer      bargainId;
  
          public Integer getBargainId() {
  
              return bargainId;
  
          }
  
          public void setBargainId(Integer bargainId) {
  
              this.bargainId = bargainId;
  
          }
  
          public String getSignSellerCompany() {
  
              return signSellerCompany;
  
          }
  
          public void setSignSellerCompany(String signSellerCompany) {
  
              this.signSellerCompany = signSellerCompany;
  
          }
  
          // 增加了新签和续签销售的id
  
          public static String SALES_ID = "salesId";
  
          private String       salesId;
  
          public String getSalesId() {
  
              return salesId;
  
          }
  
          public void setSalesId(String salesId) {
  
              this.salesId = salesId;
  
          }
  
          public String getRenewSalesId() {
  
              return renewSalesId;
  
          }
  
          public void setRenewSalesId(String renewSalesId) {
  
              this.renewSalesId = renewSalesId;
  
          }
  
          public static String   RENEW_SALES_ID = "renewSalesId";
  
          private String         renewSalesId;
  
          public static String   GMT_SIGN       = "gmtSign";
  
          private java.util.Date gmtSign;
  
          public Object getOrderId() {
  
              return this.orderId;
  
          }
  
          public void setOrderId(Object orderId) {
  
              this.orderId = orderId;
  
          }
  
          public Integer getParentId() {
  
              return this.parentId;
  
          }
  
          public void setParentId(Integer parentId) {
  
              this.parentId = parentId;
  
          }
  
          public String getSerialNum() {
  
              return this.serialNum;
  
          }
  
          public void setSerialNum(String serialNum) {
  
              this.serialNum = serialNum;
  
          }
  
          public String getItemNum() {
  
              return this.itemNum;
  
          }
  
          public void setItemNum(String itemNum) {
  
              this.itemNum = itemNum;
  
          }
  
          public String getPurchaseType() {
  
              return this.purchaseType;
  
          }
  
          public void setPurchaseType(String purchaseType) {
  
              this.purchaseType = purchaseType;
  
          }
  
          public String getAttribute() {
  
              return this.attribute;
  
          }
  
          public void setAttribute(String attribute) {
  
              this.attribute = attribute;
  
          }
  
          public String getMemberId() {
  
              return this.memberId;
  
          }
  
          public void setMemberId(String memberId) {
  
              this.memberId = memberId;
  
          }
  
          public String getProductCode() {
  
              return this.productCode;
  
          }
  
          public void setProductCode(String productCode) {
  
              this.productCode = productCode;
  
          }
  
          public Integer getNum() {
  
              return this.num;
  
          }
  
          public void setNum(Integer num) {
  
              this.num = num;
  
          }
  
          public String getUnit() {
  
              return this.unit;
  
          }
  
          public void setUnit(String unit) {
  
              this.unit = unit;
  
          }
  
          public java.math.BigDecimal getPrice() {
  
              return this.price;
  
          }
  
          public void setPrice(java.math.BigDecimal price) {
  
              this.price = price;
  
          }
  
          public java.math.BigDecimal getDiscountRate() {
  
              return this.discountRate;
  
          }
  
          public void setDiscountRate(java.math.BigDecimal discountRate) {
  
              this.discountRate = discountRate;
  
          }
  
          public java.math.BigDecimal getQuotedPrice() {
  
              return this.quotedPrice;
  
          }
  
          public void setQuotedPrice(java.math.BigDecimal quotedPrice) {
  
              this.quotedPrice = quotedPrice;
  
          }
  
          public java.math.BigDecimal getUltimatePrice() {
  
              return this.ultimatePrice;
  
          }
  
          public void setUltimatePrice(java.math.BigDecimal ultimatePrice) {
  
              this.ultimatePrice = ultimatePrice;
  
          }
  
          public java.math.BigDecimal getExecuteAmount() {
  
              return this.executeAmount;
  
          }
  
          public void setExecuteAmount(java.math.BigDecimal executeAmount) {
  
              this.executeAmount = executeAmount;
  
          }
  
          public java.util.Date getGmtTargetBegin() {
  
              return this.gmtTargetBegin;
  
          }
  
          public void setGmtTargetBegin(java.util.Date gmtTargetBegin) {
  
              this.gmtTargetBegin = gmtTargetBegin;
  
          }
  
          public java.util.Date getGmtTargetEnd() {
  
              return this.gmtTargetEnd;
  
          }
  
          public void setGmtTargetEnd(java.util.Date gmtTargetEnd) {
  
              this.gmtTargetEnd = gmtTargetEnd;
  
          }
  
          public java.util.Date getGmtActualBegin() {
  
              return this.gmtActualBegin;
  
          }
  
          public void setGmtActualBegin(java.util.Date gmtActualBegin) {
  
              this.gmtActualBegin = gmtActualBegin;
  
          }
  
          public java.util.Date getGmtActualEnd() {
  
              return this.gmtActualEnd;
  
          }
  
          public void setGmtActualEnd(java.util.Date gmtActualEnd) {
  
              this.gmtActualEnd = gmtActualEnd;
  
          }
  
          public String getServiceSupplyCompany() {
  
              return this.serviceSupplyCompany;
  
          }
  
          public void setServiceSupplyCompany(String serviceSupplyCompany) {
  
              this.serviceSupplyCompany = serviceSupplyCompany;
  
          }
  
          public String getBenefitCustomer() {
  
              return this.benefitCustomer;
  
          }
  
          public void setBenefitCustomer(String benefitCustomer) {
  
              this.benefitCustomer = benefitCustomer;
  
          }
  
          public Integer getBenefitCustomerId() {
  
              return this.benefitCustomerId;
  
          }
  
          public void setBenefitCustomerId(Integer benefitCustomerId) {
  
              this.benefitCustomerId = benefitCustomerId;
  
          }
  
          public Integer getBenefitCustomerContactor() {
  
              return this.benefitCustomerContactor;
  
          }
  
          public void setBenefitCustomerContactor(Integer benefitCustomerContactor) {
  
              this.benefitCustomerContactor = benefitCustomerContactor;
  
          }
  
          public String getBizStatus() {
  
              return this.bizStatus;
  
          }
  
          public void setBizStatus(String bizStatus) {
  
              this.bizStatus = bizStatus;
  
          }
  
          public String getVoucherStatus() {
  
              return this.voucherStatus;
  
          }
  
          public void setVoucherStatus(String voucherStatus) {
  
              this.voucherStatus = voucherStatus;
  
          }
  
          public String getPaymentStatus() {
  
              return this.paymentStatus;
  
          }
  
          public void setPaymentStatus(String paymentStatus) {
  
              this.paymentStatus = paymentStatus;
  
          }
  
          public java.math.BigDecimal getPaymentAmount() {
  
              return this.paymentAmount;
  
          }
  
          public void setPaymentAmount(java.math.BigDecimal paymentAmount) {
  
              this.paymentAmount = paymentAmount;
  
          }
  
          public Integer getPolicyId() {
  
              return this.policyId;
  
          }
  
          public void setPolicyId(Integer policyId) {
  
              this.policyId = policyId;
  
          }
  
          public String getMemo() {
  
              return this.memo;
  
          }
  
          public void setMemo(String memo) {
  
              this.memo = memo;
  
          }
  
          public String getSupporter() {
  
              return this.supporter;
  
          }
  
          public void setSupporter(String supporter) {
  
              this.supporter = supporter;
  
          }
  
          public Integer getSupporterOrgId() {
  
              return this.supporterOrgId;
  
          }
  
          public void setSupporterOrgId(Integer supporterOrgId) {
  
              this.supporterOrgId = supporterOrgId;
  
          }
  
          public String getSupporterOrgFullid() {
  
              return this.supporterOrgFullid;
  
          }
  
          public void setSupporterOrgFullid(String supporterOrgFullid) {
  
              this.supporterOrgFullid = supporterOrgFullid;
  
          }
  
          public Integer getOppId() {
  
              return this.oppId;
  
          }
  
          public void setOppId(Integer oppId) {
  
              this.oppId = oppId;
  
          }
  
          public String getDomain() {
  
              return this.domain;
  
          }
  
          public void setDomain(String domain) {
  
              this.domain = domain;
  
          }
  
          public java.math.BigDecimal getUnServiceDay() {
  
              return this.unServiceDay;
  
          }
  
          public void setUnServiceDay(java.math.BigDecimal unServiceDay) {
  
              this.unServiceDay = unServiceDay;
  
          }
  
          public Long getProcessId() {
  
              return this.processId;
  
          }
  
          public void setProcessId(Long processId) {
  
              this.processId = processId;
  
          }
  
          public String getLastOperType() {
  
              return this.lastOperType;
  
          }
  
          public void setLastOperType(String lastOperType) {
  
              this.lastOperType = lastOperType;
  
          }
  
          public java.math.BigDecimal getUnvoucherAmount() {
  
              return this.unvoucherAmount;
  
          }
  
          public void setUnvoucherAmount(java.math.BigDecimal unvoucherAmount) {
  
              this.unvoucherAmount = unvoucherAmount;
  
          }
  
          public java.util.Date getGmtVoucherReceive() {
  
              return this.gmtVoucherReceive;
  
          }
  
          public void setGmtVoucherReceive(java.util.Date gmtVoucherReceive) {
  
              this.gmtVoucherReceive = gmtVoucherReceive;
  
          }
  
          public java.util.Date getGmtPaymentRemit() {
  
              return this.gmtPaymentRemit;
  
          }
  
          public void setGmtPaymentRemit(java.util.Date gmtPaymentRemit) {
  
              this.gmtPaymentRemit = gmtPaymentRemit;
  
          }
  
          public Integer getServiceJumpDays() {
  
              return this.serviceJumpDays;
  
          }
  
          public void setServiceJumpDays(Integer serviceJumpDays) {
  
              this.serviceJumpDays = serviceJumpDays;
  
          }
  
          @Override
          public Object clone() throws CloneNotSupportedException {
  
              return super.clone();
  
          }
  
          public String getSignSalesId() {
  
              return signSalesId;
  
          }
  
          public void setSignSalesId(String signSalesId) {
  
              this.signSalesId = signSalesId;
  
          }
  
          public String getSalesOrgFullid() {
  
              return salesOrgFullid;
  
          }
  
          public void setSalesOrgFullid(String salesOrgFullid) {
  
              this.salesOrgFullid = salesOrgFullid;
  
          }
  
          public String getSignSalesOrgFullId() {
  
              return signSalesOrgFullId;
  
          }
  
          public void setSignSalesOrgFullId(String signSalesOrgFullId) {
  
              this.signSalesOrgFullId = signSalesOrgFullId;
  
          }
  
          public java.util.Date getGmtSign() {
  
              return gmtSign;
  
          }
  
          public void setGmtSign(java.util.Date gmtSign) {
  
              this.gmtSign = gmtSign;
  
          }
  
      }
  
      public static class MSGTYPE {
  
          private String name;
  
          public String getName() {
              return name;
          }
  
          public void setName(String name) {
              this.name = name;
          }
  
      }
  }
  