阿里云推送

This commit is contained in:
yiyan 2019-06-01 22:59:41 +08:00
parent 22aa395392
commit cec82bbf33
22 changed files with 123 additions and 156 deletions

View File

@ -0,0 +1,43 @@
package com.ifish7.mq.business.user.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author yan.y
* @since 2019-05-28
*/
@Data
@Accessors(chain = true)
public class TblAliyunDeviceInfo {
private static final long serialVersionUID = 1L;
/**
* 设备ID
*/
private String aliyunDeviceId;
/**
* 用户ID
*/
private Integer userId;
/**
* 绑定时间
*/
private LocalDateTime bindTime;
/**
* 最后更新时间
*/
private LocalDateTime lastUpdateTime;
}

View File

@ -1,50 +0,0 @@
package com.ifish7.mq.business.user.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalTime;
/**
* <p>
*
* </p>
*
* @author yan.y
* @since 2019-04-13
*/
@Data
@Accessors(chain = true)
@TableName("tbl_push_user_device")
public class TblPushUserDevice {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Integer pushId;
/**
* 用户ID
*/
private Integer pushUserId;
/**
* 设备ID
*/
private String pushDeviceId;
/**
* 设备绑定时间
*/
private LocalTime pushBindTime;
/**
* 设备绑定类型
*/
private String pushBindType;
}

View File

@ -0,0 +1,16 @@
package com.ifish7.mq.business.user.mapper;
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author yan.y
* @since 2019-05-28
*/
public interface TblAliyunDeviceInfoMapper extends BaseMapper<TblAliyunDeviceInfo> {
}

View File

@ -1,16 +0,0 @@
package com.ifish7.mq.business.user.mapper;
import com.ifish7.mq.business.user.entity.TblPushUserDevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author yan.y
* @since 2019-04-13
*/
public interface TblPushUserDeviceMapper extends BaseMapper<TblPushUserDevice> {
}

View File

@ -0,0 +1,16 @@
package com.ifish7.mq.business.user.service;
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author yan.y
* @since 2019-05-28
*/
public interface ITblAliyunDeviceInfoService extends IService<TblAliyunDeviceInfo> {
}

View File

@ -1,16 +0,0 @@
package com.ifish7.mq.business.user.service;
import com.ifish7.mq.business.user.entity.TblPushUserDevice;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author yan.y
* @since 2019-04-13
*/
public interface ITblPushUserDeviceService extends IService<TblPushUserDevice> {
}

View File

@ -0,0 +1,20 @@
package com.ifish7.mq.business.user.service.impl;
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
import com.ifish7.mq.business.user.mapper.TblAliyunDeviceInfoMapper;
import com.ifish7.mq.business.user.service.ITblAliyunDeviceInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author yan.y
* @since 2019-05-28
*/
@Service
public class TblAliyunDeviceInfoServiceImpl extends ServiceImpl<TblAliyunDeviceInfoMapper, TblAliyunDeviceInfo> implements ITblAliyunDeviceInfoService {
}

View File

@ -7,16 +7,16 @@ import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.push.model.v20160801.PushRequest;
import com.aliyuncs.push.model.v20160801.PushResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ifish7.mq.business.user.entity.TblAliyunDeviceInfo;
import com.ifish7.mq.business.user.entity.TblPushList;
import com.ifish7.mq.business.user.entity.TblPushUserDevice;
import com.ifish7.mq.business.user.entity.TblUser;
import com.ifish7.mq.business.user.service.ITblAliyunDeviceInfoService;
import com.ifish7.mq.business.user.service.ITblPushListService;
import com.ifish7.mq.business.user.service.ITblPushUserDeviceService;
import com.ifish7.mq.business.user.service.ITblUserService;
import lombok.extern.log4j.Log4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
/**
@ -46,11 +46,11 @@ public class AliyunPushApi {
@Autowired
private ITblPushListService pushListService;
@Autowired
private ITblUserService userService;
// @Autowired
// private ITblUserService userService;
@Autowired
private ITblPushUserDeviceService pushUserDeviceService;
private ITblAliyunDeviceInfoService aliyunDeviceInfoService;
public void advancedPush(TblPushList pushList){
@ -72,7 +72,7 @@ public class AliyunPushApi {
//推送类型
pushRequest.setPushType(PUSH_TYPE);
//推送设备类型
pushRequest.setDeviceType(PHONE_TYPE);
pushRequest.setDeviceType(pushList.getPhoneType().toUpperCase().equals("IOS") ? "iOS" : pushList.getPhoneType().toUpperCase());
// 消息的标题
pushRequest.setTitle(pushList.getPushTitle());
// 消息的内容
@ -83,13 +83,14 @@ public class AliyunPushApi {
//android通知设置
pushRequest.setAndroidOpenType("APPLICATION");
pushRequest.setAndroidNotifyType("BOTH");
pushRequest.setAndroidNotificationChannel("1");
// pushRequest.setAndroidNotificationChannel("1");
try {
PushResponse response = client.getAcsResponse(pushRequest);
pushList.setReportId(Integer.parseInt(response.getMessageId()));
//未读
pushList.setIsRead(1);
pushList.setDeviceId(pushList.getDeviceId() == 0 ? null : pushList.getDeviceId());
pushListService.save(pushList);
} catch (ClientException e) {
log.error(e.getMessage(),e);
@ -102,10 +103,10 @@ public class AliyunPushApi {
private String getUserDevices(String userId){
//查询出userId所对应的所有的deviceId
List<TblPushUserDevice> pushUserDevices = pushUserDeviceService.list(new QueryWrapper<TblPushUserDevice>().lambda().eq(TblPushUserDevice::getPushUserId, userId));
List<TblAliyunDeviceInfo> pushUserDevices = aliyunDeviceInfoService.list(new QueryWrapper<TblAliyunDeviceInfo>().lambda().eq(TblAliyunDeviceInfo::getUserId, userId));
StringBuilder deviceIds = new StringBuilder();
for (TblPushUserDevice pushUserDevice : pushUserDevices) {
deviceIds.append(pushUserDevice.getPushDeviceId()).append(",");
for (TblAliyunDeviceInfo aliyunDeviceInfo : pushUserDevices) {
deviceIds.append(aliyunDeviceInfo.getAliyunDeviceId()).append(",");
}
return deviceIds.toString();
}

View File

@ -1,12 +1,12 @@
jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc\:mysql\://localhost\:3306/myfishdb?characterEncoding\=UTF-8
jdbc.url=jdbc\:mysql\://139.196.24.156\:3306/myfishdb?characterEncoding\=UTF-8
jdbc.url=jdbc\:mysql\://localhost\:3306/myfishdb?characterEncoding\=UTF-8
#jdbc.url=jdbc\:mysql\://139.196.24.156\:3306/myfishdb?characterEncoding\=UTF-8
#jdbc.username=root
#jdbc.password=123456
#jdbc.username=ifish
#jdbc.password=ifish7pwd
jdbc.username=root
jdbc.password=ifish7mysql
jdbc.username=ifish
jdbc.password=ifish7pwd
#jdbc.username=root
#jdbc.password=ifish7mysql
#jdbc.testWhileIdle=true
jdbc.validationQuery=SELECT * FROM DUAL
initialSize=1

View File

@ -16,4 +16,6 @@ log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[ifishMQ][%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
log4j.logger.org.springframework=INFO
log4j.logger.org.apache.activemq=INFO
log4j.logger.org.apache.http=INFO

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblDeviceHeaterMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblDeviceMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblFactoryHardwareMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblFactoryListMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblHardwareTypeMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.device.mapper.TblLoginRecordMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.user.mapper.TblDeviceUserMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.user.mapper.TblPushListMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.user.mapper.TblPushUserDeviceMapper">
</mapper>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ifish7.mq.business.user.mapper.TblUserMapper">
</mapper>

View File

@ -1,4 +1,5 @@
broker_url=tcp://test.ifish7.com:61616
#broker_url=tcp://test.ifish7.com:61616
broker_url=tcp://www.ifish7.com:61616
username=admin
#password=admin
password=adminifish7

View File

@ -45,11 +45,11 @@ public class AliyunPushApiTest {
pushRequest.setAcceptFormat(FormatType.JSON);
//根据Target来设定多个值使用逗号分隔
//此处应该查询出用户所对应的deviceId
pushRequest.setTargetValue("c17c0590e8254b6b977b8fd7706fa8c2");
pushRequest.setTargetValue("bfde2078565a434aa6636419347fcd33,39a5f06b94324eef87e5665653b42367");
//推送类型
pushRequest.setPushType("NOTICE");
//推送设备类型
pushRequest.setDeviceType("ANDROID");
pushRequest.setDeviceType("ALL");
// 消息的标题
pushRequest.setTitle("温度报警");
// 消息的内容
@ -59,10 +59,10 @@ public class AliyunPushApiTest {
pushRequest.setAndroidNotifyType("BOTH");//通知的提醒方式 "VIBRATE" : 震动 "SOUND" : 声音 "BOTH" : 声音和震动 NONE : 静音
pushRequest.setAndroidOpenType("APPLICATION"); //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
// 指定notificaitonchannel id
pushRequest.setAndroidNotificationChannel("1");
// pushRequest.setAndroidNotificationChannel("1");
try {
PushResponse response = client.getAcsResponse(pushRequest);
log.info(response);
log.info(response.getMessageId());
} catch (ClientException e) {
e.printStackTrace();
}