From fe646416d8d46de7b896ddbf65a3ad0cd30b729b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 15 七月 2020 16:05:56 +0800 Subject: [PATCH] 大淘客与好单库与主包剥离 --- fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java | 713 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 567 insertions(+), 146 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java index b936603..6aba1ce 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/push/PushServiceImpl.java @@ -1,188 +1,609 @@ package com.yeshi.fanli.service.impl.push; -import javax.annotation.Resource; - -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; - -import com.yeshi.fanli.controller.admin.PushController; import com.yeshi.fanli.dao.mybatis.AccountMessageMapper; import com.yeshi.fanli.dao.mybatis.push.PushRecordMapper; +import com.yeshi.fanli.dto.push.PushBaseContent; +import com.yeshi.fanli.dto.push.PushTypeEnum; +import com.yeshi.fanli.entity.AppVersionInfo; +import com.yeshi.fanli.entity.SystemEnum; import com.yeshi.fanli.entity.bus.user.AccountMessage; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.system.SystemZnx; import com.yeshi.fanli.entity.xinge.PushRecord; -import com.yeshi.fanli.exception.PushException; -import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; -import com.yeshi.fanli.service.inter.push.HWPushService; -import com.yeshi.fanli.service.inter.push.IOSPushService; -import com.yeshi.fanli.service.inter.push.PushRecordService; -import com.yeshi.fanli.service.inter.push.PushService; -import com.yeshi.fanli.service.inter.push.XMPushService; -import com.yeshi.fanli.service.inter.user.AccountMessageService; +import com.yeshi.fanli.exception.push.PushException; +import com.yeshi.fanli.service.inter.config.AppVersionService; +import com.yeshi.fanli.service.inter.push.*; import com.yeshi.fanli.service.inter.user.SystemZnxService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; @Service public class PushServiceImpl implements PushService { - static String IOSBundleId = ""; - static String PROJECT_NAME = ""; + static String IOSBundleId = ""; + static String PROJECT_NAME = ""; - static { - IOSBundleId = Constant.systemCommonConfig.getIosBundleId(); - PROJECT_NAME = Constant.systemCommonConfig.getProjectChineseName(); - } + static { + IOSBundleId = Constant.systemCommonConfig.getIosBundleId(); + PROJECT_NAME = Constant.systemCommonConfig.getProjectChineseName(); + } - @Resource - private PushRecordService pushRecordService; + @Resource + private PushRecordService pushRecordService; - @Resource - private SystemZnxService systemZnxService; + @Resource + private SystemZnxService systemZnxService; - @Resource - private AccountMessageService accountMessageService; + @Resource + private DeviceTokenHWService deviceTokenHWService; - @Resource - private DeviceTokenHWService deviceTokenHWService; + @Resource + private IOSPushService iosPushService; - @Resource - private IOSPushService iosPushService; + @Resource + private HWPushService hwPushService; - @Resource - private HWPushService hwPushService; + @Resource + private XMPushService xmPushService; - @Resource - private XMPushService xmPushService; + @Resource + private OPPOPushService oPPOPushService; - @Resource - private PushRecordMapper pushRecordMapper; + @Resource + private VIVOPushService vIVOPushService; - @Resource - private AccountMessageMapper accountMessageMapper; + @Resource + private PushRecordMapper pushRecordMapper; - @Async("pushExecutor") - @Override - public void pushGoods(Long uid, String url, String title, String content) throws PushException { - String gids = url.split("id=")[1]; - String gid = gids.split("&")[0]; - if (StringUtil.isNullOrEmpty(gid)) - throw new PushException(1, "鍟嗗搧瑙f瀽澶辫触"); - if (StringUtil.isNullOrEmpty(title)) - throw new PushException(1, "璇峰~鍐欐帹閫佹爣棰�"); - if (StringUtil.isNullOrEmpty(content)) - throw new PushException(1, "璇峰~鍐欐帹閫佸唴瀹�"); + @Resource + private AccountMessageMapper accountMessageMapper; - PushRecord pushRecord = new PushRecord(); - pushRecord.setState(1); - pushRecord.setType(PushController.GOODS); // 閮芥垚鍔� - pushRecord.setUrl(url); - pushRecord.setTitle(title); - pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); - pushRecord.setAccount(1); - pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + @Resource + private AppVersionService appVersionService; - xmPushService.pushGoods(uid, Long.parseLong(gid), title, content); - iosPushService.pushGoods(uid, Long.parseLong(gid), title, content); - // hwPushService.pushGoods(uid, Long.parseLong(gid), title, content); + @Override + public void pushGoods(Long uid, String title, String content, String url, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { + String gids = url.split("id=")[1]; + String gid = gids.split("&")[0]; + if (StringUtil.isNullOrEmpty(gid)) + throw new PushException(1, "鍟嗗搧瑙f瀽澶辫触"); + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "璇峰~鍐欐帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "璇峰~鍐欐帹閫佸唴瀹�"); - pushRecordMapper.insertSelective(pushRecord); - } + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushGoods(uid, Long.parseLong(gid), title, content, codes); + } + } - @Async("pushExecutor") - @Override - public void pushUrl(Long uid, String url, String title, String content) throws PushException { + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String versions = getEffectiveVersions(0, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushGoods(uid, Long.parseLong(gid), title, content, versions); + } + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushGoods(uid, Long.parseLong(gid), new PushBaseContent(title, content, versionCodeList, system)); + } - if (StringUtil.isNullOrEmpty(url)) - throw new PushException(1, "鏃犳帹閫侀摼鎺�"); - if (StringUtil.isNullOrEmpty(title)) - throw new PushException(1, "鏃犳帹閫佹爣棰�"); - if (StringUtil.isNullOrEmpty(content)) - throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushGoods(uid, Long.parseLong(gid), new PushBaseContent(title, content, versionCodeList, system)); + } + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushGoods(uid, Long.parseLong(gid), new PushBaseContent(title, content, versionCodeList, system)); + } - PushRecord pushRecord = new PushRecord(); - pushRecord.setState(1); - pushRecord.setType(PushController.URL); - pushRecord.setUrl(url); - pushRecord.setTitle(title); - pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); - pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + } - xmPushService.pushUrl(uid, url, title, content); - iosPushService.pushUrl(uid, url, title, content); - hwPushService.pushUrl(uid, url, title, content); - pushRecordMapper.insertSelective(pushRecord); - } + PushRecord pushRecord = new PushRecord(); + pushRecord.setUid(uid); + pushRecord.setState(1); + pushRecord.setType(PushTypeEnum.goodsdetail.getCode()); // 閮芥垚鍔� + pushRecord.setUrl(url); + pushRecord.setTitle(title); + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setAccount(1); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } - @Async("pushExecutor") - @Override - public void pushZNX(Long uId, String title, String content) throws PushException { - if (StringUtil.isNullOrEmpty(title)) - throw new PushException(1, "鏃犳帹閫佹爣棰�"); - if (StringUtil.isNullOrEmpty(content)) - throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + @Override + public void pushUrl(Long uid, String title, String content, String url, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { - /* 鏃爑id , 骞挎挱 鏁版嵁鎻掑叆绯荤粺琛� */ - if (uId == null || uId == 0) { - // 鎻掑叆鏁版嵁搴擄紙绯荤粺绔欏唴淇℃暟鎹級 - SystemZnx systemZnx = new SystemZnx(); - systemZnx.setTitle(title); - systemZnx.setContent(content); - systemZnx.setCreateTime(System.currentTimeMillis()); - systemZnxService.save(systemZnx); + if (StringUtil.isNullOrEmpty(url)) + throw new PushException(1, "鏃犳帹閫侀摼鎺�"); + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); - PushRecord pushRecord = new PushRecord(); - pushRecord.setTitle(title); - pushRecord.setState(1); // 鎴愬姛 - pushRecord.setType(4); // 绫诲瀷锛氱珯鍐呬俊 - pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); - pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); - - xmPushService.pushZNX(uId, null, systemZnx); - iosPushService.pushZNX(uId, null, systemZnx); - hwPushService.pushZNX(uId, null, systemZnx); - // 鎻掑叆鎺ㄩ�佽褰� - pushRecordMapper.insertSelective(pushRecord); - } else { - AccountMessage accountMessage = new AccountMessage(); - accountMessage.setCreateTime(System.currentTimeMillis()); - accountMessage.setIsOpen(false); - accountMessage.setUserInfo(new UserInfo(uId)); - accountMessage.setTitle(title); - accountMessage.setContent(content); - accountMessageMapper.insertSelective(accountMessage); + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushUrl(uid, url, title, content, codes); + } + } - xmPushService.pushZNX(uId, accountMessage, null); - iosPushService.pushZNX(uId, accountMessage, null); - hwPushService.pushZNX(uId, accountMessage, null); + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String versions = getEffectiveVersions(0, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushUrl(uid, url, title, content, versions); + } - // 鎻掑叆鎺ㄩ�佽褰� - PushRecord pushRecord = new PushRecord(); - pushRecord.setTitle(title); - pushRecord.setUid(uId); - pushRecord.setState(1); // 鎴愬姛 - pushRecord.setType(PushController.ZNX); // 绫诲瀷锛氱珯鍐呬俊 - pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); - pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); - - pushRecordMapper.insertSelective(pushRecord); - } - } + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } - @Override - public void pushWEEX(Long uid, String title, String content, String weexUrl) throws PushException { - if (StringUtil.isNullOrEmpty(title)) - throw new PushException(1, "鏃犳帹閫佹爣棰�"); - if (StringUtil.isNullOrEmpty(content)) - throw new PushException(1, "鏃犳帹閫佸唴瀹�"); - iosPushService.pushWEEX(uid, title, content, weexUrl); - } + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } - @Override - public void pushBaiChuanUrl(Long uid, String title, String content, String url) throws PushException { - iosPushService.pushBaiChuanUrl(uid, title, content, url); - xmPushService.pushBaiChuanUrl(uid, title, content, url); - } + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } + + } + + PushRecord pushRecord = new PushRecord(); + pushRecord.setUid(uid); + pushRecord.setState(1); + pushRecord.setType(PushTypeEnum.url.getCode()); + pushRecord.setUrl(url); + pushRecord.setTitle(title); + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } + + @Override + public void pushZNX(Long uId, String title, String content, List<String> listIOS, List<String> listAndroid, SystemEnum system) + throws PushException { + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + + SystemZnx systemZnx = null; + AccountMessage accountMessage = null; + + /* 鏃爑id , 骞挎挱 鏁版嵁鎻掑叆绯荤粺琛� */ + if (uId == null || uId == 0) { + // 鎻掑叆鏁版嵁搴擄紙绯荤粺绔欏唴淇℃暟鎹級 + systemZnx = new SystemZnx(); + systemZnx.setTitle(title); + systemZnx.setContent(content); + systemZnx.setCreateTime(System.currentTimeMillis()); + systemZnxService.save(systemZnx); + } else { + accountMessage = new AccountMessage(); + accountMessage.setCreateTime(System.currentTimeMillis()); + accountMessage.setIsOpen(false); + accountMessage.setUserInfo(new UserInfo(uId)); + accountMessage.setTitle(title); + accountMessage.setContent(content); + accountMessageMapper.insertSelective(accountMessage); + } + + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushZNX(uId, accountMessage, systemZnx, codes); + } + } + + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String versions = getEffectiveVersions(0, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushZNX(uId, accountMessage, systemZnx, versions); + } + + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushZNX(uId, new PushBaseContent(title, content, versionCodeList, system)); + } + + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushZNX(uId, new PushBaseContent(title, content, versionCodeList, system)); + } + + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushZNX(uId, new PushBaseContent(title, content, versionCodeList, system)); + } + } + + // 鎻掑叆鎺ㄩ�佽褰� + PushRecord pushRecord = new PushRecord(); + pushRecord.setUid(uId); + pushRecord.setTitle(title); + pushRecord.setState(1); // 鎴愬姛 + pushRecord.setType(PushTypeEnum.ZNX.getCode()); // 绫诲瀷锛氱珯鍐呬俊 + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } + + @Override + public void pushWEEX(Long uid, String title, String content, String weexUrl, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + + // 閫傜敤鐗堟湰 1.4.8鍙婁互鍚� 鎺ㄩ�亀eex椤甸潰 + + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushWEEX(uid, title, content, weexUrl, codes); + } + } + + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�31 + String versions = getEffectiveVersions(0, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushWEEX(uid, title, content, weexUrl, versions); + } + } + + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushWEEX(uid, weexUrl, new PushBaseContent(title, content, versionCodeList, system)); + } + + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushWEEX(uid, weexUrl, new PushBaseContent(title, content, versionCodeList, system)); + } + + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushWEEX(uid, weexUrl, new PushBaseContent(title, content, versionCodeList, system)); + } + + // 鎻掑叆鎺ㄩ�佽褰� + PushRecord pushRecord = new PushRecord(); + pushRecord.setTitle(title); + pushRecord.setUid(uid); + pushRecord.setState(1); // 鎴愬姛 + pushRecord.setType(PushTypeEnum.weex.getCode()); // 绫诲瀷锛歐EEX + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } + + @Override + public void pushBaiChuanUrl(Long uid, String title, String content, String url, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { + + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + + // 閫傜敤鐗堟湰 1.4.8鍙婁互鍚� 鎺ㄩ�佺櫨宸濈綉椤� + + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushBaiChuanUrl(uid, title, content, url, codes); + } + } + + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�31 + String versions = getEffectiveVersions(31, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushBaiChuanUrl(uid, title, content, url, versions); + } + } + + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushBaiChuanUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } + + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushBaiChuanUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } + + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushBaiChuanUrl(uid, url, new PushBaseContent(title, content, versionCodeList, system)); + } + + // 鎻掑叆鎺ㄩ�佽褰� + PushRecord pushRecord = new PushRecord(); + pushRecord.setUrl(url); + pushRecord.setTitle(title); + pushRecord.setUid(uid); + pushRecord.setState(1); // 鎴愬姛 + pushRecord.setType(PushTypeEnum.baichuan.getCode()); // 绫诲瀷锛氱櫨宸� + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } + + @Override + public void pushWelfareCenter(Long uid, String title, String content, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { + + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�0 + String codes = getEffectiveVersionCodes(0, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushWelfareCenter(uid, title, content, codes); + } + } + + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�36 + String versions = getEffectiveVersions(36, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushWelfareCenter(uid, title, content, versions); + } + } + + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushWelfareCenter(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushWelfareCenter(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushWelfareCenter(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // 鎻掑叆鎺ㄩ�佽褰� + PushRecord pushRecord = new PushRecord(); + pushRecord.setTitle(title); + pushRecord.setUid(uid); + pushRecord.setState(1); // 鎴愬姛 + pushRecord.setType(PushTypeEnum.welfare.getCode()); // 绫诲瀷锛氱櫨宸� + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } + + /** + * 鏌ヨ鑳芥帹閫佺増鏈彿 + * + * @param listVersion + * @return + */ + private String getEffectiveVersions(int minCode, String type, List<String> listVersion, SystemEnum system) throws PushException { + + if (minCode == 0 && listVersion == null) { + return null; + } + + String versions = ""; + if (listVersion == null) { + List<AppVersionInfo> list = appVersionService.listByPlatformAndMinVersionCode(type, minCode, system); + if (list != null) { + for (AppVersionInfo appVersion : list) { + versions += appVersion.getVersion() + ","; + } + } + } else { + List<AppVersionInfo> list = appVersionService.listByVersions(type, listVersion, system); + if (list != null) { + for (AppVersionInfo appVersion : list) { + Integer code = appVersion.getVersionCode(); + if (code != null && code >= minCode) { + versions += appVersion.getVersion() + ","; + } + } + } + } + + if (versions.endsWith(",")) { + versions = versions.substring(0, versions.length() - 1); + } + + return versions; + } + + /** + * 鏌ヨ鑳芥帹閫佺増鏈彿code + * + * @param listVersion + * @return + */ + private String getEffectiveVersionCodes(int minCode, String type, List<String> listVersion, SystemEnum system) throws PushException { + + if (minCode == 0 && listVersion == null) { + return null; + } + + String versionCodes = ""; + if (listVersion == null) { + List<AppVersionInfo> list = appVersionService.listByPlatformAndMinVersionCode(type, minCode, system); + if (list != null) { + for (AppVersionInfo appVersion : list) { + versionCodes += appVersion.getVersionCode() + ","; + } + } + } else { + List<AppVersionInfo> list = appVersionService.listByVersions(type, listVersion, system); + if (list != null) { + for (AppVersionInfo appVersion : list) { + Integer code = appVersion.getVersionCode(); + if (code != null && code >= minCode) { + versionCodes += appVersion.getVersionCode() + ","; + } + } + } + } + + if (versionCodes.endsWith(",")) { + versionCodes = versionCodes.substring(0, versionCodes.length() - 1); + } + + return versionCodes; + } + + @Override + public void pushUserSignInNotification(Long uid, String title, String content, List<String> listIOS, + List<String> listAndroid, SystemEnum system) throws PushException { + if (StringUtil.isNullOrEmpty(title)) + throw new PushException(1, "鏃犳帹閫佹爣棰�"); + if (StringUtil.isNullOrEmpty(content)) + throw new PushException(1, "鏃犳帹閫佸唴瀹�"); + + /* IOS绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listIOS == null || listIOS.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�1.6.5浠ュ悗 + String codes = getEffectiveVersionCodes(60, AppVersionInfo.PLATFORM_IOS, listIOS, system); + if (listIOS == null || (listIOS.size() > 0 && codes != null && codes.trim().length() > 0)) { + iosPushService.pushUserSignInNotification(uid, title, content, codes); + } + } + + /* Android绔帹閫� (娉ㄦ槑锛歭ist绛変簬 'null' 鏃跺叏鎺紝 size绛変簬0 涓嶅仛鎺ㄩ��) */ + if (listAndroid == null || listAndroid.size() > 0) { + // 闄愬埗鎺ㄩ�佺増鏈彿锛�1.6.5浠ュ悗 + String versions = getEffectiveVersions(47, AppVersionInfo.PLATFORM_ANDROID, listAndroid, system); + if (listAndroid == null || (listAndroid.size() > 0 && versions != null && versions.trim().length() > 0)) { + xmPushService.pushUserSignInNotification(uid, title, content, versions); + } + } + + // 鍗庝负鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + hwPushService.pushUserSignInNotification(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // OPPO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + oPPOPushService.pushUserSignInNotification(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // VIVO鎺ㄩ�� + if (listAndroid == null || listAndroid.size() > 0) { + List<Integer> versionCodeList = null; + if (listAndroid != null) + versionCodeList = appVersionService.listVersionCodeByVersions("android", listAndroid, system); + vIVOPushService.pushUserSignInNotification(uid, new PushBaseContent(title, content, versionCodeList, system)); + } + + // 鎻掑叆鎺ㄩ�佽褰� + PushRecord pushRecord = new PushRecord(); + pushRecord.setTitle(title); + pushRecord.setUid(uid); + pushRecord.setState(1); // 鎴愬姛 + pushRecord.setType(PushTypeEnum.signin.getCode()); // 绫诲瀷锛氱櫨宸� + pushRecord.setAppName(Constant.systemCommonConfig.getProjectChineseName()); + pushRecord.setCreatetime(java.lang.System.currentTimeMillis()); + pushRecordMapper.insertSelective(pushRecord); + } } -- Gitblit v1.8.0