From c4e7a59d3266c09f59405faface88f71a8da9a11 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 15 四月 2019 14:47:45 +0800
Subject: [PATCH] 用户订单申诉-改为系统自动处理 + 次数限制
---
fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java | 118 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 60 insertions(+), 58 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 07c2392..42cec89 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,19 +1,20 @@
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 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.entity.AppVersionInfo;
import com.yeshi.fanli.entity.bus.user.AccountMessage;
import com.yeshi.fanli.entity.push.DeviceTokenIOS;
import com.yeshi.fanli.entity.push.PushQueueRecord;
@@ -22,7 +23,6 @@
import com.yeshi.fanli.entity.xinge.PushRecord;
import com.yeshi.fanli.exception.PushException;
import com.yeshi.fanli.log.PushLogHelper;
-import com.yeshi.fanli.service.inter.config.AppVersionService;
import com.yeshi.fanli.service.inter.push.IOSPushService;
import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
import com.yeshi.fanli.util.CMQManager;
@@ -43,13 +43,10 @@
@Resource
private UserCustomSettingsService userCustomSettingsService;
-
- @Resource
- private AppVersionService appVersionService;
-
+ @Async("pushExecutor")
@Override
- public void pushGoods(Long uid, Long auctionId, String title, String content, List<String> listVersion) 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();
@@ -75,7 +72,7 @@
if (uid == null || uid == 0) {
- addPushIOSQueue(info, url, PushController.GOODS, listVersion);
+ addPushIOSQueue(info, url, PushController.GOODS, versionCodes);
/*
* // 鏌ヨIOS鎵�鏈夎澶囧彿 // TODO 闇�瑕佸叏鎺� List<String> deviceTokenList =
@@ -93,9 +90,10 @@
if (!validateNotDisturbSingle(uid)) {
return; // 閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00)
}
-
+
// IOS 鍗曟帹
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
+
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -111,8 +109,9 @@
}
}
+ @Async("pushExecutor")
@Override
- public void pushUrl(Long uid, String url, String title, String content, List<String> listVersion) 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");
@@ -134,7 +133,7 @@
if (uid == null || uid == 0) {
// TODO 闇�瑕佸叏鎺�
- addPushIOSQueue(info, url, PushController.URL, listVersion);
+ addPushIOSQueue(info, url, PushController.URL, versionCodes);
/*
* List<String> deviceTokenList = getDeviceTokenList(1, 1000);
@@ -152,7 +151,7 @@
return; // 閫氱煡鍏嶆墦鎵�(20:00-24:00 / 00:00 -08:00)
}
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -166,8 +165,10 @@
}
}
+
+ @Async("pushExecutor")
@Override
- public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX, List<String> listVersion) throws PushException {
+ public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX, String versionCodes) throws PushException {
MessageInfo info = new MessageInfo();
info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
@@ -197,7 +198,7 @@
// TODO 闇�瑕佸叏鎺�
- addPushIOSQueue(info, id + "", PushController.ZNX, listVersion);
+ addPushIOSQueue(info, id + "", PushController.ZNX, versionCodes);
/*
* List<String> deviceTokenList = getDeviceTokenList(1, 1000);
@@ -240,7 +241,7 @@
json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity",
Constant.systemCommonConfig.getAndroidBaseactivityName()));
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(msg.getUserInfo().getId(), listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(msg.getUserInfo().getId(), versionCodes);
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -288,11 +289,8 @@
}
@Override
- public List<DeviceTokenIOS> getDeviceTokenListByUid(Long uid, List<String> listVersion) {
- // 鐗堟湰鍙�
- List<Integer> listCode = appVersionService.listVersionCodeByVersions(AppVersionInfo.PLATFORM_IOS,listVersion);
-
- return deviceTokenIOSMapper.selectByUid(uid, listCode);
+ public List<DeviceTokenIOS> getDeviceTokenListByUid(Long uid, String versionCodes) throws PushException {
+ return deviceTokenIOSMapper.selectByUid(uid, convertVersionType(versionCodes));
}
@Override
@@ -329,7 +327,7 @@
* @param json
*/
@Transactional
- public void addPushIOSQueue(MessageInfo info, String url, int type, List<String> listVersion) {
+ public void addPushIOSQueue(MessageInfo info, String url, int type, String versionCodes) throws PushException {
try {
@@ -343,20 +341,6 @@
// 姣忔鎵ц鏉$洰
int pushNum = 50;
-
- String versionCodes = "";
- List<Integer> listCode = appVersionService.listVersionCodeByVersions(AppVersionInfo.PLATFORM_IOS,listVersion);
-
- if (listCode != null && listCode.size() > 0) {
- for (Integer code: listCode) {
- versionCodes = versionCodes + code + ",";
- }
-
- // 鍘婚櫎鏈熬閫楀彿
- if (versionCodes.endsWith(",")) {
- versionCodes = versionCodes.substring(0, versionCodes.length() - 1);
- }
- }
for (long i = 0; i < tokenCount + totalCount;) {
@@ -424,17 +408,17 @@
Long startCursor = pushQueueRecord.getStartCursor();
// 缁撴潫浣嶇疆
Long endCursor = pushQueueRecord.getEndCursor();
- // 鐗堟湰鍙�
- String[] versionArray = null;
- String versions = pushQueueRecord.getVersions();
- if (versions != null && versions.trim().length() == 0) {
- versionArray = versions.split(",");
- }
if (startCursor == null && endCursor == null) {
return;
}
+
+ // 鎺ㄩ�佺殑鐗堟湰鍙�
+ String versions = pushQueueRecord.getVersions();
+ List<Integer> listCode = convertVersionType(versions);
+
+
int total = (int) (endCursor - startCursor);
// 姣忔鎺ㄩ�佹�绘潯鏁�
@@ -450,11 +434,10 @@
for (int i = 0; i < count; i++) {
-
// 涓嶈冻50涓暟鎹�
if (moveNum > total) {
moveNum = (int) (endCursor - startCursor);
- List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(startCursor, moveNum, versionArray);
+ List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(startCursor, moveNum, listCode);
recordCursor = endCursor;
if (list != null) {
@@ -468,7 +451,7 @@
// System.out.println("recordCursorend:" +recordCursor);
moveNum = (int) (endCursor - recordCursor);
// System.out.println(moveNum);
- List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, versionArray);
+ List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, listCode);
if (list != null) {
executePushIOS(list, pushQueueRecord, endCursor);
PushLogHelper.iosInfo("鎺ㄩ�佹父鏍�:" + recordCursor + "锛�" + moveNum);
@@ -476,7 +459,7 @@
recordCursor = endCursor;
} else {
- List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, versionArray);
+ List<DeviceTokenIOS> list = deviceTokenIOSMapper.selectList(recordCursor, moveNum, listCode);
recordCursor = recordCursor + 50;
if (list != null) {
@@ -484,11 +467,8 @@
PushLogHelper.iosInfo("鎺ㄩ�佹父鏍�:" + recordCursor + "锛�" + moveNum);
}
}
-
- // System.out.println("recordCursor:" +recordCursor);
}
}
-
}
public void executePushIOS(List<DeviceTokenIOS> list, PushQueueRecord pushQueueRecord, long recordCursor) {
@@ -550,17 +530,18 @@
}
}
+ @Async("pushExecutor")
@Override
- public void pushWEEX(Long uid, String title, String content, String weexUrl, List<String> listVersion) throws PushException {
+ 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, PushController.WEEX, listVersion);
+ addPushIOSQueue(info, weexUrl, PushController.WEEX, versionCodes);
} else {
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -574,17 +555,18 @@
}
}
+ @Async("pushExecutor")
@Override
- public void pushBaiChuanUrl(Long uid, String title, String content, String url, List<String> listVersion) throws PushException {
+ 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, PushController.BAICHUAN, listVersion);
+ addPushIOSQueue(info, url, PushController.BAICHUAN, versionCodes);
} else {
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -622,20 +604,21 @@
return ispush;
}
+ @Async("pushExecutor")
@Override
- public void pushWelfareCenter(Long uid, String title, String content, List<String> listVersion) throws PushException {
+ 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, "", PushController.WELFARE_CENTER, listVersion);
+ addPushIOSQueue(info, "", PushController.WELFARE_CENTER, versionCodes);
} else {
if (!validateNotDisturbSingle(uid)) {
return;
}
- List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, listVersion);
+ List<DeviceTokenIOS> deviceTokenIosList = getDeviceTokenListByUid(uid, versionCodes);
List<String> deviceTokenList = new ArrayList<>();
if (deviceTokenIosList != null)
for (DeviceTokenIOS ios : deviceTokenIosList) {
@@ -649,4 +632,23 @@
}
}
+ 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;
+ }
+
}
--
Gitblit v1.8.0