Browse Source

补充机构申请和项目申请审核结果消息事件

dongbw 8 years ago
parent
commit
3320b467f6

+ 68 - 0
donate-console/src/main/java/com/uas/console/donate/event/OrgAuditPublishEvent.java

@@ -0,0 +1,68 @@
+package com.uas.console.donate.event;
+
+
+import com.uas.console.donate.model.Message;
+import com.uas.console.donate.model.MessageDetail;
+import com.uas.console.donate.model.Org;
+
+import java.util.List;
+
+/**
+ * 机构审核事件
+ * Created by dongbw
+ * 2018年1月8日
+ */
+public class OrgAuditPublishEvent extends PublishEvent<MessageDetail, Org> {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private static final short TO_BE_AUDITED = 0;
+
+    private static final short BE_AGREED = 1;
+
+    private static final short BE_REFUSED = 2;
+
+	public OrgAuditPublishEvent(List<Org> savedList) {
+        super(savedList);
+    }
+
+    /**
+     * 生成对应消息记录
+     *
+     * @param org 机构
+     * @return 消息
+     */
+    @Override
+	public MessageDetail release(Org org) {
+        // 发起人UU
+        Long userUU = org.getUuid();
+        // 类型
+        String type = "机构消息";
+        // 来源表
+        String table = "donate$organization";
+        // 来源id
+        Long sourceId = org.getId();
+        // url
+        String url = "/#/organization/list";
+        // 标题
+        String title = "";
+        // 内容
+        String context = "";
+        if (BE_AGREED == org.getStatus()) {
+            title = "机构申请已通过";
+            context = "您申请入驻的机构‘" + org.getName() + "’已通过审核, 编号:" + org.getCode();
+        } else if (BE_REFUSED == org.getStatus()) {
+            title = "机构申请被驳回";
+            context = "您发布的项目‘" + org.getName() + "’已被驳回, 原因:" + org.getRefuse();
+        }
+        // 接收对象
+        String receiver = org.getPerson();
+        Message message = new Message(userUU, title, context, type, table, sourceId, url, receiver);
+        MessageDetail messageDetail = new MessageDetail(org.getUuid());
+        messageDetail.setMessage(message);
+        return messageDetail;
+    }
+}

+ 66 - 0
donate-console/src/main/java/com/uas/console/donate/event/ProjectAuditPublishEvent.java

@@ -0,0 +1,66 @@
+package com.uas.console.donate.event;
+
+
+import com.uas.console.donate.model.*;
+
+import java.util.List;
+
+/**
+ * 项目审核事件
+ * Created by dongbw
+ * 2018年1月8日
+ */
+public class ProjectAuditPublishEvent extends PublishEvent<MessageDetail, Project> {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private static final short TO_BE_AUDITED = 0;
+
+    private static final short BE_AGREED = 1;
+
+    private static final short BE_REFUSED = 2;
+
+	public ProjectAuditPublishEvent(List<Project> savedList) {
+        super(savedList);
+    }
+
+    /**
+     * 生成对应消息记录
+     *
+     * @param project 项目
+     * @return 消息
+     */
+    @Override
+	public MessageDetail release(Project project) {
+        // 发起人UU
+        Long userUU = project.getUserUU();
+        // 类型
+        String type = "项目消息";
+        // 来源表
+        String table = "donate$project";
+        // 来源id
+        Long sourceId = project.getId();
+        // url
+        String url = "/";
+        // 标题
+        String title = "";
+        // 内容
+        String context = "";
+        if (BE_AGREED == project.getStatus()) {
+            title = "项目申请已通过";
+            context = "您发布的项目‘" + project.getName() + "’已通过审核, 编号:" + project.getCode();
+        } else if (BE_REFUSED == project.getStatus()) {
+            title = "项目申请被驳回";
+            context = "您发布的项目‘" + project.getName() + "’已被驳回, 原因:" + project.getRefuse();
+        }
+        // 接收对象
+        String receiver = project.getPersonName();
+        Message message = new Message(userUU, title, context, type, table, sourceId, url, receiver);
+        MessageDetail messageDetail = new MessageDetail(project.getUserUU());
+        messageDetail.setMessage(message);
+        return messageDetail;
+    }
+}

+ 2 - 2
donate-console/src/main/java/com/uas/console/donate/listener/PublishListener.java

@@ -68,8 +68,8 @@ public class PublishListener implements ApplicationListener<PublishEvent<?, ?>>
 		} else if (event instanceof ProjectReportPublishEvent || event instanceof ProjectFinancePublishEvent || event instanceof ProjectConcludePublishEvent) {
 			// 发布消息
 			PublishProjectRelatedUsers(messageDetailList);
-		// 活动中奖
-		} else if (event instanceof GetPrizePublishEvent) {
+		// 活动中奖,机构、项目审核
+		} else if (event instanceof GetPrizePublishEvent || event instanceof OrgAuditPublishEvent || event instanceof  ProjectAuditPublishEvent) {
 			PublishOneUser(messageDetailList);
 		}
 

+ 3 - 6
donate-console/src/main/java/com/uas/console/donate/model/Project.java

@@ -1,9 +1,6 @@
 package com.uas.console.donate.model;
 
 
-import com.alibaba.fastjson.annotation.JSONField;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
 import javax.persistence.*;
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
@@ -77,7 +74,7 @@ public class Project implements Serializable{
     private String district;
 
     /**
-     *筹款目标
+     * 筹款目标
      */
     @Column(name = "pro_target")
     private Long target;
@@ -90,7 +87,7 @@ public class Project implements Serializable{
 
 
     /**
-     *PC端主图
+     * PC端主图
      */
     @Column(name = "pro_pc_img")
     private String pcImg;
@@ -102,7 +99,7 @@ public class Project implements Serializable{
     private String mobileImg;
 
     /**
-     *手机列表图
+     * 手机列表图
      */
     @Column(name = "pro_mobile_list_img")
     private String listImg;

+ 20 - 4
donate-console/src/main/java/com/uas/console/donate/service/impl/OrgServiceImpl.java

@@ -2,9 +2,11 @@ package com.uas.console.donate.service.impl;
 
 
 import com.uas.console.donate.dao.OrgDao;
+import com.uas.console.donate.event.OrgAuditPublishEvent;
 import com.uas.console.donate.model.Org;
 import com.uas.console.donate.model.SearchFilter;
 import com.uas.console.donate.service.OrgService;
+import com.uas.console.donate.util.ContextUtils;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +23,7 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.text.SimpleDateFormat;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -93,7 +96,11 @@ public class OrgServiceImpl implements OrgService {
         return orgDao.findAll(pageable);
     }
 
-    //批准某机构
+    /**
+     * 批准机构申请
+     * @param id 机构id
+     * @return 处理结果
+     */
     @Override
     public ModelMap approve(Long id){
         ModelMap map = new ModelMap();
@@ -104,7 +111,9 @@ public class OrgServiceImpl implements OrgService {
                 return map;
             }
             org.setStatus(1);
-            orgDao.save(org);
+            org = orgDao.save(org);
+            // 产生消息
+            ContextUtils.publishEvent(new OrgAuditPublishEvent(Collections.singletonList(org)));
             map.put("success", "批准成功");
         } catch (Exception e) {
             map.put("error", "出现错误,操作失败");
@@ -112,7 +121,12 @@ public class OrgServiceImpl implements OrgService {
         return map;
     }
 
-    //驳回某机构
+    /**
+     * 驳回机构申请
+     * @param id  机构id
+     * @param refuse  拒绝理由
+     * @return  处理结果
+     */
     @Override
     public ModelMap unapprove(Long id,String refuse){
         ModelMap map = new ModelMap();
@@ -124,7 +138,9 @@ public class OrgServiceImpl implements OrgService {
             }
             org.setStatus(2);
             org.setRefuse(refuse);
-            orgDao.save(org);
+            org = orgDao.save(org);
+            // 产生消息
+            ContextUtils.publishEvent(new OrgAuditPublishEvent(Collections.singletonList(org)));
             map.put("success", "驳回成功");
         } catch (Exception e) {
             map.put("error", "出现错误,操作失败");

+ 17 - 7
donate-console/src/main/java/com/uas/console/donate/service/impl/ProjectServiceImpl.java

@@ -3,10 +3,7 @@ package com.uas.console.donate.service.impl;
 
 import com.uas.console.donate.core.support.SystemSession;
 import com.uas.console.donate.dao.*;
-import com.uas.console.donate.event.ProjectConcludePublishEvent;
-import com.uas.console.donate.event.ProjectFinancePublishEvent;
-import com.uas.console.donate.event.ProjectPublishEvent;
-import com.uas.console.donate.event.ProjectReportPublishEvent;
+import com.uas.console.donate.event.*;
 import com.uas.console.donate.model.*;
 import com.uas.console.donate.service.ProjectService;
 import com.uas.console.donate.util.ContextUtils;
@@ -141,27 +138,40 @@ public class ProjectServiceImpl implements ProjectService {
     }
 
 
-    //批注项目
+    /**
+     * 批准项目申请
+     * @param id 项目id
+     * @return 处理结果
+     */
     @Override
     public ModelMap approve(Long id){
         try{
             Project project=projectDao.findOne(id);
             project.setStatus(1);
             projectDao.save(project);
+            // 产生消息
+            ContextUtils.publishEvent(new ProjectAuditPublishEvent(Collections.singletonList(project)));
             return new ModelMap("success", true);
         } catch (Exception e) {
             return new ModelMap("error", true);
         }
     }
 
-    //驳回项目
+    /**
+     * 驳回项目申请
+     * @param id 项目id
+     * @param refuse 拒绝理由
+     * @return 处理结果
+     */
     @Override
     public ModelMap unapprove(Long id,String refuse){
         try{
             Project project=projectDao.findOne(id);
             project.setStatus(2);
             project.setRefuse(refuse);
-            projectDao.save(project);
+            project = projectDao.save(project);
+            // 产生消息
+            ContextUtils.publishEvent(new ProjectAuditPublishEvent(Collections.singletonList(project)));
             return new ModelMap("success", true);
         } catch (Exception e) {
             return new ModelMap("error", true);