package com.appleframework.message.provider.plus.push;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
import com.appleframework.config.core.PropertyConfigurer;
import com.appleframework.message.model.PushMessage;
import com.appleframework.message.provider.plus.PushMessagePlus;
import com.appleframework.message.provider.utils.bean.PushResponse;
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.APIRequestException;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Options;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
public class JPushPlus implements PushMessagePlus {
private final static Logger logger = LoggerFactory.getLogger(JPushPlus.class);
private JPushClient jpushClient;
private String appKey;
private String appSecret;
/***
* 实时推送APP 报警信息
* @param type
* @param time
* @throws Exception
*/
private PushResponse push(PushMessage message) {
PushResponse andPushResponse = pushAndroid(message);
PushResponse iosPushResponse = pushIos(message);
if(andPushResponse.isResultOK())
return andPushResponse;
else
return iosPushResponse;
}
/***
* 实时推送APP 报警信息
* @param type
* @param time
* @throws Exception
*/
public PushResponse pushAndroid(PushMessage message) {
PushResult andResult = null;
PushPayload andPushPayload = null;
//Message msg = null;
int mode = message.getMode();
Map<String, String> data = message.getData();
PushResponse pushResponse = new PushResponse();
/*if(data.size() > 0) {
msg = Message.newBuilder().setMsgContent(message.getContent()).addExtras(data).build();
}
else {
msg = Message.newBuilder().setMsgContent(message.getContent()).build();
}*/
String pmsg = "";
if(mode == PushMessage.MESSAGE_MODE_BROADCAST) {
andPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(message.getTitle())
.setAlert(message.getContent())
//.setBadge(1)
//.setSound("default")
.addExtras(data)
.build())
.build())
/*.setMessage(msg)*/.build();
}
else if(mode == PushMessage.MESSAGE_MODE_MULTICAST) {
String receiver = message.getReceiver();
String[] tags = receiver.split(",");
andPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.tag(tags))
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(message.getTitle())
.setAlert(message.getContent())
//.setBadge(1)
//.setSound("default")
.addExtras(data)
.build())
.build())
/*.setMessage(msg)*/.build();
}
else {
String receiver = message.getReceiver();
String[] alias = receiver.split(",");
andPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.alias(alias))
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(message.getTitle())
.setAlert(message.getContent())
//.setBadge(1)
//.setSound("default")
.addExtras(data)
.build())
.build())
/*.setMessage(msg)*/.build();
}
try {
andResult = jpushClient.sendPush(andPushPayload);
logger.info("ios push = " + andPushPayload.toString());
//result = jpushIos.sendIosNotificationWithAlias(msgContent, extras, alias);
} catch (APIRequestException e) {
logger.error(e.getMessage());
pmsg = e.getMessage();
pushResponse.setMsgId(String.valueOf(e.getMsgId()));
} catch (Exception e) {
logger.error(e.getMessage(), e);
pmsg = e.getMessage();
}
if(null != andResult) {
pmsg = JSON.toJSONString(andResult);
pushResponse.setMsgId(String.valueOf(andResult.msg_id));
}
pushResponse.setMsgReturn(pmsg);
if(null != andResult && andResult.isResultOK()) {
pushResponse.setResultOK(andResult.isResultOK());
}
return pushResponse;
}
/***
* 实时推送APP 报警信息
* @param type
* @param time
* @throws Exception
*/
public PushResponse pushIos(PushMessage message) {
String apnsProduction = PropertyConfigurer.getValue("apns.production", "false");
PushResult iosResult = null;
PushPayload iosPushPayload = null;
int type = message.getMode();
Map<String, String> data = message.getData();
/*if(data.size() > 0) {
msg = Message.newBuilder().setMsgContent(message.getContent()).addExtras(data).build();
}
else {
msg = Message.newBuilder().setMsgContent(message.getContent()).build();
}*/
PushResponse pushResponse = new PushResponse();
String pmsg = "";
if(type == PushMessage.MESSAGE_MODE_BROADCAST) {
iosPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(message.getContent())
//.setBadge(1)
//.setSound("default")
.addExtras(data)
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(Boolean.valueOf(apnsProduction)).build())
/*.setMessage(msg)*/.build();
}
else if(type == PushMessage.MESSAGE_MODE_MULTICAST) {
String receiver = message.getReceiver();
String[] tags = receiver.split(",");
iosPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.tag(tags))
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(message.getContent())
//.setBadge(1)
//.setSound("default")
.addExtras(data)
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(Boolean.valueOf(apnsProduction)).build())
/*.setMessage(msg)*/.build();
}
else {
String receiver = message.getReceiver();
String[] alias = receiver.split(",");
iosPushPayload = PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.alias(alias))
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(message.getContent())
//.setBadge(1)
//.se
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了代码和底层硬件之间的中介。 面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。
资源推荐
资源详情
资源评论
收起资源包目录
消息系统(短信,推送,邮件)等统一发送管理.zip (116个子文件)
.gitignore 78B
JPushPlus.java 9KB
SmsPlusGuodu.java 8KB
HttpUtils.java 7KB
SmsPlusYunpian.java 5KB
MailSendServiceImpl.java 5KB
SmsTemplateServiceImpl.java 5KB
EMailPlus.java 5KB
MailTemplateServiceImpl.java 4KB
PushTemplateServiceImpl.java 4KB
PushMessageServiceImpl.java 4KB
SmsPlusChanzor.java 4KB
SmsCaptchaServiceImpl.java 4KB
SmsSendServiceImpl.java 3KB
PushLog.java 3KB
ThirdAuthServiceImpl.java 3KB
PushMessageTest.java 3KB
UploadFileUtils.java 3KB
SmsLog.java 3KB
MailLog.java 3KB
SmsCaptcha.java 3KB
PushLogSo.java 3KB
MailTemplate.java 2KB
PushTemplate.java 2KB
PushMessage.java 2KB
ThirdAuth.java 2KB
SmsTemplate.java 2KB
MessagePlusServiceImpl.java 2KB
MailMessage.java 2KB
UploadFile.java 2KB
SmsTemplateService.java 2KB
PushLogBo.java 1KB
ThirdAuthInterceptor.java 1KB
SmsSendTask.java 1KB
MD5Utils.java 1KB
MailAuthenticator.java 1KB
SmsLogServiceImpl.java 1KB
PushTemplateInterceptor.java 1KB
SmsTemplateInterceptor.java 1KB
PushLogServiceImpl.java 1KB
MailLogServiceImpl.java 1KB
SmsCaptchServiceTest.java 1KB
MessageException.java 1KB
MailTemplateService.java 1KB
PushTemplateService.java 1KB
SerializationUtils.java 1KB
SmsMessage.java 966B
MailSendServiceTest.java 870B
SmsSendServiceTest.java 867B
ThirdAuthService.java 833B
SmsCode.java 789B
SmsResult.java 758B
ResourceKeyGenerator.java 735B
PushResponse.java 714B
MailSendService.java 686B
CacheTest.java 673B
SmsLogService.java 618B
ThirdAuthExtendMapper.java 595B
PushMessageConsumer.java 555B
MailTemplateExtendMapper.java 554B
PushTemplateExtendMapper.java 554B
SmsTemplateExtendMapper.java 549B
StarterMessageTest.java 522B
MailTemplateMapper.java 508B
PushTemplateMapper.java 508B
SmsTemplateMapper.java 501B
PushLogExtendDao.java 496B
ThirdAuthMapper.java 487B
ThirdAuthSo.java 483B
PushLogMapper.java 473B
MailLogMapper.java 473B
SmsLogMapper.java 466B
SmsSendService.java 450B
MailLogService.java 419B
PushLogService.java 419B
SmsCaptchaService.java 402B
MailMessagePlus.java 341B
Contants.java 303B
PushMessagePlus.java 293B
MessagePlusService.java 285B
SmsMessagePlus.java 269B
PushMessageService.java 256B
MessagePlus.java 248B
ThirdAuthType.java 198B
log4j.properties 1KB
log4j.properties 778B
biz-message_zh_CN.properties 729B
system.properties 170B
system.properties 160B
start.sh 3KB
dump.sh 2KB
server.sh 857B
stop.sh 832B
restart.sh 192B
PushLogMapper.xml 8KB
MailLogMapper.xml 7KB
SmsLogMapper.xml 7KB
PushTemplateMapper.xml 6KB
MailTemplateMapper.xml 6KB
ThirdAuthMapper.xml 6KB
共 116 条
- 1
- 2
资源评论
JJJ69
- 粉丝: 6212
- 资源: 5783
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计科11班未参与实习认知名单.xlsx
- Java 使用回溯法解决01背包问题(含算法原理和代码)
- 毕业答辩模板2016超值实用黑板风毕业论文答辩模版
- 大学生创新创业的心得.doc
- MMDF3N06HDR2G-VB一款SOP8封装2个N-Channel场效应MOS管
- 毕业答辩模板2016超值实用黑板风毕业论文答辩模版(赠手绘图表)
- 毕业答辩模板(中文版式)黑白风毕业论文答辩通用PPT模板B-14
- MMDF3N04HDR2G-VB一款SOP8封装2个N-Channel场效应MOS管
- MMDF3301-VB一款SOP8封装2个P-Channel场效应MOS管
- 毕业答辩模板(医药专业)红色医药论文答辩模板
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功