package com.uas.console.donate.model; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.uas.console.donate.util.CollectionUtils; import javax.persistence.*; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Set; @Entity @Table(name="donate$activity") public class Activity implements Serializable{ private static final long serialVersionUID = 1L; private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column(name="act_id") private Long id; /** * 活动编号 */ @Column(name = "act_code") private String code; /** * 活动名 */ @Column(name="act_name") private String name; /** * 活动简介 */ @Column(name="act_summary") private String summary; /** * 开始时间 */ @Column(name="act_start_time") private Date startTime; /** * 结束时间 */ @Column(name="act_end_time") private Date endTime; /** * 开奖日期 */ @Column(name="act_lucky_time") private Date luckyTime; /** * 兑奖开始时间 */ @Column(name="act_receive_start") private Date receiveStartTime; /** * 兑奖结束时间 */ @Column(name="act_receive_end") private Date receiveEndTime; /** * 活动提交人UU * @return */ @Column(name="act_useruu") private Long userUU; /** * 活动提交人 * @return */ @Column(name="act_person") private String person; /** * 活动提交时间 * @return */ @Column(name = "act_submit") private Date submitTime; /** * 是否发布,1:草稿 2:发布 */ @Column(name="act_publish") private Integer publish; /** * 活动优先级 */ @Column(name="act_priority") private Integer priority; /** * 活动参加人数 * @return */ @Column(name="act_joined_person") private Integer joinedPerson; /** * 活动中奖人数 * @return */ @Column(name="act_lucky_person") private Integer luckyPerson; /** * 活动领奖人数 */ @Column(name = "act_receive_person") private Integer receivePerson; /** * 已筹集善款 * @return */ @Column(name="act_amount") private Double amount; /** * 相关项目数 */ @Column(name = "act_connect_project") private Integer sumconnect; /** * 活动中奖概率 * @return */ @Column(name = "act_chance") private Double chance; /** * 活动缩略图 * @return */ @Column(name = "act_img") private String actImg; /** * 活动背景 * @return */ @Column(name = "act_banner") private String banner; /** * 参与记录 * @return */ @OneToMany(mappedBy = "activity", cascade = CascadeType.REFRESH, fetch = FetchType.EAGER) @OrderBy("id") private Set activityRecords; /** * 奖品 * @return */ @OneToMany(mappedBy = "activity", cascade = {CascadeType.REFRESH, CascadeType.PERSIST}, fetch = FetchType.EAGER) @OrderBy("awardLevel") private Set awards; /** * 关联项目 * @return */ @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH}) @JoinTable(name = "donate$activityproject", joinColumns = @JoinColumn(name = "act_id", referencedColumnName = "act_id"), inverseJoinColumns = @JoinColumn(name="pro_id", referencedColumnName = "pro_id")) private Set projects; /** * 奖品总数 */ @Transient private Integer awardAmount; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getStartTime() { Date date=this.startTime; return date!=null?sdf.format(this.startTime):null; } public void setStartTime(Date startTime) { this.startTime = startTime; } public String getEndTime() { Date date=this.endTime; return date!=null?sdf.format(this.endTime):null; } public void setEndTime(Date endTime) { this.endTime = endTime; } public String getLuckyTime() { Date date=this.luckyTime; return date!=null?sdf.format(this.luckyTime):null; } public void setLuckyTime(Date luckyTime) { this.luckyTime = luckyTime; } public String getReceiveStartTime() { Date date=this.receiveStartTime; return date!=null?sdf.format(this.receiveStartTime):null; } public void setReceiveStartTime(Date receiveStartTime) { this.receiveStartTime = receiveStartTime; } public String getReceiveEndTime() { Date date=this.receiveEndTime; return date!=null?sdf.format(this.receiveEndTime):null; } public void setReceiveEndTime(Date receiveEndTime) { this.receiveEndTime = receiveEndTime; } public String getPerson() { return person; } public void setPerson(String person) { this.person = person; } public String getSubmitTime() { Date date=this.submitTime; return date!=null?sdf.format(this.submitTime):null; } public void setSubmitTime(Date submitTime) { this.submitTime = submitTime; } public Integer getPublish() { return publish; } public void setPublish(Integer publish) { this.publish = publish; } public Integer getPriority() { return priority; } public void setPriority(Integer priority) { this.priority = priority; } public Integer getLuckyPerson() { return luckyPerson; } public void setLuckyPerson(Integer luckyPerson) { this.luckyPerson = luckyPerson; } public Integer getReceivePerson() { return receivePerson; } public void setReceivePerson(Integer receivePerson) { this.receivePerson = receivePerson; } public Double getAmount() { return amount; } public void setAmount(Double amount) { this.amount = amount; } public Integer getSumconnect() { return sumconnect; } public void setSumconnect(Integer sumconnect) { this.sumconnect = sumconnect; } public Double getChance() { return chance; } public void setChance(Double chance) { this.chance = chance; } public String getActImg() { return actImg; } public void setActImg(String actImg) { this.actImg = actImg; } public Integer getJoinedPerson() { return joinedPerson; } public void setJoinedPerson(Integer joinedPerson) { this.joinedPerson = joinedPerson; } public Long getUserUU() { return userUU; } public void setUserUU(Long userUU) { this.userUU = userUU; } public Integer getAwardAmount() { Integer amount = 0; if (!CollectionUtils.isEmpty(this.getAwards())) { for (Award award : this.getAwards()) { amount += award.getAmount(); } } return amount; } public void setAwardAmount(Integer awardAmount) { this.awardAmount = awardAmount; } @JsonIgnore @JSONField(serialize = false) public Set getActivityRecords() { return activityRecords; } public void setActivityRecords(Set activityRecords) { this.activityRecords = activityRecords; } public String getBanner() { return banner; } public void setBanner(String banner) { this.banner = banner; } public Set getAwards() { return awards; } public void setAwards(Set awards) { this.awards = awards; } public Set getProjects() { return projects; } public void setProjects(Set projects) { this.projects = projects; } }