admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/impl/push/XMPushServiceImpl.java
@@ -1,14 +1,22 @@
package com.yeshi.fanli.service.impl.push;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.push.PushTypeEnum;
import com.yeshi.fanli.entity.bus.user.AccountMessage;
import com.yeshi.fanli.entity.push.DeviceTokenXM;
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.exception.push.PushException;
import com.yeshi.fanli.log.PushLogHelper;
import com.yeshi.fanli.service.inter.push.DeviceTokenXMService;
import com.yeshi.fanli.service.inter.push.XMPushService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.push.PushUtils;
@@ -17,6 +25,19 @@
@Service
public class XMPushServiceImpl implements XMPushService {
   @Resource
   private DeviceTokenXMService deviceTokenXMService;
   private List<String> getRegIds(Long uid) {
      List<DeviceTokenXM> list = deviceTokenXMService.listByUid(uid);
      List<String> regIds = new ArrayList<>();
      if (list != null)
         for (DeviceTokenXM token : list)
            regIds.add(token.getRegisterId());
      return regIds;
   }
   @Async("pushExecutor")
   @Override
@@ -27,7 +48,7 @@
      JSONObject json = new JSONObject();
      // json.put("url", "http://item.taobao.com/item.htm?id=" + gid);// IOS使用
      json.put("id", gid);
      json.put("type", "goodsdetail");
      json.put("type", PushTypeEnum.goodsdetail.name());
      json.put("miPushUrl", String.format("%s.ui.recommend.GoodsBrowserActivity",
            Constant.systemCommonConfig.getAndroidBaseactivityName()));
@@ -55,7 +76,7 @@
      } else {
         info.setAlias(uid + "");
         // 小米 单推
         PushUtils.singlePushXiaoMi(info, json, pushRecord);
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }
@@ -65,7 +86,7 @@
      JSONObject json = new JSONObject();
      json.put("url", url);
      json.put("type", "url");
      json.put("type", PushTypeEnum.url.name());
      json.put("webUrl", url);
      json.put("miPushUrl", String.format("%s.ui.invite.ShareBrowserActivity",
            Constant.systemCommonConfig.getAndroidBaseactivityName()));
@@ -95,7 +116,7 @@
         }
      } else {
         info.setAlias(uid + "");
         PushUtils.singlePushXiaoMi(info, json, pushRecord);
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }
@@ -122,10 +143,10 @@
         contentJson.put("id", id);
         JSONObject json = new JSONObject();
         json.put("type", "ZNX");
         json.put("type", PushTypeEnum.ZNX.name());
         json.put("content", contentJson);
         json.put("miPushUrl", String.format("%s.ui.main.MainActivity",
               Constant.systemCommonConfig.getAndroidBaseactivityName()));
         json.put("miPushUrl",
               String.format("%s.ui.main.MainActivity", Constant.systemCommonConfig.getAndroidBaseactivityName()));
         // 版本推送
         if (versions != null && versions.trim().length() > 0) {
@@ -156,10 +177,10 @@
         contentJson.put("id", msg.getId() + "");
         JSONObject json = new JSONObject();
         json.put("type", "ZNX");
         json.put("type", PushTypeEnum.ZNX.name());
         json.put("content", contentJson);
         json.put("miPushUrl", String.format("%s.ui.main.MainActivity",
               Constant.systemCommonConfig.getAndroidBaseactivityName()));
         json.put("miPushUrl",
               String.format("%s.ui.main.MainActivity", Constant.systemCommonConfig.getAndroidBaseactivityName()));
         // 版本推送
         if (versions != null && versions.trim().length() > 0) {
@@ -168,7 +189,7 @@
         // 小米 单推
         try {
            PushUtils.singlePushXiaoMi(info, json, pushRecord);
            PushUtils.singlePushXiaoMi(info, json, getRegIds(uId), pushRecord);
         } catch (Exception e) {
            PushLogHelper.xmError(e);
         }
@@ -181,7 +202,7 @@
      JSONObject json = new JSONObject();
      json.put("url", weexUrl);
      json.put("type", "weex");
      json.put("type", PushTypeEnum.weex.name());
      // 版本推送
      if (versions != null && versions.trim().length() > 0) {
@@ -208,7 +229,7 @@
         }
      } else {
         info.setAlias(uid + "");
         PushUtils.singlePushXiaoMi(info, json, pushRecord);
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }
@@ -219,7 +240,7 @@
      JSONObject json = new JSONObject();
      json.put("url", url);
      json.put("type", "baichuan");
      json.put("type", PushTypeEnum.baichuan.name());
      // 版本推送
      if (versions != null && versions.trim().length() > 0) {
         json.put("app_version", versions);
@@ -243,7 +264,7 @@
         }
      } else {
         info.setAlias(uid + "");
         PushUtils.singlePushXiaoMi(info, json, pushRecord);
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }
@@ -252,7 +273,7 @@
   public void pushWelfareCenter(Long uid, String title, String content, String versions) throws PushException {
      JSONObject json = new JSONObject();
      json.put("type", "welfare");
      json.put("type", PushTypeEnum.welfare.name());
      json.put("miPushUrl", String.format("%s.ui.mine.WelfareCenterActivity",
            Constant.systemCommonConfig.getAndroidBaseactivityName()));
      // 版本推送
@@ -280,7 +301,43 @@
         }
      } else {
         info.setAlias(uid + "");
         PushUtils.singlePushXiaoMi(info, json, pushRecord);
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }
   @Override
   public void pushUserSignInNotification(Long uid, String title, String content, String versions)
         throws PushException {
      JSONObject json = new JSONObject();
      json.put("type", PushTypeEnum.signin.name());
      json.put("miPushUrl", String.format("%s.ui.goldtask.GoldTaskActivity",
            Constant.systemCommonConfig.getAndroidBaseactivityName()));
      // 版本推送
      if (versions != null && versions.trim().length() > 0) {
         json.put("app_version", versions);
      }
      MessageInfo info = new MessageInfo();
      info.setTitle(title);
      info.setContent(content);
      info.setDescription(content);
      // 小米推送网页
      info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName());
      info.setActivty(String.format("%s.ui.goldtask.GoldTaskActivity",
            Constant.systemCommonConfig.getAndroidBaseactivityName()));
      PushRecord pushRecord = new PushRecord();
      // 小米 全推
      if (uid == null || uid == 0) {
         try {
            PushUtils.allPushXiaoMi(info, json, pushRecord);
         } catch (Exception e) {
            PushLogHelper.xmError(e);
         }
      } else {
         info.setAlias(uid + "");
         PushUtils.singlePushXiaoMi(info, json, getRegIds(uid), pushRecord);
      }
   }