package cn.newgxu.bbs.domain.bank; import java.util.Date; import java.util.LinkedHashMap; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; import cn.newgxu.bbs.domain.user.User; import cn.newgxu.jpamodel.JPAEntity; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * BankAccounts generated by MyEclipse - Hibernate Tools */ @Entity @Table(name = "bank_accounts") public class Accounts extends JPAEntity { private static final long serialVersionUID = 1L; @Id @Column(name = "id") // @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="id_seq") // @SequenceGenerator(name="id_seq", sequenceName="seq_bank_accounts") @GeneratedValue(strategy = GenerationType.IDENTITY) private int id = -1; @OneToOne(cascade = { CascadeType.REFRESH }, fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; // private String password; private int balance; @Column(name = "open_time") private Date openTime; @Column(name = "begin_time") private Date beginTime; // Property accessors public int getId() { return this.id; } public void setId(int id) { this.id = id; } public Date getOpenTime() { return this.openTime; } public void setOpenTime(Date openTime) { this.openTime = openTime; } public int getBalance() { return this.balance; } public void setBalance(int balance) { this.balance = balance; } public Date getBeginTime() { return this.beginTime; } public void setBeginTime(Date beginTime) { this.beginTime = beginTime; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } // -------------------------------------------------- public static Accounts get(int baid) throws ObjectNotFoundException { return (Accounts) getById(Accounts.class, baid); } public static Accounts getByUser(User user) throws ObjectNotFoundException { return (Accounts) SQ("from Accounts ba where ba.user = ?1", P(1, user)); } /** * 帐户存取款。 * * @param money * 操作金额。 */ public void addBalance(int money) { this.balance += money; this.balance = this.balance < 0 ? 0 : this.balance; } /** * 用户帐户balance是否足以支出。 * * @param money金额 * 。 * * @return */ public boolean canPayout(int money) { return this.balance - money >= 0; } /** * 帐户支出。 * * @param money * 操作金额。 */ public void payout(int money) { this.balance -= money; } // ------------------------------------------------ @SuppressWarnings("serial") @Override public String toString() { return "bank_accounts" + new LinkedHashMap<String, Object>() { { put("id", id); put("user", user); put("balance", balance); put("openTime", openTime); put("beginTime", beginTime); } }.toString(); } }