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