From 0a3b28bcff870dfb742d76d06fc74481965ea122 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期四, 17 一月 2019 14:48:54 +0800
Subject: [PATCH] 用户自定义界面设置+ 免打扰IOS推送修改

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java |   74 +++++++++++++++++++++++++++++++++---
 1 files changed, 67 insertions(+), 7 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java
index 855192c..16a4676 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.service.impl.push;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -21,6 +22,7 @@
 import com.yeshi.fanli.exception.PushException;
 import com.yeshi.fanli.log.PushLogHelper;
 import com.yeshi.fanli.service.inter.push.IOSPushService;
+import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
 import com.yeshi.fanli.util.CMQManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
@@ -37,6 +39,9 @@
 	@Resource
 	private PushQueueRecordMapper pushQueueRecordMapper;
 
+	@Resource
+	private UserCustomSettingsService userCustomSettingsService;
+	
 	@Override
 	public void pushGoods(Long uid, Long auctionId, String title, String content) throws PushException {
 
@@ -79,6 +84,10 @@
 			 * } } });
 			 */
 		} else {
+			if (!validateNotDisturbSingle(uid)) {
+				return; //閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00) 
+			}
+			
 			// IOS 鍗曟帹
 			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid);
 			List<String> deviceTokenList = new ArrayList<>();
@@ -133,6 +142,10 @@
 			 * } catch (Exception e) { PushLogHelper.iosError(e); } } });
 			 */
 		} else {
+			if (!validateNotDisturbSingle(uid)) {
+				return; //閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00) 
+			}
+			
 			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid);
 			List<String> deviceTokenList = new ArrayList<>();
 			if (deviceTokenIosList != null)
@@ -193,6 +206,13 @@
 			 * } });
 			 */
 		} else if (msg != null) {
+			
+			if (uId !=null) {
+				if (!validateNotDisturbSingle(uId)) {
+					return; //閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00) 
+				}
+			}
+			
 			// 鎻掑叆鎺ㄩ�佽褰�
 			PushRecord pushRecord = new PushRecord();
 			info.setTitle(msg.getTitle());
@@ -353,7 +373,7 @@
 					// 缁撴潫娓告爣
 					pushQueueRecord.setEndCursor(endCursor);
 
-					// TODO 瀛樺叆鏁版嵁搴�
+					// 瀛樺叆鏁版嵁搴�
 					pushQueueRecordMapper.insert(pushQueueRecord);
 					// 鍔犲叆闃熷垪
 					CMQManager.getInstance().addIOSPushMsg(pushQueueRecord);
@@ -363,7 +383,6 @@
 			}
 
 		} catch (Exception e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 
@@ -443,22 +462,38 @@
 
 		String jsonContent = pushQueueRecord.getJsonContent();
 		JSONObject json = JSONObject.fromObject(jsonContent);
-
+		
 		List<String> tokenList = new ArrayList<>();
+		
+		boolean ispush = false;
+		List<Long> listNotPushId = null;
+		
+		Calendar now = Calendar.getInstance();
+		int hour = now.get(Calendar.HOUR_OF_DAY);
+		if (hour >= 8 && hour < 20) {
+			ispush = true; // 鍙帹閫�
+		}  else {
+			listNotPushId = validateNotDisturb();
+		}
+		
 		for (DeviceTokenIOS ios : list) {
+			
 			if (!StringUtil.isNullOrEmpty(ios.getDeviceToken())) {
+				if (!ispush && listNotPushId != null && listNotPushId.size() > 0) {
+					Long uid = ios.getUid();
+					if (uid != null && listNotPushId.contains(uid)) {
+						continue;  // 閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00) 
+					}
+				}
 				tokenList.add(ios.getDeviceToken());
-				// System.out.println(ios.getDeviceToken());
 			}
 		}
 
 		if (tokenList.size() > 0) {
-			// System.out.println(tokenList.size());
 			// 鎵ц鎺ㄩ��
 			try {
 				IOSPushUtil.executePushIOS(tokenList, json);
 			} catch (Exception e) {
-				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
@@ -466,7 +501,7 @@
 		pushQueueRecord.setEndtime(new Date());
 		pushQueueRecord.setRecordCursor(recordCursor);
 
-		// TODO 鏇存柊鏁版嵁搴�
+		// 鏇存柊鏁版嵁搴�
 		pushQueueRecordMapper.updateByPrimaryKeySelective(pushQueueRecord);
 	}
 
@@ -529,5 +564,30 @@
 			}
 		}
 	}
+	
+	/**
+	 *  閫氱煡鍏嶆墦鎵�(20:00-8:00) 
+	 */
+	public List<Long> validateNotDisturb() {
+		return userCustomSettingsService.getCancelNoticeUsers();
+	}
+	
+	/**
+	 *  閫氱煡鍏嶆墦鎵�(20:00-8:00) 
+	 */
+	public boolean validateNotDisturbSingle(Long uid) {
+		Calendar now = Calendar.getInstance();
+		int hour = now.get(Calendar.HOUR_OF_DAY);
+		boolean ispush;
+		if (hour >= 8 && hour < 20) {
+			ispush = true; // 鍙帹閫�
+		} else {
+			// 鑷畾涔夎缃�  閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00) 
+			ispush = userCustomSettingsService.validateCancelNoticeByUid(uid);
+		}
+		
+		return ispush;
+	}
+	
 
 }

--
Gitblit v1.8.0