登陆,极光推送修改

This commit is contained in:
谢洪龙 2017-07-26 10:46:46 +08:00
parent 28bd9d64f7
commit 22712b91c4
9 changed files with 176 additions and 23 deletions

View File

@ -5,10 +5,75 @@
*/ */
package com.ifish.API; package com.ifish.API;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
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.Notification;
import java.util.Map;
import org.springframework.stereotype.Component;
/** /**
* *
* @author Administrator * @author Administrator
*/ */
@Component
public class JiGuangPush { public class JiGuangPush {
private static JPushClient jPushClient = null;
//正式
// private static final String masterSecret = "60162c8cf195ce9f4dc76629";
// private static final String appKey = "d970d5e193cb2a0bbe41653c";
//测试
private final static String masterSecret = "4f759a0609dcd9d2edb06125";
private final static String appKey = "6e5e9d757570859b3f274bb8";
static {
jPushClient = new JPushClient(masterSecret, appKey);
}
/**
* 向安卓手机推送一条信息
*
* @param message
* @return
*/
public boolean pushMessageByAndroid(String title, String message, String userId, Map map) {
try {
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.alias(userId))
.setNotification(Notification.android(title, message, map))
.build();
PushResult result = jPushClient.sendPush(payload);
if (result.msg_id > 0 && result.isResultOK()) {
return true;
}
} catch (Exception e) {
}
return false;
}
public boolean pushMessageByIOS(String title, String message, String userId, Map map) {
try {
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.alias(userId))
.setNotification(Notification.ios(message, map))
.build();
PushResult result = jPushClient.sendPush(payload);
if (result.msg_id > 0 && result.isResultOK()) {
return true;
}
} catch (Exception e) {
String b = e.getMessage();
String a = "";
}
return false;
}
} }

View File

@ -33,7 +33,7 @@ public class Device {
* @param macAddress * @param macAddress
* @return * @return
*/ */
@RequestMapping(value = "/bindDevice.do", method = RequestMethod.POST) @RequestMapping(value = "/bindDevice.do", method = RequestMethod.GET)
public Object bindDevice(Integer userId, String macAddress) { public Object bindDevice(Integer userId, String macAddress) {
try { try {
return deviceHelperI.bindDevice(userId, macAddress); return deviceHelperI.bindDevice(userId, macAddress);

View File

@ -6,10 +6,7 @@
package com.ifish.controller; package com.ifish.controller;
import com.ifish.bean.Tbl_User; import com.ifish.bean.Tbl_User;
import com.ifish.enums.ResultEnum;
import com.ifish.helper.UserHelperI; import com.ifish.helper.UserHelperI;
import com.ifish.util.IfishUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -87,8 +84,8 @@ public class Login {
* @return * @return
*/ */
@RequestMapping(value = "/touristLogin.do", method = RequestMethod.POST) @RequestMapping(value = "/touristLogin.do", method = RequestMethod.POST)
public Object touristLogin() { public Object touristLogin(String loginType) {
return userHelperI.touristRegister(); return userHelperI.touristRegister(loginType);
} }
/** /**

View File

@ -5,10 +5,12 @@
*/ */
package com.ifish.helper; package com.ifish.helper;
import com.ifish.API.JiGuangPush;
import com.ifish.bean.Tbl_Activa_Code; import com.ifish.bean.Tbl_Activa_Code;
import com.ifish.bean.Tbl_Device; import com.ifish.bean.Tbl_Device;
import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_Statistics;
import com.ifish.bean.Tbl_Device_User; import com.ifish.bean.Tbl_Device_User;
import com.ifish.bean.Tbl_Push_List;
import com.ifish.bean.Tbl_User; import com.ifish.bean.Tbl_User;
import com.ifish.enums.PushTypeEnum; import com.ifish.enums.PushTypeEnum;
import com.ifish.enums.ResultEnum; import com.ifish.enums.ResultEnum;
@ -28,16 +30,16 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class DeviceHelper implements DeviceHelperI { public class DeviceHelper implements DeviceHelperI {
@Autowired @Autowired
private RedisHelperI redisHelperI; private RedisHelperI redisHelperI;
@Autowired @Autowired
private RedisKeyHelperI redisKeyHelperI; private RedisKeyHelperI redisKeyHelperI;
@Autowired @Autowired
private Tbl_Device_Mapper tbl_Device_Mapper; private Tbl_Device_Mapper tbl_Device_Mapper;
@Autowired @Autowired
private UserHelperI userHelperI; private UserHelperI userHelperI;
@ -204,7 +206,7 @@ public class DeviceHelper implements DeviceHelperI {
*/ */
@Override @Override
public Object bindDevice(Integer userId, String mackAddress) { public Object bindDevice(Integer userId, String mackAddress) {
try { try {
Tbl_User tmpUser = userHelperI.getUserById(userId); Tbl_User tmpUser = userHelperI.getUserById(userId);
//用户存在 //用户存在
@ -226,7 +228,7 @@ public class DeviceHelper implements DeviceHelperI {
if (tmpDdeviceUser != null) { if (tmpDdeviceUser != null) {
//原先不是主控制则删除其他用户关联关系 //原先不是主控制则删除其他用户关联关系
if (!tmpDdeviceUser.getIsMaster().equals("1")) { if (!tmpDdeviceUser.getIsMaster().equals("1")) {
for (Tbl_Device_User du : deviceUserList) { for (Tbl_Device_User du : deviceUserList) {
Integer userid = du.getUserId(); Integer userid = du.getUserId();
Integer deviceId = du.getDeviceId(); Integer deviceId = du.getDeviceId();
@ -249,7 +251,7 @@ public class DeviceHelper implements DeviceHelperI {
jPushNotifcation(baseMap, pushMap); jPushNotifcation(baseMap, pushMap);
} }
tbl_Device_Mapper.deleteDeviceUserById(du.getId()); tbl_Device_Mapper.deleteDeviceUserById(du.getId());
redisKeyHelperI.deleteRedisByTbl_Device_User(tmpDdeviceUser);
} }
} }
//变更为主控 //变更为主控
@ -258,7 +260,7 @@ public class DeviceHelper implements DeviceHelperI {
tmpDdeviceUser.setUpdateTime(date); tmpDdeviceUser.setUpdateTime(date);
tmpDdeviceUser.setCreateTime(date); tmpDdeviceUser.setCreateTime(date);
tbl_Device_Mapper.updateTblDeviceUser(tmpDdeviceUser); tbl_Device_Mapper.updateTblDeviceUser(tmpDdeviceUser);
redisKeyHelperI.deleteRedisByTbl_Device_User(tmpDdeviceUser);
deviceUser.setShowName(tmpDdeviceUser.getShowName()); deviceUser.setShowName(tmpDdeviceUser.getShowName());
deviceUser.setIsMaster(tmpDdeviceUser.getIsMaster()); deviceUser.setIsMaster(tmpDdeviceUser.getIsMaster());
} //未绑定过 } //未绑定过
@ -286,6 +288,7 @@ public class DeviceHelper implements DeviceHelperI {
jPushNotifcation(baseMap, pushMap); jPushNotifcation(baseMap, pushMap);
} }
tbl_Device_Mapper.deleteDeviceUserById(du.getId()); tbl_Device_Mapper.deleteDeviceUserById(du.getId());
redisKeyHelperI.deleteRedisByTbl_Device_User(du);
} }
//需要新增 //需要新增
bln = true; bln = true;
@ -309,6 +312,7 @@ public class DeviceHelper implements DeviceHelperI {
//修改设备统计信息 //修改设备统计信息
ds.setFirstActivate(new Date()); ds.setFirstActivate(new Date());
tbl_Device_Mapper.updateDeviceStatistics(ds); tbl_Device_Mapper.updateDeviceStatistics(ds);
redisKeyHelperI.deleteRedisByTbl_Device_Statistics(ds);
} }
} }
} //设备不存在 } //设备不存在
@ -434,7 +438,7 @@ public class DeviceHelper implements DeviceHelperI {
camera.setActiveTime(date); camera.setActiveTime(date);
camera.setUpdateTime(date); camera.setUpdateTime(date);
int i = tbl_Device_Mapper.updateTbl_Device(camera); int i = tbl_Device_Mapper.updateTbl_Device(camera);
activa_Code.setIsUsed("1"); activa_Code.setIsUsed("1");
tbl_Device_Mapper.updateTblActivaCodeIsUse(activeCode); tbl_Device_Mapper.updateTblActivaCodeIsUse(activeCode);
return IfishUtil.returnJson(ResultEnum.success.getKey(), ""); return IfishUtil.returnJson(ResultEnum.success.getKey(), "");
@ -460,10 +464,10 @@ public class DeviceHelper implements DeviceHelperI {
*/ */
@Override @Override
public Object updateDeviceUser(Tbl_Device_User device) { public Object updateDeviceUser(Tbl_Device_User device) {
try { try {
Tbl_Device_User olDevice_User = getDeviceUserByUserId_DeviceId(device.getUserId(), device.getDeviceId()); Tbl_Device_User olDevice_User = getDeviceUserByUserId_DeviceId(device.getUserId(), device.getDeviceId());
if (device != null) { if (device != null) {
if (olDevice_User != null) { if (olDevice_User != null) {
device.setId(olDevice_User.getId()); device.setId(olDevice_User.getId());
@ -496,7 +500,7 @@ public class DeviceHelper implements DeviceHelperI {
Tbl_Device_User olDevice_User = getDeviceUserByUserId_CameraId(device_User.getUserId(), cameraId.toString()); Tbl_Device_User olDevice_User = getDeviceUserByUserId_CameraId(device_User.getUserId(), cameraId.toString());
if (olDevice_User != null) { if (olDevice_User != null) {
if (olDevice_User != null) { if (olDevice_User != null) {
device_User.setId(olDevice_User.getId()); device_User.setId(olDevice_User.getId());
int i = tbl_Device_Mapper.updateTblDeviceUser(device_User); int i = tbl_Device_Mapper.updateTblDeviceUser(device_User);
if (i > 0) { if (i > 0) {
@ -567,6 +571,12 @@ public class DeviceHelper implements DeviceHelperI {
} }
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), ""); return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
} }
@Autowired
private JiGuangPush jiGuangPush;
@Autowired
private PushMessageHelperI pushMessageHelperI;
/** /**
* 极光推送 * 极光推送
@ -575,7 +585,52 @@ public class DeviceHelper implements DeviceHelperI {
*/ */
public boolean jPushNotifcation(Map<String, String> baseMap, Map<String, String> pushMap) { public boolean jPushNotifcation(Map<String, String> baseMap, Map<String, String> pushMap) {
try { try {
//登录类型
String loginType = baseMap.get("loginType");
if (loginType != null) {
//推送消息类型
String msgType = pushMap.get("msg_type");
String userId = baseMap.get("user_id");
String title = baseMap.get("title");
String content = baseMap.get("content");
boolean result = false;
if (loginType.equals("ios")) {
result = jiGuangPush.pushMessageByIOS(title, content, userId, pushMap);
} else if (loginType.equals("android")) {
result = jiGuangPush.pushMessageByAndroid(title, content, userId, pushMap);
}
//推送记录
Tbl_Push_List pushList = new Tbl_Push_List();
if (msgType.equals(PushTypeEnum.remove_device.getKey())) {
pushList.setUserId(Integer.valueOf(userId));
pushList.setDeviceId(Integer.valueOf(pushMap.get("device_id")));
pushList.setPhoneType(loginType);
pushList.setShowName(pushMap.get("showName"));
pushList.setPushType(msgType);
pushList.setPushTitle(title);
pushList.setPushContext(content);
pushList.setJpushStatus(result ? "1" : "0");
pushList.setCreateTime(new Date());
pushMessageHelperI.save(pushList);
return true;
} //发送看护报告推送
else if (msgType.equals(PushTypeEnum.send_report.getKey())) {
String reportId = baseMap.get("reportId");
if (reportId != null) {
pushList.setReportId(Integer.valueOf(reportId));
}
pushList.setUserId(Integer.valueOf(userId));
pushList.setPhoneType(loginType);
pushList.setPushType(msgType);
pushList.setPushTitle(title);
pushList.setPushContext(content);
pushList.setPushLink(pushMap.get("push_link"));
pushList.setJpushStatus(result ? "1" : "0");
pushList.setCreateTime(new Date());
pushMessageHelperI.save(pushList);
return true;
}
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(); throw new RuntimeException();
} }

View File

@ -109,4 +109,18 @@ public class PushMessageHelper implements PushMessageHelperI {
} }
return list; return list;
} }
@Override
public Tbl_Push_List save(Tbl_Push_List pushList) {
try {
int i = tbl_Push_List_Mapper.saveTbl_Push_List(pushList);
if (i > 0) {
return pushList;
} else {
return null;
}
} catch (Exception e) {
return null;
}
}
} }

View File

@ -5,6 +5,8 @@
*/ */
package com.ifish.helper; package com.ifish.helper;
import com.ifish.bean.Tbl_Push_List;
/** /**
* *
* @author Administrator * @author Administrator
@ -30,4 +32,6 @@ public interface PushMessageHelperI {
* @return * @return
*/ */
Object deletePushList(Integer userId, Integer pushId); Object deletePushList(Integer userId, Integer pushId);
Tbl_Push_List save(Tbl_Push_List pushList);
} }

View File

@ -76,6 +76,10 @@ public class UserHelper implements UserHelperI {
public Object login(Tbl_User user) { public Object login(Tbl_User user) {
try { try {
Tbl_User tmpUser = null; Tbl_User tmpUser = null;
//登陆手机类型为空返回参数错误
if (StringUtils.isBlank(user.getLoginType())) {
return IfishUtil.returnJson(ResultEnum.error401.getKey(), "");
}
//如果用户手机不为空进行手机登陆 //如果用户手机不为空进行手机登陆
if (StringUtils.isNotBlank(user.getPhoneNumber())) { if (StringUtils.isNotBlank(user.getPhoneNumber())) {
tmpUser = tbl_User_Mapper.getUserByPhoneNumber(user.getPhoneNumber()); tmpUser = tbl_User_Mapper.getUserByPhoneNumber(user.getPhoneNumber());
@ -93,7 +97,7 @@ public class UserHelper implements UserHelperI {
if (tmpUser != null) { if (tmpUser != null) {
return touristLogin(tmpUser); return touristLogin(tmpUser);
} else { } else {
return touristRegister(); return touristRegister(user.getLoginType());
} }
} }
//密码不正确 //密码不正确
@ -319,9 +323,13 @@ public class UserHelper implements UserHelperI {
* @return * @return
*/ */
@Override @Override
public Object touristRegister() { public Object touristRegister(String loginType) {
Tbl_User user = new Tbl_User(); Tbl_User user = new Tbl_User();
if (StringUtils.isBlank(loginType)) {
return IfishUtil.returnJson(ResultEnum.error401.getKey(), "");
}
user.setUserType("0"); user.setUserType("0");
user.setLoginType(loginType);
int i = tbl_User_Mapper.insertUserByTourist(user); int i = tbl_User_Mapper.insertUserByTourist(user);
Map result = new HashMap(); Map result = new HashMap();
if (i > 0 && user.getUserId() > 0) { if (i > 0 && user.getUserId() > 0) {

View File

@ -39,7 +39,7 @@ public interface UserHelperI {
* *
* @return * @return
*/ */
public Object touristRegister(); public Object touristRegister(String loginType);
/** /**
* 封装设备返回信息 * 封装设备返回信息

View File

@ -8,6 +8,7 @@ package com.ifish.mapper;
import com.ifish.bean.Tbl_Push_List; import com.ifish.bean.Tbl_Push_List;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
@ -60,4 +61,13 @@ public interface Tbl_Push_List_Mapper {
@Select("SELECT COUNT(1) FROM TBL_PUSH_LIST WHERE user_id = #{userid} AND push_type = #{pushtype} LIMIT ${first},${pagesize}") @Select("SELECT COUNT(1) FROM TBL_PUSH_LIST WHERE user_id = #{userid} AND push_type = #{pushtype} LIMIT ${first},${pagesize}")
Integer getPushListCount(@Param("userid") Integer userId, @Param("pushtype") String pushType, @Param("pagesize") Integer pageSize, @Param("first") Integer firstResult); Integer getPushListCount(@Param("userid") Integer userId, @Param("pushtype") String pushType, @Param("pagesize") Integer pageSize, @Param("first") Integer firstResult);
/**
* 插入一条推送信息
*
* @param tbl_Push_List
* @return
*/
@Insert("INSERT INTO TBL_PUSH_LIST(user_id,device_id,show_name,phone_type,push_type,push_title,push_context,create_time,push_link,jpush_status,google_status,report_id,mcu_count,modular_count,router_count,server_count,server_try_count) VALUES (#{push.userId},#{push.deviceId},#{push.showName},#{push.phoneType},"
+ "#{push.pushType},#{push.pushTitle},#{push.pushContext},NOW(),#{push.pushLink},#{push.jpushStatus},#{push.googleStatus},#{push.reportId},#{push.mcuCount},#{push.modularCount},#{push.routerCount},#{push.serverCount},#{push.serverTryCount})")
Integer saveTbl_Push_List(@Param("push") Tbl_Push_List tbl_Push_List);
} }