Activity.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. package com.uas.service.donate.model;
  2. import org.hibernate.engine.internal.Cascade;
  3. import javax.persistence.*;
  4. import java.io.Serializable;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Calendar;
  7. import java.util.Date;
  8. import java.util.List;
  9. @Entity
  10. @Table(name="donate$activity")
  11. public class Activity implements Serializable{
  12. private static final long serialVersionUID = 1L;
  13. private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");
  14. @Id
  15. @GeneratedValue(strategy= GenerationType.IDENTITY)
  16. @Column(name="act_id")
  17. private Long id;
  18. /**
  19. * 活动编号
  20. */
  21. @Column(name = "act_code")
  22. private String code;
  23. /**
  24. * 活动名
  25. */
  26. @Column(name="act_name")
  27. private String name;
  28. /**
  29. * 活动简介
  30. */
  31. @Column(name="act_summary")
  32. private String summary;
  33. /**
  34. * 开始时间
  35. */
  36. @Column(name="act_start_time", nullable = false)
  37. private Date startTime;
  38. /**
  39. * 结束时间
  40. */
  41. @Column(name="act_end_time", nullable = false)
  42. private Date endTime;
  43. /**
  44. * 开奖日期
  45. */
  46. @Column(name="act_lucky_time", nullable = false)
  47. private Date luckyTime;
  48. /**
  49. * 兑奖开始时间
  50. */
  51. @Column(name="act_receive_start", nullable = false)
  52. private Date receiveStartTime;
  53. /**
  54. * 兑奖结束时间
  55. */
  56. @Column(name="act_receive_end", nullable = false)
  57. private Date receiveEndTime;
  58. /**
  59. * 活动提交人
  60. * @return
  61. */
  62. @Column(name="act_person")
  63. private String person;
  64. /**
  65. * 活动提交时间
  66. * @return
  67. */
  68. @Column(name = "act_submit")
  69. private Date submitTime;
  70. /**
  71. * publish 1:已保存 2:已提交
  72. */
  73. @Column(name="act_publish")
  74. private Integer publish;
  75. /**
  76. * 活动优先级
  77. */
  78. @Column(name="act_priority")
  79. private Integer priority;
  80. /**
  81. * 活动所处阶段(前台显示)(0进行中,1待开奖,2待兑奖-显示兑奖截止日期,3已结束)
  82. */
  83. @Transient
  84. private Short stage;
  85. /**
  86. * 活动中奖人数
  87. * @return
  88. */
  89. @Column(name="act_lucky_person")
  90. private Integer luckyPerson;
  91. /**
  92. * 活动领奖人数
  93. */
  94. @Column(name = "act_receive_person")
  95. private Integer receivePerson;
  96. /**
  97. * 已筹集善款
  98. * @return
  99. */
  100. @Column(name="act_amount")
  101. private Long amount;
  102. /**
  103. * 相关项目数
  104. */
  105. @Column(name = "act_connect_project")
  106. private Integer sumconnect;
  107. /**
  108. * 活动中奖概率
  109. * @return
  110. */
  111. @Column(name = "act_chance")
  112. private Double chance;
  113. /**
  114. * 活动缩略图
  115. * @return
  116. */
  117. @Column(name = "act_img")
  118. private String actImg;
  119. /**
  120. * 活动参与人数
  121. * @return
  122. */
  123. @Column(name = "act_joinAmount")
  124. private Long joinAmount;
  125. @OneToMany(cascade = CascadeType.REFRESH)
  126. private List<Award> awards;
  127. @OneToMany(cascade = CascadeType.REFRESH)
  128. private List<ProjectQualification> projectQualificationList;
  129. public Long getId() {
  130. return id;
  131. }
  132. public void setId(Long id) {
  133. this.id = id;
  134. }
  135. public String getCode() {
  136. Date date=new Date();
  137. return date!=null?sdf.format(date):null;
  138. }
  139. public void setCode(String code) {
  140. this.code = code;
  141. }
  142. public String getName() {
  143. return name;
  144. }
  145. public void setName(String name) {
  146. this.name = name;
  147. }
  148. public String getSummary() {
  149. return summary;
  150. }
  151. public void setSummary(String summary) {
  152. this.summary = summary;
  153. }
  154. public String getStartTime() {
  155. Date date=this.startTime;
  156. return date!=null?sdf.format(this.startTime):null;
  157. }
  158. public void setStartTime(Date startTime) {
  159. this.startTime = startTime;
  160. }
  161. public String getEndTime() {
  162. Date date=this.endTime;
  163. return date!=null?sdf.format(this.endTime):null;
  164. }
  165. public void setEndTime(Date endTime) {
  166. this.endTime = endTime;
  167. }
  168. public String getLuckyTime() {
  169. Date date=this.luckyTime;
  170. return date!=null?sdf.format(this.luckyTime):null;
  171. }
  172. public void setLuckyTime(Date luckyTime) {
  173. this.luckyTime = luckyTime;
  174. }
  175. public String getReceiveEndTime() {
  176. Date date=this.receiveEndTime;
  177. return date!=null?sdf.format(this.receiveEndTime):null;
  178. }
  179. public void setReceiveEndTime(Date receiveEndTime) {
  180. this.receiveEndTime = receiveEndTime;
  181. }
  182. public String getPerson() {
  183. return person;
  184. }
  185. public void setPerson(String person) {
  186. this.person = person;
  187. }
  188. public String getSubmitTime() {
  189. Date date=this.submitTime;
  190. return date!=null?sdf.format(this.submitTime):null;
  191. }
  192. public void setSubmitTime(Date submitTime) {
  193. this.submitTime = submitTime;
  194. }
  195. public Integer getPublish() {
  196. return publish;
  197. }
  198. public void setPublish(Integer publish) {
  199. this.publish = publish;
  200. }
  201. public Integer getPriority() {
  202. return priority;
  203. }
  204. public void setPriority(Integer priority) {
  205. this.priority = priority;
  206. }
  207. public Integer getLuckyPerson() {
  208. return luckyPerson;
  209. }
  210. public void setLuckyPerson(Integer luckyPerson) {
  211. this.luckyPerson = luckyPerson;
  212. }
  213. public Integer getReceivePerson() {
  214. return receivePerson;
  215. }
  216. public void setReceivePerson(Integer receivePerson) {
  217. this.receivePerson = receivePerson;
  218. }
  219. public Long getAmount() {
  220. return amount;
  221. }
  222. public void setAmount(Long amount) {
  223. this.amount = amount;
  224. }
  225. public Integer getSumconnect() {
  226. return sumconnect;
  227. }
  228. public void setSumconnect(Integer sumconnect) {
  229. this.sumconnect = sumconnect;
  230. }
  231. public Double getChance() {
  232. return chance;
  233. }
  234. public void setChance(Double chance) {
  235. this.chance = chance;
  236. }
  237. public String getActImg() {
  238. return actImg;
  239. }
  240. public void setActImg(String actImg) {
  241. this.actImg = actImg;
  242. }
  243. public Long getJoinAmount() {
  244. return joinAmount;
  245. }
  246. public void setJoinAmount(Long joinAmount) {
  247. this.joinAmount = joinAmount;
  248. }
  249. @SuppressWarnings("deprecation")
  250. public Short getStage() {
  251. if (null == endTime || null == luckyTime || null == receiveStartTime || null == receiveEndTime) {
  252. return 0;
  253. }
  254. Date date = new Date();
  255. Calendar now = Calendar.getInstance();
  256. now.set(Calendar.YEAR, date.getYear());
  257. now.set(Calendar.MONTH, date.getMonth());
  258. now.set(Calendar.DAY_OF_MONTH, date.getDate());
  259. // 活动结束时间
  260. Calendar end = Calendar.getInstance();
  261. end.set(Calendar.YEAR, endTime.getYear());
  262. end.set(Calendar.MONTH, endTime.getMonth());
  263. end.set(Calendar.DAY_OF_MONTH, endTime.getDate());
  264. // 开奖时间
  265. Calendar opening = Calendar.getInstance();
  266. opening.set(Calendar.YEAR, luckyTime.getYear());
  267. opening.set(Calendar.MONTH, luckyTime.getMonth());
  268. opening.set(Calendar.DAY_OF_MONTH, luckyTime.getDate());
  269. // 开始兑奖时间
  270. Calendar prize = Calendar.getInstance();
  271. prize.set(Calendar.YEAR, receiveStartTime.getYear());
  272. prize.set(Calendar.MONTH, receiveStartTime.getMonth());
  273. prize.set(Calendar.DAY_OF_MONTH, receiveStartTime.getDate());
  274. // 兑奖截止时间
  275. Calendar over = Calendar.getInstance();
  276. over.set(Calendar.YEAR, receiveEndTime.getYear());
  277. over.set(Calendar.MONTH, receiveEndTime.getMonth());
  278. over.set(Calendar.DAY_OF_MONTH, receiveEndTime.getDate());
  279. if (now.compareTo(end) > 0) {
  280. return 3;
  281. } else if (now.compareTo(over) > 0) {
  282. return 0;
  283. } else if (now.compareTo(prize) > 0) {
  284. return 2;
  285. } else if (now.compareTo(opening) > 0) {
  286. return 1;
  287. }
  288. return 0;
  289. }
  290. public void setStage(Short stage) {
  291. this.stage = stage;
  292. }
  293. public Date getReceiveStartTime() {
  294. return receiveStartTime;
  295. }
  296. public void setReceiveStartTime(Date receiveStartTime) {
  297. this.receiveStartTime = receiveStartTime;
  298. }
  299. public List<Award> getAwards() {
  300. return awards;
  301. }
  302. public void setAwards(List<Award> awards) {
  303. this.awards = awards;
  304. }
  305. public List<ProjectQualification> getProjectQualificationList() {
  306. return projectQualificationList;
  307. }
  308. public void setProjectQualificationList(List<ProjectQualification> projectQualificationList) {
  309. this.projectQualificationList = projectQualificationList;
  310. }
  311. }