From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 19 五月 2020 17:13:23 +0800
Subject: [PATCH] 饿了么绘图,添加口碑

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java |  302 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 257 insertions(+), 45 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 1b8730b..2f90f03 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,34 +1,36 @@
 package com.yeshi.fanli.service.impl.push;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
 
-import net.sf.json.JSONObject;
-
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.yeshi.fanli.controller.admin.PushController;
 import com.yeshi.fanli.dao.mybatis.push.DeviceTokenIOSMapper;
 import com.yeshi.fanli.dao.mybatis.push.PushQueueRecordMapper;
+import com.yeshi.fanli.dto.push.PushTypeEnum;
 import com.yeshi.fanli.entity.bus.user.AccountMessage;
 import com.yeshi.fanli.entity.push.DeviceTokenIOS;
 import com.yeshi.fanli.entity.push.PushQueueRecord;
 import com.yeshi.fanli.entity.system.SystemZnx;
 import com.yeshi.fanli.entity.xinge.MessageInfo;
 import com.yeshi.fanli.entity.xinge.PushRecord;
-import com.yeshi.fanli.exception.PushException;
-import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.exception.push.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;
-import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.push.IOSPushUtil;
+
+import net.sf.json.JSONObject;
 
 @Service
 public class IOSPushServiceImpl implements IOSPushService {
@@ -39,8 +41,13 @@
 	@Resource
 	private PushQueueRecordMapper pushQueueRecordMapper;
 
+	@Resource
+	private UserCustomSettingsService userCustomSettingsService;
+
+	@Async("pushExecutor")
 	@Override
-	public void pushGoods(Long uid, Long auctionId, String title, String content) throws PushException {
+	public void pushGoods(Long uid, Long auctionId, String title, String content, String versionCodes)
+			throws PushException {
 
 		String url = "https://item.taobao.com/item.htm?id=" + auctionId;
 		JSONObject json = new JSONObject();
@@ -59,14 +66,14 @@
 
 		PushRecord pushRecord = new PushRecord();
 		pushRecord.setState(1);
-		pushRecord.setType(PushController.GOODS); // 閮芥垚鍔�
+		pushRecord.setType(PushTypeEnum.goodsdetail.getCode()); // 閮芥垚鍔�
 		pushRecord.setUrl(url);
 		pushRecord.setTitle(title);
 		pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName());
 
 		if (uid == null || uid == 0) {
 
-			addPushIOSQueue(info, url, PushController.GOODS);
+			addPushIOSQueue(info, url, PushTypeEnum.goodsdetail.getCode(), versionCodes);
 
 			/*
 			 * // 鏌ヨIOS鎵�鏈夎澶囧彿 // TODO 闇�瑕佸叏鎺� List<String> deviceTokenList =
@@ -81,8 +88,13 @@
 			 * } } });
 			 */
 		} else {
+			if (!validateNotDisturbSingle(uid)) {
+				return; // 閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00)
+			}
+
 			// IOS 鍗曟帹
-			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid);
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
+
 			List<String> deviceTokenList = new ArrayList<>();
 			if (deviceTokenIosList != null)
 				for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -90,7 +102,7 @@
 				}
 
 			try {
-				IOSPushUtil.allPushIOS(deviceTokenList, info, url, PushController.GOODS);
+				IOSPushUtil.allPushIOS(deviceTokenList, info, url, PushTypeEnum.goodsdetail.getCode());
 			} catch (Exception e) {
 				PushLogHelper.iosError(e);
 			}
@@ -98,8 +110,9 @@
 		}
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushUrl(Long uid, String url, String title, String content) throws PushException {
+	public void pushUrl(Long uid, String url, String title, String content, String versionCodes) throws PushException {
 		JSONObject json = new JSONObject();
 		json.put("url", url);
 		json.put("type", "url");
@@ -121,7 +134,7 @@
 		if (uid == null || uid == 0) {
 			// TODO 闇�瑕佸叏鎺�
 
-			addPushIOSQueue(info, url, PushController.URL);
+			addPushIOSQueue(info, url, PushTypeEnum.url.getCode(), versionCodes);
 
 			/*
 			 * List<String> deviceTokenList = getDeviceTokenList(1, 1000);
@@ -135,27 +148,27 @@
 			 * } catch (Exception e) { PushLogHelper.iosError(e); } } });
 			 */
 		} else {
-			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid);
+			if (!validateNotDisturbSingle(uid)) {
+				return; // 閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00)
+			}
+
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
 			List<String> deviceTokenList = new ArrayList<>();
 			if (deviceTokenIosList != null)
 				for (DeviceTokenIOS ios : deviceTokenIosList) {
 					deviceTokenList.add(ios.getDeviceToken());
 				}
 			try {
-				IOSPushUtil.allPushIOS(deviceTokenList, info, url, PushController.URL);
+				IOSPushUtil.allPushIOS(deviceTokenList, info, url, PushTypeEnum.url.getCode());
 			} catch (Exception e) {
 				PushLogHelper.iosError(e);
 			}
 		}
 	}
 
+	@Async("pushExecutor")
 	@Override
-	public void pushWEEXUrl(Long uid, String weexUrl, String title, String content) throws PushException {
-
-	}
-
-	@Override
-	public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX) throws PushException {
+	public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX, String versionCodes) throws PushException {
 		MessageInfo info = new MessageInfo();
 		info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
 
@@ -185,7 +198,7 @@
 
 			// TODO 闇�瑕佸叏鎺�
 
-			addPushIOSQueue(info, id + "", PushController.ZNX);
+			addPushIOSQueue(info, id + "", PushTypeEnum.ZNX.getCode(), versionCodes);
 
 			/*
 			 * List<String> deviceTokenList = getDeviceTokenList(1, 1000);
@@ -200,6 +213,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());
@@ -221,7 +241,7 @@
 			json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity",
 					Constant.systemCommonConfig.getAndroidBaseactivityName()));
 
-			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(msg.getUserInfo().getId());
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(msg.getUserInfo().getId(), versionCodes);
 			List<String> deviceTokenList = new ArrayList<>();
 			if (deviceTokenIosList != null)
 				for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -230,7 +250,7 @@
 
 			// IOS 鍗曟帹
 			try {
-				IOSPushUtil.allPushIOS(deviceTokenList, info, "0", PushController.ZNX);
+				IOSPushUtil.allPushIOS(deviceTokenList, info, "0", PushTypeEnum.ZNX.getCode());
 			} catch (Exception e) {
 				PushLogHelper.iosError(e);
 			}
@@ -241,32 +261,41 @@
 	@Override
 	public void addDeviceToken(Long uid, int version, String deviceToken, String device) {
 		// 濡傛灉device涓虹┖灏辫繑鍥�
-		if (StringUtil.isNullOrEmpty(device))
+		if (StringUtil.isNullOrEmpty(device) || StringUtil.isNullOrEmpty(deviceToken))
 			return;
 
 		// 鍒ゆ柇device鏄惁瀛樺湪
-		DeviceTokenIOS deviceTokenIos = deviceTokenIOSMapper.selectByDevice(device);
+		DeviceTokenIOS deviceTokenIos = deviceTokenIOSMapper.selectByDeviceForUpdate(device);
 		if (deviceTokenIos == null) {
 			deviceTokenIos = new DeviceTokenIOS();
 			deviceTokenIos.setCreateTime(new Date());
 			deviceTokenIos.setUpdateTime(new Date());
 			deviceTokenIos.setDevice(device);
 			deviceTokenIos.setDeviceToken(deviceToken);
+			deviceTokenIos.setDeviceTokenMd5(StringUtil.Md5(deviceToken));
 			deviceTokenIos.setUid(uid);
 			deviceTokenIos.setVersion(version);
 			deviceTokenIOSMapper.insertSelective(deviceTokenIos);
+		} else {// 鏇存柊devicetoken
+			DeviceTokenIOS updateDeviceTokenIOS = new DeviceTokenIOS();
+			updateDeviceTokenIOS.setId(deviceTokenIos.getId());
+			updateDeviceTokenIOS.setDeviceToken(deviceToken);
+			updateDeviceTokenIOS.setDeviceTokenMd5(StringUtil.Md5(deviceToken));
+			updateDeviceTokenIOS.setUid(uid);
+			updateDeviceTokenIOS.setUpdateTime(new Date());
+			deviceTokenIOSMapper.updateByPrimaryKeySelective(updateDeviceTokenIOS);
 		}
 
 	}
 
 	@Override
-	public List<DeviceTokenIOS> getDeviceTokenListByUid(Long uid) {
-		return deviceTokenIOSMapper.selectByUid(uid);
+	public List<DeviceTokenIOS> getDeviceTokenListByUid(Long uid, String versionCodes) throws PushException {
+		return deviceTokenIOSMapper.selectByUid(uid, convertVersionType(versionCodes));
 	}
 
 	@Override
 	public List<String> getDeviceTokenList(int page, int size) {
-		List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList((long) ((page - 1) * size), size);
+		List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList((long) ((page - 1) * size), size, null);
 		List<String> tokenList = new ArrayList<>();
 		for (DeviceTokenIOS ios : list)
 			if (!StringUtil.isNullOrEmpty(ios.getDeviceToken()))
@@ -288,8 +317,8 @@
 	}
 
 	@Override
-	public DeviceTokenIOS getDeviceTokenByDevice(String device) {
-		return deviceTokenIOSMapper.selectByDevice(device);
+	public DeviceTokenIOS getDeviceTokenByDeviceToken(String deviceToken) {
+		return deviceTokenIOSMapper.selectByDeviceToken(deviceToken);
 	}
 
 	/**
@@ -297,8 +326,11 @@
 	 * 
 	 * @param json
 	 */
-	@Transactional
-	public void addPushIOSQueue(MessageInfo info, String url, int type) {
+	@Transactional(rollbackFor=Exception.class)
+	public void addPushIOSQueue(MessageInfo info, String url, int type, String versionCodes) throws PushException {
+
+		if (Constant.IS_TEST)
+			return;
 
 		try {
 
@@ -326,6 +358,8 @@
 				pushQueueRecord.setPushNum(pushNum);
 				// 鎺ㄩ�佺 IOS
 				pushQueueRecord.setType(1);
+				// 鐗堟湰鍙�
+				pushQueueRecord.setVersions(versionCodes);
 
 				if (tokenCount - i < totalCount) {
 					// 璧峰娓告爣
@@ -351,7 +385,7 @@
 					// 缁撴潫娓告爣
 					pushQueueRecord.setEndCursor(endCursor);
 
-					// TODO 瀛樺叆鏁版嵁搴�
+					// 瀛樺叆鏁版嵁搴�
 					pushQueueRecordMapper.insert(pushQueueRecord);
 					// 鍔犲叆闃熷垪
 					CMQManager.getInstance().addIOSPushMsg(pushQueueRecord);
@@ -361,7 +395,6 @@
 			}
 
 		} catch (Exception e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 
@@ -382,6 +415,10 @@
 			return;
 		}
 
+		// 鎺ㄩ�佺殑鐗堟湰鍙�
+		String versions = pushQueueRecord.getVersions();
+		List<Integer> listCode = convertVersionType(versions);
+
 		int total = (int) (endCursor - startCursor);
 
 		// 姣忔鎺ㄩ�佹�绘潯鏁�
@@ -400,7 +437,7 @@
 			// 涓嶈冻50涓暟鎹�
 			if (moveNum > total) {
 				moveNum = (int) (endCursor - startCursor);
-				List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(startCursor, moveNum);
+				List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(startCursor, moveNum, listCode);
 				recordCursor = endCursor;
 
 				if (list != null) {
@@ -414,7 +451,7 @@
 					// System.out.println("recordCursorend:" +recordCursor);
 					moveNum = (int) (endCursor - recordCursor);
 					// System.out.println(moveNum);
-					List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum);
+					List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, listCode);
 					if (list != null) {
 						executePushIOS(list, pushQueueRecord, endCursor);
 						PushLogHelper.iosInfo("鎺ㄩ�佹父鏍�:" + recordCursor + "锛�" + moveNum);
@@ -422,7 +459,7 @@
 					recordCursor = endCursor;
 
 				} else {
-					List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum);
+					List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, listCode);
 					recordCursor = recordCursor + 50;
 
 					if (list != null) {
@@ -430,11 +467,8 @@
 						PushLogHelper.iosInfo("鎺ㄩ�佹父鏍�:" + recordCursor + "锛�" + moveNum);
 					}
 				}
-
-				// System.out.println("recordCursor:" +recordCursor);
 			}
 		}
-
 	}
 
 	public void executePushIOS(List<DeviceTokenIOS> list, PushQueueRecord pushQueueRecord, long recordCursor) {
@@ -443,20 +477,38 @@
 		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();
+//		}
+		
+		ispush=true;//TODO 澶勭悊娑堟伅鍏嶆墦鎵�
+
 		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();
 			}
 		}
@@ -464,8 +516,168 @@
 		pushQueueRecord.setEndtime(new Date());
 		pushQueueRecord.setRecordCursor(recordCursor);
 
-		// TODO 鏇存柊鏁版嵁搴�
+		// 鏇存柊鏁版嵁搴�
 		pushQueueRecordMapper.updateByPrimaryKeySelective(pushQueueRecord);
 	}
 
+	@Override
+	public void unBindUidAndDevice(String device) {
+		if (StringUtil.isNullOrEmpty(device))
+			return;
+		DeviceTokenIOS deviceTokenIOS = deviceTokenIOSMapper.selectByDevice(device);
+		if (device != null) {
+			deviceTokenIOS.setUpdateTime(new Date());
+			deviceTokenIOS.setUid(null);
+			deviceTokenIOSMapper.updateByPrimaryKey(deviceTokenIOS);
+		}
+	}
+
+	@Async("pushExecutor")
+	@Override
+	public void pushWEEX(Long uid, String title, String content, String weexUrl, String versionCodes)
+			throws PushException {
+		MessageInfo info = new MessageInfo();
+		info.setTitle(title);
+		info.setContent(content);
+		info.setDescription(content);
+		// IOS 鍏ㄦ帹
+		if (uid == null || uid == 0) {
+			addPushIOSQueue(info, weexUrl, PushTypeEnum.weex.getCode(), versionCodes);
+		} else {
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
+			List<String> deviceTokenList = new ArrayList<>();
+			if (deviceTokenIosList != null)
+				for (DeviceTokenIOS ios : deviceTokenIosList) {
+					deviceTokenList.add(ios.getDeviceToken());
+				}
+			try {
+				IOSPushUtil.allPushIOS(deviceTokenList, info, weexUrl, PushTypeEnum.weex.getCode());
+			} catch (Exception e) {
+				PushLogHelper.iosError(e);
+			}
+		}
+	}
+
+	@Async("pushExecutor")
+	@Override
+	public void pushBaiChuanUrl(Long uid, String title, String content, String url, String versionCodes)
+			throws PushException {
+		MessageInfo info = new MessageInfo();
+		info.setTitle(title);
+		info.setContent(content);
+		info.setDescription(content);
+		// IOS 鍏ㄦ帹
+		if (uid == null || uid == 0) {
+			addPushIOSQueue(info, url, PushTypeEnum.baichuan.getCode(), versionCodes);
+		} else {
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
+			List<String> deviceTokenList = new ArrayList<>();
+			if (deviceTokenIosList != null)
+				for (DeviceTokenIOS ios : deviceTokenIosList) {
+					deviceTokenList.add(ios.getDeviceToken());
+				}
+			try {
+				IOSPushUtil.allPushIOS(deviceTokenList, info, url, PushTypeEnum.baichuan.getCode());
+			} catch (Exception e) {
+				PushLogHelper.iosError(e);
+			}
+		}
+	}
+
+	/**
+	 * 閫氱煡鍏嶆墦鎵�(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;
+	}
+
+	@Async("pushExecutor")
+	@Override
+	public void pushWelfareCenter(Long uid, String title, String content, String versionCodes) throws PushException {
+		MessageInfo info = new MessageInfo();
+		info.setTitle(title);
+		info.setContent(content);
+		info.setDescription(content);
+		// IOS 鍏ㄦ帹
+		if (uid == null || uid == 0) {
+			addPushIOSQueue(info, "", PushTypeEnum.welfare.getCode(), versionCodes);
+		} else {
+			if (!validateNotDisturbSingle(uid)) {
+				return;
+			}
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
+			List<String> deviceTokenList = new ArrayList<>();
+			if (deviceTokenIosList != null)
+				for (DeviceTokenIOS ios : deviceTokenIosList) {
+					deviceTokenList.add(ios.getDeviceToken());
+				}
+			try {
+				IOSPushUtil.allPushIOS(deviceTokenList, info, "", PushTypeEnum.welfare.getCode());
+			} catch (Exception e) {
+				PushLogHelper.iosError(e);
+			}
+		}
+	}
+
+	private List<Integer> convertVersionType(String versionCodes) {
+		List<Integer> listVersionCode = null;
+
+		if (versionCodes != null && versionCodes.trim().length() > 0) {
+			List<String> listVersion = Arrays.asList(versionCodes.split(","));
+			if (listVersion != null && listVersion.size() > 0) {
+
+				listVersionCode = new ArrayList<Integer>();
+				// 杞崲鎴愬姛鏁村瀷
+				for (String version : listVersion) {
+					if (version != null && version.trim().length() > 0) {
+						listVersionCode.add(Integer.parseInt(version));
+					}
+				}
+			}
+		}
+		return listVersionCode;
+	}
+
+	@Override
+	public void pushUserSignInNotification(Long uid, String title, String content, String versions)
+			throws PushException {
+		MessageInfo info = new MessageInfo();
+		info.setTitle(title);
+		info.setContent(content);
+		info.setDescription(content);
+		// IOS 鍏ㄦ帹
+		if (uid == null || uid == 0) {
+			addPushIOSQueue(info, "", PushTypeEnum.signin.getCode(), versions);
+		} else {
+			List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versions);
+			List<String> deviceTokenList = new ArrayList<>();
+			if (deviceTokenIosList != null)
+				for (DeviceTokenIOS ios : deviceTokenIosList) {
+					deviceTokenList.add(ios.getDeviceToken());
+				}
+			try {
+				IOSPushUtil.allPushIOS(deviceTokenList, info, "", PushTypeEnum.signin.getCode());
+			} catch (Exception e) {
+				PushLogHelper.iosError(e);
+			}
+		}
+	}
+
 }

--
Gitblit v1.8.0