package com.yeshi.fanli.controller.client;
|
|
import java.io.PrintWriter;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.push.DeviceTokenIOS;
|
import com.yeshi.fanli.entity.system.System;
|
import com.yeshi.fanli.service.inter.config.SystemService;
|
import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
|
import com.yeshi.fanli.service.inter.push.IOSPushService;
|
import com.yeshi.fanli.service.inter.push.PushRecordService;
|
import com.yeshi.fanli.util.StringUtil;
|
import org.yeshi.utils.JsonUtil;
|
|
@Controller
|
@RequestMapping(value = "api/v1/push")
|
public class PushController {
|
|
@Resource
|
private SystemService systemService;
|
|
@Resource
|
private PushRecordService pushRecordService;
|
|
@Resource
|
private IOSPushService iosPushService;
|
|
@Resource
|
private DeviceTokenHWService deviceTokenHWService;
|
|
@RequestMapping(value = "callback", method = RequestMethod.POST)
|
public void callback(AcceptData acceptData, String pushId, PrintWriter out) {
|
System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
|
if (system == null) {
|
out.print(JsonUtil.loadFalseResult("不存在该系统"));
|
return;
|
}
|
int platform = system.getPlatform();
|
if (platform == 1) {
|
pushRecordService.increaseByAndroid(pushId);
|
} else {
|
pushRecordService.increaseByIOS(pushId);
|
}
|
out.print(JsonUtil.loadTrueResult("回调成功"));
|
}
|
|
/**
|
*
|
* 插入苹果推送的deviceToken
|
*
|
* @author mawurui createTime 2018年5月8日 下午4:15:44
|
* @param deviceToken
|
*/
|
@RequestMapping(value = "/insertDeviceToken", method = RequestMethod.POST)
|
public void insertIOSDeviceToken(AcceptData acceptData, String deviceToken, PrintWriter out) {
|
if (!StringUtil.isNullOrEmpty(acceptData.getDevice()) && !StringUtil.isNullOrEmpty(deviceToken)) {
|
DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice());
|
if (deviceTokenIOS == null)
|
iosPushService.addDeviceToken(null, deviceToken, acceptData.getDevice());
|
else {
|
deviceTokenIOS.setDeviceToken(deviceToken);
|
iosPushService.updateDeviceToken(deviceTokenIOS);
|
}
|
out.print(JsonUtil.loadTrue(0, null, "成功"));
|
}
|
}
|
|
/**
|
* IOS推送 方法说明: 将用户id和deviceToken绑定
|
*
|
* @author mawurui createTime 2018年5月8日 下午4:29:45
|
* @param uid
|
* @param deviceToken
|
*/
|
|
// 传一个device 如果存在device 根据device执行update操作 , 如果不存在 都执行insert操作三个参数
|
@RequestMapping(value = "/uidBindDeviceToken", method = RequestMethod.POST)
|
public void uidBindIOSDeviceToken(AcceptData acceptData, Long uid, String deviceToken, PrintWriter out) {
|
if (uid != null && uid != 0 && !StringUtil.isNullOrEmpty(deviceToken)) {
|
DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice());
|
if (deviceTokenIOS != null) {
|
if (!StringUtil.isNullOrEmpty(deviceToken))
|
deviceTokenIOS.setDeviceToken(deviceToken);
|
deviceTokenIOS.setUid(uid);
|
iosPushService.updateDeviceToken(deviceTokenIOS);
|
} else {
|
iosPushService.addDeviceToken(uid, deviceToken, acceptData.getDevice());
|
}
|
}
|
}
|
|
/**
|
* IOS推送 方法说明: 解绑
|
*
|
* @author mawurui createTime 2018年5月9日 上午9:49:58
|
* @param deviceToken
|
*/
|
@RequestMapping(value = "/unBind", method = RequestMethod.POST)
|
public void unBind(AcceptData acceptData, String deviceToken, PrintWriter out) {
|
if (deviceToken != null && !"".equals(deviceToken)) {
|
DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice());
|
if (deviceTokenIOS != null) {
|
deviceTokenIOS.setUid(null);
|
iosPushService.updateDeviceToken(deviceTokenIOS);
|
}
|
out.print(JsonUtil.loadTrue(0, null, "解绑成功"));
|
}
|
}
|
|
/**
|
* 绑定华为推送
|
*
|
* @param acceptData
|
* @param token
|
* -华为token
|
* @param uid
|
* -用户ID
|
* @param out
|
*/
|
@RequestMapping(value = "/bindHWPush", method = RequestMethod.POST)
|
public void bindHWDeviceToken(AcceptData acceptData, String token, Long uid, PrintWriter out) {
|
deviceTokenHWService.addDeviceToken(token, acceptData.getDevice(), uid);
|
out.print(JsonUtil.loadTrueResult("成功"));
|
}
|
|
/**
|
* 解绑推送
|
*
|
* @param acceptData
|
* @param out
|
*/
|
@RequestMapping(value = "/unBindHWPush", method = RequestMethod.POST)
|
public void unBindHWDeviceToken(AcceptData acceptData, PrintWriter out) {
|
deviceTokenHWService.unBindDeviceToken(acceptData.getDevice());
|
out.print(JsonUtil.loadTrueResult("成功"));
|
}
|
|
}
|