admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/util/push/IOSPushUtil.java
@@ -8,19 +8,19 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.yeshi.utils.HttpUtil;
import com.google.gson.Gson;
import com.yeshi.fanli.controller.admin.PushController;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.dto.push.PushTypeEnum;
import com.yeshi.fanli.entity.xinge.MessageInfo;
import com.yeshi.fanli.entity.xinge.PushRecord;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.log.PushLogHelper;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.IOSPushFactory;
import org.yeshi.utils.HttpUtil;
import javapns.devices.Device;
import javapns.devices.implementations.basic.BasicDevice;
@@ -36,12 +36,12 @@
   private static IOSPushUtil iosPushUtil;
   @Autowired
   private SystemService systemService;
   private BusinessSystemService businessSystemService;
   @PostConstruct
   public void init() {
      iosPushUtil = this;
      iosPushUtil.systemService = this.systemService;
      iosPushUtil.businessSystemService = this.businessSystemService;
   }
   /**
@@ -58,6 +58,9 @@
   public static String allPushIOS(List<String> deviceTokenList, MessageInfo info, String url, int type)
         throws Exception {
      // if (Constant.IS_TEST)
      // return null;
      Gson gson = new Gson();
      PushLogHelper.iosInfo("IOS推送设备数为:" + deviceTokenList.size());
      PushLogHelper.iosInfo("IOS推送的内容为:" + gson.toJson(info));
@@ -68,7 +71,7 @@
      // json自定义传值
      JSONObject json = null;
      if (type == PushController.GOODS) {
      if (type == PushTypeEnum.goodsdetail.getCode()) {
         Long auctionId = null;
         if (url.contains("id=")) {
            String[] sts = url.split("\\?")[1].split("&");
@@ -81,26 +84,30 @@
         if (auctionId == null)
            throw new Exception("淘宝商品ID提取出错");
         json = IOSPushFactory.createGoodsPush(auctionId, info.getTitle(), info.getContent());
      } else if (type == PushController.URL) {
      } else if (type == PushTypeEnum.url.getCode()) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            throw new Exception("获取短链出错");
         json = IOSPushFactory.createURLPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushController.ZNX) {
      } else if (type == PushTypeEnum.ZNX.getCode()) {
         json = IOSPushFactory.createZNXPush(info.getTitle(), info.getContent());
      } else if (type == PushController.WEEX) {
      } else if (type == PushTypeEnum.weex.getCode()) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            throw new Exception("获取短链出错");
         json = IOSPushFactory.createWEEXPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushController.BAICHUAN) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            throw new Exception("获取短链出错");
      } else if (type == PushTypeEnum.baichuan.getCode()) {
         String shortUrl = url;
         // HttpUtil.getShortLink(url);
         // if (StringUtil.isNullOrEmpty(shortUrl))
         // throw new Exception("获取短链出错");
         json = IOSPushFactory.createBaiChuanPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushController.WELFARE_CENTER) {
      } else if (type == PushTypeEnum.welfare.getCode()) {
         json = IOSPushFactory.createWelfarePush(info.getTitle(), info.getContent());
      } else if (type == PushTypeEnum.signin.getCode()) {
         json = IOSPushFactory.createUserSignInPush(info.getTitle(), info.getContent());
      }
      // 分组推送 每50个设备为一组
      InputStream certificate = IOSPushUtil.class.getClassLoader()
@@ -114,7 +121,7 @@
            int end = start + pageSize;
            if (end > tokenList.size())
               end = tokenList.size();
            pushIOS(tokenList.subList(start, end), json,certificate,certificatePassword);
            pushIOS(tokenList.subList(start, end), json, certificate, certificatePassword);
         }
      }
@@ -122,7 +129,8 @@
      return null;
   }
   public static String pushIOS(List<String> deviceTokenList, JSONObject json,InputStream certificate,String certificatePWD) throws Exception {
   public static String pushIOS(List<String> deviceTokenList, JSONObject json, InputStream certificate,
         String certificatePWD) throws Exception {
      List<String> tokenList = new ArrayList<String>();
      for (String deviceToken : deviceTokenList) {
         tokenList.add(deviceToken);
@@ -151,11 +159,9 @@
      PushNotificationManager pushManager = new PushNotificationManager();
      // true:表示的是产品线上发布推送服务 false:表示的是产品测试推送服务
      if (Constant.IS_TEST)
         pushManager.initializeConnection(
               new AppleNotificationServerBasicImpl(certificate, certificatePWD, false));
         pushManager.initializeConnection(new AppleNotificationServerBasicImpl(certificate, certificatePWD, false));
      else
         pushManager
               .initializeConnection(new AppleNotificationServerBasicImpl(certificate, certificatePWD, true));
         pushManager.initializeConnection(new AppleNotificationServerBasicImpl(certificate, certificatePWD, true));
      List<Device> deviceList = new ArrayList<Device>();
      for (String token : tokenList) {
@@ -222,7 +228,7 @@
      InputStream certificate = IOSPushUtil.class.getClassLoader()
            .getResourceAsStream("certificate/pushCertificate.p12"); // 读取.p12文件
      String certificatePassword = Constant.systemCommonConfig.getIosPushCertificatePwd();
      pushIOS(tokenList, json,certificate,certificatePassword);
      pushIOS(tokenList, json, certificate, certificatePassword);
   }
   /**
@@ -240,7 +246,7 @@
      // json自定义传值
      JSONObject json = null;
      if (type == PushController.GOODS) {
      if (type == PushTypeEnum.goodsdetail.getCode()) {
         Long auctionId = null;
         if (url.contains("id=")) {
            String[] sts = url.split("\\?")[1].split("&");
@@ -253,23 +259,25 @@
         if (auctionId == null)
            throw new Exception("淘宝商品ID提取出错");
         json = IOSPushFactory.createGoodsPush(auctionId, info.getTitle(), info.getContent());
      } else if (type == PushController.URL) {
      } else if (type == PushTypeEnum.url.getCode()) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            throw new Exception("获取短链出错");
         json = IOSPushFactory.createURLPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushController.ZNX) {
      } else if (type == PushTypeEnum.ZNX.getCode()) {
         json = IOSPushFactory.createZNXPush(info.getTitle(), info.getContent());
      } else if (type == PushController.WEEX) {
      } else if (type == PushTypeEnum.weex.getCode()) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            shortUrl = url;
         json = IOSPushFactory.createWEEXPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushController.BAICHUAN) {
      } else if (type == PushTypeEnum.baichuan.getCode()) {
         String shortUrl = HttpUtil.getShortLink(url);
         if (StringUtil.isNullOrEmpty(shortUrl))
            shortUrl = url;
         json = IOSPushFactory.createBaiChuanPush(shortUrl, info.getTitle(), info.getContent());
      } else if (type == PushTypeEnum.signin.getCode()) {
         json = IOSPushFactory.createUserSignInPush(info.getTitle(), info.getContent());
      }
      return json;