package com.yeshi.fanli.service.impl.push; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.mybatis.AppVersionInfoMapper; import com.yeshi.fanli.entity.AppVersionInfo; import com.yeshi.fanli.entity.bus.user.AccountMessage; 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.PushLogHelper; import com.yeshi.fanli.service.inter.push.XMPushService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.push.PushUtils; import net.sf.json.JSONObject; @Service public class XMPushServiceImpl implements XMPushService { @Resource private AppVersionInfoMapper appVersionInfoMapper; @Override public void pushGoods(Long uid, Long auctionId, String title, String content) throws PushException { String gid = auctionId + ""; 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("miPushUrl", String.format("%s.ui.recommend.GoodsBrowserActivity", Constant.systemCommonConfig.getAndroidBaseactivityName())); MessageInfo info = new MessageInfo(); info.setTitle(title); info.setContent(content); info.setDescription(content); info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); info.setActivty(String.format("%s.ui.recommend.GoodsBrowserActivity", 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, pushRecord); } } @Override public void pushUrl(Long uid, String url, String title, String content) throws PushException { JSONObject json = new JSONObject(); json.put("url", url); json.put("type", "url"); json.put("webUrl", url); json.put("miPushUrl", String.format("%s.ui.invite.ShareBrowserActivity", Constant.systemCommonConfig.getAndroidBaseactivityName())); MessageInfo info = new MessageInfo(); info.setTitle(title); info.setContent(content); info.setDescription(content); // 小米推送网页 info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); info.setActivty(String.format("%s.ui.invite.ShareBrowserActivity", 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, pushRecord); } } @Override public void pushZNX(Long uId, AccountMessage msg, SystemZnx systemZNX) throws PushException { MessageInfo info = new MessageInfo(); info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); JSONObject contentJson = new JSONObject(); contentJson.put("isOpen", 0); contentJson.put("createTime", java.lang.System.currentTimeMillis()); /* 无uid , 广播 数据插入系统表 */ if (systemZNX != null) { info.setTitle(systemZNX.getTitle()); info.setContent(systemZNX.getContent()); contentJson.put("title", systemZNX.getTitle()); contentJson.put("content", systemZNX.getContent()); info.setDescription(systemZNX.getContent()); // 小米开始全推 long id = systemZNX.getId(); contentJson.put("id", id); JSONObject json = new JSONObject(); json.put("type", "ZNX"); json.put("content", contentJson); json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity", Constant.systemCommonConfig.getAndroidBaseactivityName())); PushRecord pushRecord = new PushRecord(); // 小米 全推 try { PushUtils.allPushXiaoMi(info, json, pushRecord); } catch (Exception e1) { PushLogHelper.xmError(e1); } } else if (msg != null) { info.setTitle(msg.getTitle()); info.setContent(msg.getContent()); contentJson.put("title", msg.getTitle()); contentJson.put("content", msg.getContent()); info.setDescription(msg.getContent()); // 插入推送记录 PushRecord pushRecord = new PushRecord(); info.setAlias(uId + ""); info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); info.setActivty( String.format("%s.ui.BrowserActivity", Constant.systemCommonConfig.getAndroidBaseactivityName())); contentJson.put("id", msg.getId() + ""); JSONObject json = new JSONObject(); json.put("type", "ZNX"); json.put("content", contentJson); json.put("miPushUrl", String.format("%s.ui.mine.AppMailDetailActivity", Constant.systemCommonConfig.getAndroidBaseactivityName())); // 小米 单推 try { PushUtils.singlePushXiaoMi(info, json, pushRecord); } catch (Exception e) { PushLogHelper.xmError(e); } } } @Override public void pushWEEX(Long uid, String title, String content, String weexUrl) throws PushException { // TODO 推送weex页面 JSONObject json = new JSONObject(); json.put("url", weexUrl); json.put("type", "weex"); // 设置可推送版本,1.4.8以后的版本可推送 json.put("app_version", getVersionByMinVersionCode(31)); MessageInfo info = new MessageInfo(); info.setTitle(title); info.setContent(content); info.setDescription(content); // 小米推送网页 info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); info.setActivty(String.format("%s.ui.mine.weex.WeexApplicationActivity", 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, pushRecord); } } private String getVersionByMinVersionCode(int versionCode) { List list = appVersionInfoMapper .listByPlatformAndMinVersionCode(AppVersionInfo.PLATFORM_ANDROID, versionCode); String versions = ""; if (list != null) for (AppVersionInfo appVersion : list) { versions += appVersion.getVersion() + ","; } if (versions.endsWith(",")) versions = versions.substring(0, versions.length() - 1); return versions; } @Override public void pushBaiChuanUrl(Long uid, String title, String content, String url) throws PushException { JSONObject json = new JSONObject(); json.put("url", url); json.put("type", "baichuan"); // 设置可推送版本,1.4.8以后的版本可推送 json.put("app_version", getVersionByMinVersionCode(31)); MessageInfo info = new MessageInfo(); info.setTitle(title); info.setContent(content); info.setDescription(content); // 小米推送网页 info.setPackageName(Constant.systemCommonConfig.getAndroidPackageName()); 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, pushRecord); } } }