Browse Source

app获取活动列表数据结构修改

dongbw 8 years ago
parent
commit
ea3e5fae04

+ 11 - 3
donate-console/src/main/java/com/uas/console/donate/model/Activity.java

@@ -12,17 +12,23 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Set;
 
+/**
+ * 活动表
+ */
+
 @Entity
-@Table(name="donate$activity")
+@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
+     */
     @Id
     @GeneratedValue(strategy= GenerationType.IDENTITY)
-    @Column(name="act_id")
+    @Column(name= "act_id")
     private  Long id;
 
     /**
@@ -408,6 +414,8 @@ public class Activity implements Serializable{
         this.awards = awards;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public Set<Project> getProjects() {
         return projects;
     }

+ 14 - 1
donate-service/src/main/java/com/uas/service/donate/controller/ActivityController.java

@@ -3,6 +3,7 @@ package com.uas.service.donate.controller;
 import com.alibaba.fastjson.JSON;
 import com.uas.service.donate.model.Activity;
 import com.uas.service.donate.model.ActivityRecode;
+import com.uas.service.donate.model.Project;
 import com.uas.service.donate.service.ActivityService;
 import com.uas.service.donate.service.AwardService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,13 +44,25 @@ public class ActivityController {
 
     /**
      * 展示某具体活动
+     * @param id  活动id
      */
     @ResponseBody
-    @RequestMapping(value = "/detail/{id}",method = RequestMethod.GET)
+    @RequestMapping(value = "/detail/{id}", method = RequestMethod.GET)
     public Activity findById(@PathVariable("id") Long id){
         return activityService.fingById(id);
     }
 
+    /**
+     * 获取活动关联的项目列表
+     * @param id  活动id
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/getRelatedProjects/{id}", method = RequestMethod.GET)
+    public List<Project> getRelatedProjects(@PathVariable("id") Long id){
+        return activityService.getRelatedProjects(id);
+    }
+
     /**
      *  搜索出所有正在进行的活动
      */

+ 6 - 0
donate-service/src/main/java/com/uas/service/donate/controller/AppController.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -87,6 +88,7 @@ public class AppController {
     public ModelMap returnActivities(@RequestParam(value="status",defaultValue = "全部")String status,
                                      @RequestParam(value = "keyWork",defaultValue = "")String keyWork){
         ModelMap modelMap=new ModelMap();
+        Date before = new Date();
         if("全部".equals(status)){
             List<Activity> activityList=activityService.findAll();
             modelMap.put("activityList",activityList);
@@ -98,6 +100,10 @@ public class AppController {
             List<Activity> activityList=activityService.search(keyWork);
             modelMap.put("activityList",activityList);
         }
+        Date after = new Date();
+        System.out.println("before " + before.getTime());
+        System.out.println("after " + after.getTime());
+        System.out.println("after-before: " + (after.getTime() - before.getTime()));
         return modelMap;
     }
 

+ 52 - 0
donate-service/src/main/java/com/uas/service/donate/event/PublishEvent.java

@@ -0,0 +1,52 @@
+package com.uas.service.donate.event;
+
+import org.springframework.context.ApplicationEvent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 新增消息事件*
+ * @param <S>
+ *            生成的消息记录
+ * @param <T>
+ *            原单据
+ * @author yingp
+ * 
+ */
+public abstract class PublishEvent<S, T> extends ApplicationEvent {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private List<T> savedList;
+
+	public PublishEvent(List<T> savedList) {
+		super(savedList);
+		this.savedList = savedList;
+	}
+
+	/**
+	 *
+	 *
+	 * @return
+	 */
+	public final List<S> release() {
+		List<S> releaseList = new ArrayList<S>();
+		for (T saved : savedList)
+			releaseList.add(release(saved));
+		return releaseList;
+	}
+
+	/**
+	 * 生成对应消息记录
+	 * 
+	 * @param saved
+	 * @return
+	 */
+	public abstract S release(T saved);
+
+}

+ 6 - 0
donate-service/src/main/java/com/uas/service/donate/model/Activity.java

@@ -12,6 +12,10 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Set;
 
+/**
+ * 活动表
+ */
+
 @Entity
 @Table(name="donate$activity")
 public class Activity implements Serializable{
@@ -406,6 +410,8 @@ public class Activity implements Serializable{
         this.awards = awards;
     }
 
+    @JsonIgnore
+    @JSONField(serialize = false)
     public Set<Project> getProjects() {
         return projects;
     }

+ 8 - 0
donate-service/src/main/java/com/uas/service/donate/service/ActivityService.java

@@ -2,6 +2,7 @@ package com.uas.service.donate.service;
 
 import com.uas.service.donate.model.Activity;
 import com.uas.service.donate.model.ActivityRecode;
+import com.uas.service.donate.model.Project;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.ui.ModelMap;
@@ -42,4 +43,11 @@ public interface ActivityService {
     ActivityRecode getActivityRecord(Long id);
 
     ModelMap takeAward(ActivityRecode record);
+
+    /**
+     * 获取当前活动关联的项目
+     * @param id  活动id
+     * @return
+     */
+    List<Project> getRelatedProjects(Long id);
 }

+ 17 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/ActivityServiceImpl.java

@@ -6,6 +6,7 @@ import com.uas.service.donate.dao.ActivityRecodeDao;
 import com.uas.service.donate.dao.AwardDao;
 import com.uas.service.donate.model.Activity;
 import com.uas.service.donate.model.ActivityRecode;
+import com.uas.service.donate.model.Project;
 import com.uas.service.donate.service.ActivityService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -13,6 +14,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -114,4 +116,19 @@ public class ActivityServiceImpl implements ActivityService {
         return map;
     }
 
+    /**
+     * 获取当前活动关联的项目
+     *
+     * @param id 活动id
+     * @return
+     */
+    @Override
+    public List<Project> getRelatedProjects(Long id) {
+        List<Project> projects = new ArrayList<>();
+        Activity activity = activityDao.findOne(id);
+        if (null != activity) {
+            projects.addAll(activity.getProjects());
+        }
+        return projects;
+    }
 }

+ 7 - 0
donate-service/src/main/webapp/resources/js/activity/controllers/ActivityDetailCtrl.js

@@ -13,6 +13,13 @@ define([ 'app/app' ], function(app) {
             }, function (error) {
                 console.log(error);
             });
+
+            // 获取活动关联的项目
+            Activity.getRelatedProjects({id: id}, {}, function(data) {
+                $scope.projects = data;
+            }, function (error) {
+                console.log(error);
+            });
         };
         init();
 

+ 9 - 0
donate-service/src/main/webapp/resources/js/common/query/Activity.js

@@ -21,6 +21,15 @@ define ([ 'ngResource' ], function() {
                     id: 'id'
                 }
             },
+            // 获取当前活动关联的项目
+            getRelatedProjects : {
+                url: 'activity/getRelatedProjects/:id',
+                method: 'GET',
+                params: {
+                    id: 'id'
+                },
+                isArray: true
+            },
             save: {
                 url: 'activity/save',
                 method: 'POST'

+ 1 - 1
donate-service/src/main/webapp/resources/view/activity/activity_detail.html

@@ -637,7 +637,7 @@
                 </div>
                 <div class="statistic-item">
                     <p class="title">活动项目</p>
-                    <div class="item-list clearfix" ng-repeat="project in activity.projects">
+                    <div class="item-list clearfix" ng-repeat="project in projects | orderBy : '-id'">
                         <div class="img fl">
                             <a href="/project#/detail/{{project.id}}"><img src="{{project.pcImg}}" alt="项目缩略图" title="{{project.name}}"></a>
                         </div>