购物网站3:订单实体类设计----配送方式--留言--订单--订单联系方式--订单配送信息--订单项--订单状态--支付方式

来源:互联网 发布:淘宝客类目佣金设置 编辑:程序博客网 时间:2024/04/29 10:08

 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();
}

原创粉丝点击