package cn.newgxu.bbs.domain.bank; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; 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.ManyToOne; import javax.persistence.Table; import cn.newgxu.bbs.common.Pagination; import cn.newgxu.bbs.domain.user.User; import cn.newgxu.jpamodel.JPAEntity; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * BankOperateLog generated by MyEclipse - Hibernate Tools */ @Entity @Table(name = "bank_operate_log") public class OperateLog extends JPAEntity { private static final long serialVersionUID = 1564591583876304876L; @Id @Column(name = "id") // @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="id_seq") // @SequenceGenerator(name="id_seq", sequenceName="seq_bank_operate_log") @GeneratedValue(strategy = GenerationType.IDENTITY) private int id = -1; @ManyToOne(cascade = { CascadeType.REFRESH }, fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; private int money; @Column(name = "rate", precision = 4) private float rate; private int days; private String info; @Column(name = "op_time") private Date time; @Column(name = "op_type") private Byte type; @ManyToOne(cascade = { CascadeType.REFRESH }, fetch = FetchType.LAZY) @JoinColumn(name = "receiver") private User receiver; // Constructors public static OperateLog get(int id) throws ObjectNotFoundException { return (OperateLog) getById(OperateLog.class, id); } @SuppressWarnings("unchecked") public static List<OperateLog> getByUser(User user, Byte type, Pagination p) { try { p .setRecordSize(((Long) SQ( "select count(*) from OperateLog o where user = ?1 and type = ?2", P(1, user), P(2, type))).intValue()); } catch (ObjectNotFoundException e) { p.setRecordSize(0); } return (List<OperateLog>) Q( "from OperateLog o where user = ?1 and type = ?2 order by id desc", P(1, user), P(2, type), p).getResultList(); } /** * 保存操作日志。 * * @param user * 用户。 * @param money * 金额。 * @param rate * 利率。 * @param days * 天数。 * @param info * 摘要。 * @param time * 时间。 * @param type * 操作类型。 * @param reciever * 受款人 */ public static void saveOperateLog(User user, int money, float rate, int days, String info, Date time, Byte type, User receiver) { OperateLog oplog = new OperateLog(); oplog.setUser(user); oplog.setMoney(money); oplog.setRate(rate); oplog.setDays(days); oplog.setInfo(info); oplog.setTime(time); oplog.setType(type); oplog.setReceiver(receiver); oplog.save(); } // Property accessors public int getId() { return this.id; } public void setId(int id) { this.id = id; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public int getMoney() { return this.money; } public void setMoney(int money) { this.money = money; } public float getRate() { return this.rate; } public void setRate(float rate) { this.rate = rate; } public int getDays() { return this.days; } public void setDays(int days) { this.days = days; } public String getInfo() { return this.info; } public void setInfo(String info) { this.info = info; } public Date getTime() { return this.time; } public void setTime(Date time) { this.time = time; } public Byte getType() { return this.type; } public void setType(Byte type) { this.type = type; } public User getReceiver() { return receiver; } public void setReceiver(User receiver) { this.receiver = receiver; } // ------------------------------------------------ @SuppressWarnings("serial") @Override public String toString() { return "OperateLog" + new LinkedHashMap<String, Object>() { { put("id", id); put("user", user); put("rate", rate); put("days", days); put("info", info); put("time", time); put("type", type); } }.toString(); } }