ソースを参照

活动状态返回修改。

dongbw 8 年 前
コミット
1c15cce755

+ 74 - 16
donate-console/src/main/java/com/uas/console/donate/model/Activity.java

@@ -8,6 +8,7 @@ import com.uas.console.donate.util.CollectionUtils;
 import javax.persistence.*;
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Set;
 
@@ -190,6 +191,12 @@ public class Activity implements Serializable{
     @Transient
     private Double amount;
 
+    /**
+     * 活动所处阶段(前台显示)
+     */
+    @Transient
+    private String stage;
+
     public Long getId() {
         return id;
     }
@@ -316,22 +323,6 @@ public class Activity implements Serializable{
         this.receivePerson = receivePerson;
     }
 
-    public Double getAmount() {
-        Double amount = 0d;
-        if (!CollectionUtils.isEmpty(this.getProjects())) {
-            for (Project project : this.getProjects()) {
-                if (null != project.getTotalAmount()) {
-                    amount += project.getTotalAmount();
-                }
-            }
-        }
-        return amount;
-    }
-
-    public void setAmount(Double amount) {
-        this.amount = amount;
-    }
-
     public Integer getSumconnect() {
         return sumconnect;
     }
@@ -424,4 +415,71 @@ public class Activity implements Serializable{
     public void setProjects(Set<Project> projects) {
         this.projects = projects;
     }
+
+    @SuppressWarnings("deprecation")
+    public String getStage() {
+        if (null == endTime || null == receiveStartTime || null == receiveEndTime) {
+            return "进行中";
+        }
+        Date date = new Date();
+        Calendar now = Calendar.getInstance();
+        now.set(Calendar.YEAR, date.getYear());
+        now.set(Calendar.MONTH, date.getMonth());
+        now.set(Calendar.DAY_OF_MONTH, date.getDate());
+        // 活动结束时间
+        Calendar end = Calendar.getInstance();
+        end.set(Calendar.YEAR, endTime.getYear());
+        end.set(Calendar.MONTH, endTime.getMonth());
+        end.set(Calendar.DAY_OF_MONTH, endTime.getDate());
+        // 开奖时间
+        Calendar opening = Calendar.getInstance();
+        if (luckyTime != null) {
+            opening.set(Calendar.YEAR, luckyTime.getYear());
+            opening.set(Calendar.MONTH, luckyTime.getMonth());
+            opening.set(Calendar.DAY_OF_MONTH, luckyTime.getDate());
+        }
+        // 开始兑奖时间
+        Calendar prize = Calendar.getInstance();
+        prize.set(Calendar.YEAR, receiveStartTime.getYear());
+        prize.set(Calendar.MONTH, receiveStartTime.getMonth());
+        prize.set(Calendar.DAY_OF_MONTH, receiveStartTime.getDate());
+        // 兑奖截止时间
+        Calendar over = Calendar.getInstance();
+        over.set(Calendar.YEAR, receiveEndTime.getYear());
+        over.set(Calendar.MONTH, receiveEndTime.getMonth());
+        over.set(Calendar.DAY_OF_MONTH, receiveEndTime.getDate());
+        if (now.compareTo(end) > 0) {
+            return "已结束";
+        } else if (now.compareTo(over) > 0) {
+            return "进行中";
+        } else if (now.compareTo(prize) > 0) {
+            return "兑奖中";
+        } else if (null != luckyTime && now.compareTo(opening) > 0) {
+            return "待开奖";
+        }
+        return "进行中";
+    }
+
+    public void setStage(String stage) {
+        this.stage = stage;
+    }
+
+    public Double getAmount() {
+        if (null != amount) {
+            return amount;
+        }
+        Double totalAmount = 0d;
+        if (!CollectionUtils.isEmpty(this.getProjects())) {
+            for (Project project : this.getProjects()) {
+                if (null != project.getTotalAmount()) {
+                    totalAmount += project.getTotalAmount();
+                }
+            }
+        }
+        return totalAmount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
 }

+ 7 - 5
donate-service/src/main/java/com/uas/service/donate/model/Activity.java

@@ -416,7 +416,7 @@ public class Activity implements Serializable{
 
     @SuppressWarnings("deprecation")
     public String getStage() {
-        if (null == endTime || null == luckyTime || null == receiveStartTime || null == receiveEndTime) {
+        if (null == endTime || null == receiveStartTime || null == receiveEndTime) {
             return "进行中";
         }
         Date date = new Date();
@@ -431,9 +431,11 @@ public class Activity implements Serializable{
         end.set(Calendar.DAY_OF_MONTH, endTime.getDate());
         // 开奖时间
         Calendar opening = Calendar.getInstance();
-        opening.set(Calendar.YEAR, luckyTime.getYear());
-        opening.set(Calendar.MONTH, luckyTime.getMonth());
-        opening.set(Calendar.DAY_OF_MONTH, luckyTime.getDate());
+        if (luckyTime != null) {
+            opening.set(Calendar.YEAR, luckyTime.getYear());
+            opening.set(Calendar.MONTH, luckyTime.getMonth());
+            opening.set(Calendar.DAY_OF_MONTH, luckyTime.getDate());
+        }
         // 开始兑奖时间
         Calendar prize = Calendar.getInstance();
         prize.set(Calendar.YEAR, receiveStartTime.getYear());
@@ -450,7 +452,7 @@ public class Activity implements Serializable{
             return "进行中";
         } else if (now.compareTo(prize) > 0) {
             return "兑奖中";
-        } else if (now.compareTo(opening) > 0) {
+        } else if (null != luckyTime && now.compareTo(opening) > 0) {
             return "待开奖";
         }
         return "进行中";