購物網站3:訂單實體類設計----配送方式--留言--訂單--訂單聯繫方式--訂單配送信息--訂單項--訂單狀態--支付方式

 import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;

import cn.itcast.bean.user.Gender;
/**
 * 訂單的配送信息
 */
@Entity
public class OrderDeliverInfo {
 private Integer deliverid;
 /* 收貨人姓名 */
 private String recipients;
 /* 配送地址 */
 private String address;
 /* 電子郵箱 */
 private String email;
 /* 郵編 */
 private String postalcode;
 /* 座機 */
 private String tel;
 /* 手機 */
 private String mobile;
 /* 性別 */
 private Gender gender = Gender.MAN;
 /* 配送方式 */
 private DeliverWay deliverWay;
 /* 配送時間要求 */
 private String requirement;
 private Order order;
 
 @OneToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},mappedBy="orderDeliverInfo")
 public Order getOrder() {
  return order;
 }
 public void setOrder(Order order) {
  this.order = order;
 }
 @Id @GeneratedValue
 public Integer getDeliverid() {
  return deliverid;
 }
 public void setDeliverid(Integer deliverid) {
  this.deliverid = deliverid;
 }
 @Column(length=40)
 public String getRequirement() {
  return requirement;
 }
 public void setRequirement(String requirement) {
  this.requirement = requirement;
 }
 @Enumerated(EnumType.STRING) @Column(length=23, nullable=false)
 public DeliverWay getDeliverWay() {
  return deliverWay;
 }
 public void setDeliverWay(DeliverWay deliverWay) {
  this.deliverWay = deliverWay;
 }
 @Column(length=10,nullable=false)
 public String getRecipients() {
  return recipients;
 }
 public void setRecipients(String recipients) {
  this.recipients = recipients;
 }
 @Column(length=50,nullable=false)
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 @Column(length=40)
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 @Column(length=6)
 public String getPostalcode() {
  return postalcode;
 }
 public void setPostalcode(String postalcode) {
  this.postalcode = postalcode;
 }
 @Column(length=18)
 public String getTel() {
  return tel;
 }
 public void setTel(String tel) {
  this.tel = tel;
 }
 @Column(length=11)
 public String getMobile() {
  return mobile;
 }
 public void setMobile(String mobile) {
  this.mobile = mobile;
 }
 @Enumerated(EnumType.STRING) @Column(length=5,nullable=false)
 public Gender getGender() {
  return gender;
 }
 public void setGender(Gender gender) {
  this.gender = gender;
 }
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result
    + ((deliverid == null) ? 0 : deliverid.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final OrderDeliverInfo other = (OrderDeliverInfo) obj;
  if (deliverid == null) {
   if (other.deliverid != null)
    return false;
  } else if (!deliverid.equals(other.deliverid))
   return false;
  return true;
 }
 
}

 

 

----------------------------------------------------------------------

 

 

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 * 訂單項
 */
@Entity
public class OrderItem {
 private Integer itemid;
 /* 產品名稱 */
 private String productName;
 /* 產品id */
 private Integer productid;
 /* 產品銷售價 */
 private Float productPrice = 0f;
 /* 購買數量 */
 private Integer amount=1;
 /* 產品樣式 */
 private String styleName; 
 /* 產品樣式ID */
 private Integer styleid;
 /* 所屬訂單 */
 private Order order;
 
 public OrderItem(){}
 
 public OrderItem(String productName, Integer productid, Float productPrice,
   Integer amount, String styleName, Integer styleid) {
  this.productName = productName;
  this.productid = productid;
  this.productPrice = productPrice;
  this.amount = amount;
  this.styleName = styleName;
  this.styleid = styleid;
 }
 @Id @GeneratedValue
 public Integer getItemid() {
  return itemid;
 }
 public void setItemid(Integer itemid) {
  this.itemid = itemid;
 }
 @Column(length=50, nullable=false)
 public String getProductName() {
  return productName;
 }
 public void setProductName(String productName) {
  this.productName = productName;
 }
 @Column(nullable=false)
 public Integer getProductid() {
  return productid;
 }
 public void setProductid(Integer productid) {
  this.productid = productid;
 }
 @Column(nullable=false)
 public Float getProductPrice() {
  return productPrice;
 }
 public void setProductPrice(Float productPrice) {
  this.productPrice = productPrice;
 }
 @Column(nullable=false)
 public Integer getAmount() {
  return amount;
 }
 public void setAmount(Integer amount) {
  this.amount = amount;
 }
 @Column(length=30, nullable=false)
 public String getStyleName() {
  return styleName;
 }
 public void setStyleName(String styleName) {
  this.styleName = styleName;
 }
 @Column(nullable=false)
 public Integer getStyleid() {
  return styleid;
 }
 public void setStyleid(Integer styleid) {
  this.styleid = styleid;
 }
 
 @ManyToOne(cascade=CascadeType.REFRESH,optional=false)
 @JoinColumn(name="order_id")
 public Order getOrder() {
  return order;
 }
 public void setOrder(Order order) {
  this.order = order;
 }
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + ((itemid == null) ? super.hashCode() : itemid.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final OrderItem other = (OrderItem) obj;
  if (itemid == null) {
   if (other.itemid != null)
    return false;
  } else if (!itemid.equals(other.itemid))
   return false;
  return true;
 }
 
}

 

 

--------------------------------------------------------------------

 

/**
 * 訂單狀態
 */
public enum OrderState {
 /** 已取消 **/
    CANCEL {public String getName(){return "已取消";}},
    /** 待審覈 **/
    WAITCONFIRM {public String getName(){return "待審覈";}},
    /** 等待付款 **/
    WAITPAYMENT {public String getName(){return "等待付款";}},
    /** 正在配貨 **/
    ADMEASUREPRODUCT {public String getName(){return "正在配貨";}},
    /** 等待發貨 **/
    WAITDELIVER {public String getName(){return "等待發貨";}},
    /** 已發貨 **/
    DELIVERED {public String getName(){return "已發貨";}},
    /** 已收貨 **/
    RECEIVED {public String getName(){return "已收貨";}};
   
    public abstract String getName();
}

 

---------------------------------------------------------------

 

/**
 * 支付方式
 */
public enum PaymentWay {
 /* 網上支付 */
 NET{ public String getName(){return "網上支付";}},
 /* 貨到付款 */
 COD{ public String getName(){return "貨到付款";}},
 /* 銀行電匯 */
 BANKREMITTANCE{ public String getName(){return "銀行電匯";}},
 /* 郵局匯款 */
 POSTOFFICEREMITTANCE{ public String getName(){return "郵局匯款";}};
 public abstract String getName();
}

 

 

--------------------------------------------------------------

 

/**
 * 訂單聯繫信息
 */
@Entity
public class OrderContactInfo {
 private Integer contactid;
 /* 購買人姓名 */
 private String buyerName;
 /* 聯繫地址 */
 private String address;
 /* 電子郵箱 */
 private String email;
 /* 郵編 */
 private String postalcode;
 /* 座機 */
 private String tel;
 /* 手機 */
 private String mobile;
 /* 性別 */
 private Gender gender = Gender.MAN;
 
 private Order order;
 
 @OneToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},mappedBy="orderContactInfo")
 public Order getOrder() {
  return order;
 }
 public void setOrder(Order order) {
  this.order = order;
 }
 @Id @GeneratedValue
 public Integer getContactid() {
  return contactid;
 }
 public void setContactid(Integer contactid) {
  this.contactid = contactid;
 }
 @Column(length=10,nullable=false)
 public String getBuyerName() {
  return buyerName;
 }
 public void setBuyerName(String buyerName) {
  this.buyerName = buyerName;
 }
 @Column(length=50,nullable=false)
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 @Column(length=40)
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 @Column(length=6)
 public String getPostalcode() {
  return postalcode;
 }
 public void setPostalcode(String postalcode) {
  this.postalcode = postalcode;
 }
 @Column(length=18)
 public String getTel() {
  return tel;
 }
 public void setTel(String tel) {
  this.tel = tel;
 }
 @Column(length=11)
 public String getMobile() {
  return mobile;
 }
 public void setMobile(String mobile) {
  this.mobile = mobile;
 }
 @Enumerated(EnumType.STRING) @Column(length=5,nullable=false)
 public Gender getGender() {
  return gender;
 }
 public void setGender(Gender gender) {
  this.gender = gender;
 }
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result
    + ((contactid == null) ? 0 : contactid.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final OrderContactInfo other = (OrderContactInfo) obj;
  if (contactid == null) {
   if (other.contactid != null)
    return false;
  } else if (!contactid.equals(other.contactid))
   return false;
  return true;
 }

}

 

 

--------------------------------------------------------------

 

/**
 * 訂單
 */
@Entity @Table(name="orders")
public class Order {
 /* 訂單號 */
 private String orderid;
 /* 所屬用戶 */
 private Buyer buyer;
 /* 訂單創建時間 */
 private Date createDate = new Date();
 /* 訂單狀態 */
 private OrderState state;
 /* 商品總金額 */
 private Float productTotalPrice = 0f;
 /* 配送費 */
 private Float deliverFee = 0f;
 /* 訂單總金額 */
 private Float totalPrice= 0f;
 /* 應付款(實際需要支付的費用) */
 private Float payablefee = 0f;
 /* 顧客附言 */
 private String note;
 /* 支付方式 */
 private PaymentWay paymentWay;
 /* 支付狀態 */
    private Boolean paymentstate = false;
    /* 訂單配送信息 */
 private OrderDeliverInfo orderDeliverInfo;
 /* 訂單購買者聯繫信息 */
 private OrderContactInfo orderContactInfo;
 /* 訂單項 */
 private Set<OrderItem> items = new HashSet<OrderItem>();
 /* 加鎖,如果值爲null代表訂單未加鎖,否則代表加鎖 */
 private String lockuser;
 /* 客服留言 */
 private Set<Message> msgs = new HashSet<Message>();
 
 @OneToMany(mappedBy="order", cascade=CascadeType.REMOVE)
 public Set<Message> getMsgs() {
  return msgs;
 }
 public void setMsgs(Set<Message> msgs) {
  this.msgs = msgs;
 }
 @Column(length=20)
 public String getLockuser() {
  return lockuser;
 }
 public void setLockuser(String lockuser) {
  this.lockuser = lockuser;
 }
 @Id @Column(length=16)
 public String getOrderid() {
  return orderid;
 }
 public void setOrderid(String orderid) {
  this.orderid = orderid;
 }
 
 @ManyToOne(cascade=CascadeType.REFRESH,optional=false)
 @JoinColumn(name="username")
 public Buyer getBuyer() {
  return buyer;
 }
 public void setBuyer(Buyer buyer) {
  this.buyer = buyer;
 }
 @Temporal(TemporalType.TIMESTAMP) @Column(nullable=false)
 public Date getCreateDate() {
  return createDate;
 }
 public void setCreateDate(Date createDate) {
  this.createDate = createDate;
 }
 @Enumerated(EnumType.STRING) @Column(length=16, nullable=false)
 public OrderState getState() {
  return state;
 }
 public void setState(OrderState state) {
  this.state = state;
 }
 @Column(nullable=false)
 public Float getProductTotalPrice() {
  return productTotalPrice;
 }
 public void setProductTotalPrice(Float productTotalPrice) {
  this.productTotalPrice = productTotalPrice;
 }
 @Column(nullable=false)
 public Float getDeliverFee() {
  return deliverFee;
 }
 public void setDeliverFee(Float deliverFee) {
  this.deliverFee = deliverFee;
 }
 @Column(nullable=false)
 public Float getTotalPrice() {
  return totalPrice;
 }
 public void setTotalPrice(Float totalPrice) {
  this.totalPrice = totalPrice;
 }
 @Column(nullable=false)
 public Float getPayablefee() {
  return payablefee;
 }
 public void setPayablefee(Float payablefee) {
  this.payablefee = payablefee;
 }
 @Column(length=100)
 public String getNote() {
  return note;
 }
 public void setNote(String note) {
  this.note = note;
 }
 @Enumerated(EnumType.STRING) @Column(nullable=false, length=20)
 public PaymentWay getPaymentWay() {
  return paymentWay;
 }
 public void setPaymentWay(PaymentWay paymentWay) {
  this.paymentWay = paymentWay;
 }
 @Column(nullable=false)
 public Boolean getPaymentstate() {
  return paymentstate;
 }
 public void setPaymentstate(Boolean paymentstate) {
  this.paymentstate = paymentstate;
 }
 @OneToOne(cascade=CascadeType.ALL)
 @JoinColumn(name="deliver_id")
 public OrderDeliverInfo getOrderDeliverInfo() {
  return orderDeliverInfo;
 }
 public void setOrderDeliverInfo(OrderDeliverInfo orderDeliverInfo) {
  this.orderDeliverInfo = orderDeliverInfo;
 }
 @OneToOne(cascade=CascadeType.ALL,optional=false)
 @JoinColumn(name="contact_id")
 public OrderContactInfo getOrderContactInfo() {
  return orderContactInfo;
 }
 public void setOrderContactInfo(OrderContactInfo orderContactInfo) {
  this.orderContactInfo = orderContactInfo;
 }
 @OneToMany(mappedBy="order", cascade=CascadeType.ALL)
 public Set<OrderItem> getItems() {
  return items;
 }
 public void setItems(Set<OrderItem> items) {
  this.items = items;
 }
 
 public void addOrderItem(OrderItem item){
  this.items.add(item);
  item.setOrder(this);
 }
 
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + ((orderid == null) ? 0 : orderid.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final Order other = (Order) obj;
  if (orderid == null) {
   if (other.orderid != null)
    return false;
  } else if (!orderid.equals(other.orderid))
   return false;
  return true;
 }
 
}

 

 

--------------------------------------------------------------------------------

 

 

@Entity
public class Message {
 private Integer id;
 private String content;
 private Date createtime = new Date();
 private Order order;
 private String username;
 
 @Column(length=20, nullable=false)
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 @Id @GeneratedValue
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 @Column(length=100,nullable=false)
 public String getContent() {
  return content;
 }
 public void setContent(String content) {
  this.content = content;
 }
 @Temporal(TemporalType.TIMESTAMP) @Column(nullable=false)
 public Date getCreatetime() {
  return createtime;
 }
 public void setCreatetime(Date createtime) {
  this.createtime = createtime;
 }
 @ManyToOne(cascade=CascadeType.REFRESH, optional=false)
 @JoinColumn(name="order_id")
 public Order getOrder() {
  return order;
 }
 public void setOrder(Order order) {
  this.order = order;
 }
 @Override
 public int hashCode() {
  final int prime = 31;
  int result = 1;
  result = prime * result + ((id == null) ? 0 : id.hashCode());
  return result;
 }
 @Override
 public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  final Message other = (Message) obj;
  if (id == null) {
   if (other.id != null)
    return false;
  } else if (!id.equals(other.id))
   return false;
  return true;
 }
 
}

 

---------------------------------------------------------

 

/**
 * 配送方式
 */
public enum DeliverWay {
 /* 平郵 */
 GENERALPOST{ public String getName(){return "平郵";}},
 /* 快遞送貨上門 */
 EXPRESSDELIVERY{ public String getName(){return "快遞送貨上門";} },
 /* 加急快遞送貨上門 */
 EXIGENCEEXPRESSDELIVERY{ public String getName(){return "加急快遞送貨上門";} },
 /* 國內特快專遞EMS */
 EMS{public String getName(){return "國內特快專遞EMS";}};
 public abstract String getName();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章