Просмотр исходного кода

消息事件接收人和发起人防空。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10108 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 лет назад
Родитель
Сommit
72d44414d5

+ 6 - 0
src/main/java/com/uas/platform/b2b/event/PurchaseOrderEndReleaseEvent.java

@@ -29,6 +29,9 @@ public class PurchaseOrderEndReleaseEvent extends SaveReleaseEvent<PagingRelease
     public PagingReleaseDetail release(PurchaseOrderItem item) {
         //TODO 结案或反结案订单之后,触发新增消息事件。
         Long emUU = item.getOrder().getUserUU();
+        if (null == emUU) {
+            emUU = 1L;
+        }
         String emName = item.getOrder().getUser().getUserName();
         Long enUU = item.getOrder().getEnUU();
         Date date = new Date();
@@ -54,6 +57,9 @@ public class PurchaseOrderEndReleaseEvent extends SaveReleaseEvent<PagingRelease
         PagingRelease release = new PagingRelease(emUU, emName, enUU, date, codeValue, from, title, context, type, isReply, category,table, sourceId, orderStatus, toVendor);
         Long vendUU = item.getOrder().getVendUU();
         Long vendUserUU = item.getOrder().getVendUserUU();
+        if (null == vendUserUU) {
+            vendUserUU = 1L;
+        }
         String vendUserName = "操作员";
         if (null != item.getOrder().getVenduser()) {
             vendUserName = item.getOrder().getVenduser();

+ 8 - 4
src/main/java/com/uas/platform/b2b/event/PurchaseOrderReplyReleaseEvent.java

@@ -3,7 +3,6 @@ package com.uas.platform.b2b.event;
 import com.uas.platform.b2b.model.PagingRelease;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
 import com.uas.platform.b2b.model.PurchaseOrder;
-import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Status;
 
@@ -31,10 +30,12 @@ public class PurchaseOrderReplyReleaseEvent extends SaveReleaseEvent<PagingRelea
     public PagingReleaseDetail release(PurchaseOrder orderAll) {
         // 回复订单的话,跟新增订单是相反的,所以接收人是user,发出人是venduser
         Long emUU = orderAll.getVendUserUU();
+        if (null == emUU) {  // 防止接收人UU为空,在这里设为其他的。
+            emUU = 1L;
+        }
         String emName = "操作员";  // 默认一个值,避免为空
-        if (null != SystemSession.getUser()) {
-            emName = SystemSession.getUser().getUserName();
-            emUU = SystemSession.getUser().getUserUU();
+        if (null != orderAll.getVenduser()) {
+            emName = orderAll.getVenduser();
         }
         Long vendUU = orderAll.getVendUU();
         Date date = new Date();
@@ -52,6 +53,9 @@ public class PurchaseOrderReplyReleaseEvent extends SaveReleaseEvent<PagingRelea
         PagingRelease release = new PagingRelease(emUU, emName, vendUU, date, codeValue, from, title, context, type, isReply, category, table, sourceId, orderStatus, toVendor);
         Long enUU = orderAll.getEnUU();
         Long userUU = orderAll.getUserUU();
+        if (userUU == null) {
+            userUU = 1L;
+        }
         String userName = "操作员";
         if (null != orderAll.getUser()) {
             userName = orderAll.getUser().getUserName();

+ 6 - 0
src/main/java/com/uas/platform/b2b/event/PurchaseOrderSaveReleaseEvent.java

@@ -29,6 +29,9 @@ public class PurchaseOrderSaveReleaseEvent extends SaveReleaseEvent<PagingReleas
     public PagingReleaseDetail release(PurchaseOrderAll orderAll) {
         //TODO 保存新订单之后,触发新增消息事件。
         Long emUU = orderAll.getUserUU();
+        if (null == emUU) {
+            emUU = 1L;
+        }
         String emName = orderAll.getUser().getUserName();
         Long enUU = orderAll.getEnUU();
         Date date = new Date();
@@ -49,6 +52,9 @@ public class PurchaseOrderSaveReleaseEvent extends SaveReleaseEvent<PagingReleas
         PagingRelease release = new PagingRelease(emUU, emName, enUU, date, codeValue, from, title, context, type, isReply, category, table, sourceId, orderStatus, toVendor);
         Long vendUU = orderAll.getVendUU();
         Long vendUserUU = orderAll.getVendUserUU();
+        if (null == vendUserUU) {
+            vendUserUU = 1L;
+        }
         String vendUserName = orderAll.getVenduser();
         PagingReleaseDetail releaseDetail = new PagingReleaseDetail(vendUU, vendUserUU, vendUserName);
         releaseDetail.setPagingRelease(release);

+ 11 - 14
src/main/java/com/uas/platform/b2b/listener/MessageListener.java

@@ -54,9 +54,6 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 		Set<Long> userUUs = new HashSet<>(); // 存储需要接收消息的用户UU
 		List<PagingReleaseDetail> otherReleaseDetails = new ArrayList<>(); // 用来保存单据新增的其他消息,推送消息时用。
 		for (PagingReleaseDetail detail : pagingReleaseDetails) {
-			if (detail.getVendUserUU() != null) {
-				userUUs.add(detail.getVendUserUU()); // 新增的一条,接收人添加到接收用户uu中
-			}
 			PagingRelease release = detail.getPagingRelease();
 			release = pagingReleaseDao.save(release); // 先保存一次主表,不然触发器查询无数据,会报错
 			if (null != detail.getVendUU() && null != release.getEnUU()) {
@@ -65,7 +62,7 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 				for (Role role : roles) {
 					List<User> admins = userDao.findByRole(role.getId());
 					for (User admin : admins) {
-						if (!userUUs.contains(admin.getUserUU())) {
+						if (!Objects.equals(admin.getUserUU(), detail.getVendUserUU()) && !userUUs.contains(admin.getUserUU())) {
 							userUUs.add(admin.getUserUU());
 						}
 					}
@@ -83,7 +80,7 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 					List<Distribute> distributes = distributeDao.findByVendorId(vendorId);
 					if (!CollectionUtils.isEmpty(distributes)) {
 						for (Distribute distribute : distributes) {
-							if (!userUUs.contains(distribute.getUserUU())) {
+							if (!Objects.equals(distribute.getUserUU(), detail.getVendUserUU()) && !userUUs.contains(distribute.getUserUU())) {
 								userUUs.add(distribute.getUserUU());
 							}
 						}
@@ -97,20 +94,20 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 				// 添加系统管理员
 				if (addSysAdmin) {
 					Enterprise enterprise = enterpriseDao.findOne(detail.getVendUU());
-					if (!userUUs.contains(enterprise.getEnAdminuu())) {
+					if (!Objects.equals(enterprise.getEnAdminuu(), detail.getVendUserUU()) && !userUUs.contains(enterprise.getEnAdminuu())) {
 						userUUs.add(enterprise.getEnAdminuu());
 					}
 				}
 				// 新增消息
 				for (Long userUU : userUUs) {
-					try { //去除userUU为空值的情况
-						User user = userDao.findOne(userUU);
-						PagingReleaseDetail pagingReleaseDetail = new PagingReleaseDetail(detail.getVendUU(), userUU, user.getUserName());
-						pagingReleaseDetail.setPagingRelease(release);
-						otherReleaseDetails.add(pagingReleaseDetail);
-					} catch (RuntimeException e){
-						e.getStackTrace();
-					}
+                    try { //去除userUU为空值的情况
+                        User user = userDao.findOne(userUU);
+                        PagingReleaseDetail pagingReleaseDetail = new PagingReleaseDetail(detail.getVendUU(), userUU, user.getUserName());
+                        pagingReleaseDetail.setPagingRelease(release);
+                        otherReleaseDetails.add(pagingReleaseDetail);
+                    } catch (RuntimeException e){
+                        e.getStackTrace();
+                    }
                 }
 			}
 		}