个推新增消息推送,改变参数
This commit is contained in:
parent
60e4019900
commit
9cef1525cd
@ -1,13 +1,13 @@
|
||||
package com.suisung.mall.account.controller.mobile;
|
||||
|
||||
import com.getui.push.v2.sdk.api.PushApi;
|
||||
import com.suisung.mall.account.service.AccountSinglePushService;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||
import com.suisung.mall.common.service.GeTuiPushService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -34,9 +34,14 @@ public class SinglePushController {
|
||||
}
|
||||
|
||||
@PostMapping("/pushTocid")
|
||||
public String pushTocid(@RequestParam String userId, @RequestParam String message) {
|
||||
public CommonResult pushTocid(@RequestParam String userId, @RequestParam String message) {
|
||||
log.info("pushTocid");
|
||||
accountSinglePushService.pushTocid(message, userId);
|
||||
return "success";
|
||||
return accountSinglePushService.pushTocid(message, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/pushNotificationTocid")
|
||||
public CommonResult pushNotificationTocid(@RequestParam String userId,@RequestBody PushTemplate pushTemplate) {
|
||||
log.info("pushNotificationTocid");
|
||||
return accountSinglePushService.pushTocid(pushTemplate,userId);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.suisung.mall.account.service;
|
||||
|
||||
import com.getui.push.v2.sdk.dto.req.message.PushMessage;
|
||||
import com.getui.push.v2.sdk.dto.res.TokenDTO;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||
import com.suisung.mall.common.service.SinglePushBaseService;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -12,5 +15,17 @@ public interface AccountSinglePushService extends SinglePushBaseService {
|
||||
|
||||
void delToken();
|
||||
|
||||
void pushTocid(String message,String userId);
|
||||
/**
|
||||
* 透传方式
|
||||
* @param message
|
||||
* @param userId
|
||||
*/
|
||||
CommonResult pushTocid(String message,String userId);
|
||||
|
||||
/**
|
||||
* 消息通知方式
|
||||
* @param pushTemplate
|
||||
* @param userId
|
||||
*/
|
||||
CommonResult pushTocid(PushTemplate pushTemplate, String userId);
|
||||
}
|
||||
|
||||
@ -4,12 +4,23 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.getui.push.v2.sdk.api.PushApi;
|
||||
import com.getui.push.v2.sdk.common.ApiResult;
|
||||
import com.getui.push.v2.sdk.dto.req.Audience;
|
||||
import com.getui.push.v2.sdk.dto.req.message.PushChannel;
|
||||
import com.getui.push.v2.sdk.dto.req.message.PushDTO;
|
||||
import com.getui.push.v2.sdk.dto.req.message.PushMessage;
|
||||
import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO;
|
||||
import com.getui.push.v2.sdk.dto.req.message.android.GTNotification;
|
||||
import com.getui.push.v2.sdk.dto.req.message.android.Ups;
|
||||
import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
|
||||
import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
|
||||
import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
|
||||
import com.suisung.mall.account.service.AccountSinglePushService;
|
||||
import com.suisung.mall.account.service.UserDeviceBindService;
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||
import com.suisung.mall.common.modules.singlepush.UserDeviceBind;
|
||||
import com.suisung.mall.common.pojo.res.ThirdApiRes;
|
||||
import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -34,13 +45,13 @@ public class AccountSinglePushServiceImpl extends SinglePushBaseServiceImpl impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pushTocid(String message, String userId) {
|
||||
public CommonResult pushTocid(String message, String userId) {
|
||||
UserDeviceBind userDeviceBind = new UserDeviceBind();
|
||||
userDeviceBind.setUserId(userId);
|
||||
List<UserDeviceBind> list = userDeviceBindService.getActive(userDeviceBind);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
log.error("登录时绑定设备不存在");
|
||||
return;
|
||||
return CommonResult.failed("登录时绑定设备不存在");
|
||||
}
|
||||
String cid = list.get(0).getCid();
|
||||
PushApi pushApi = this.getApiHelper().creatApi(PushApi.class);
|
||||
@ -54,10 +65,66 @@ public class AccountSinglePushServiceImpl extends SinglePushBaseServiceImpl impl
|
||||
pushMessage.setTransmission(message);
|
||||
pushDTO.setPushMessage(pushMessage);
|
||||
ApiResult<Map<String, Map<String, String>>> mapApiResult = pushApi.pushToSingleByCid(pushDTO);//,super.getTokenDTO()
|
||||
if (mapApiResult.getCode() == 0) {
|
||||
log.info("用户为{},cid为{}发送成功消息成功", list.get(0).getUserId(), list.get(0).getCid());
|
||||
if (mapApiResult.getCode() != 0) {
|
||||
log.info("用户为{},cid为{}发送成功消息失败", list.get(0).getUserId(), list.get(0).getCid());
|
||||
return CommonResult.failed("错误码:"+mapApiResult.getCode()+"错误消息"+mapApiResult.getMsg());
|
||||
}
|
||||
log.info("mapApiResult的数据{}", mapApiResult);
|
||||
return CommonResult.success("success");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult pushTocid(PushTemplate pushTemplate, String userId) {
|
||||
UserDeviceBind userDeviceBind = new UserDeviceBind();
|
||||
userDeviceBind.setUserId(userId);
|
||||
List<UserDeviceBind> list = userDeviceBindService.getActive(userDeviceBind);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
return CommonResult.failed("登录时绑定设备不存在");
|
||||
}
|
||||
String cid = list.get(0).getCid();
|
||||
PushApi pushApi = this.getApiHelper().creatApi(PushApi.class);
|
||||
PushDTO<Audience> pushDTO = new PushDTO<>();
|
||||
Audience audience = new Audience();
|
||||
audience.addCid(cid);
|
||||
pushDTO.setAudience(audience);
|
||||
pushDTO.setRequestId(UUID.randomUUID().toString());
|
||||
PushMessage pushMessage = new PushMessage();
|
||||
pushMessage.setDuration(this.getDuration());
|
||||
//在线消息 start
|
||||
GTNotification gtNotification=new GTNotification();
|
||||
gtNotification.setTitle(pushTemplate.getTitle());
|
||||
gtNotification.setBody(pushTemplate.getContent());
|
||||
gtNotification.setClickType("payload");
|
||||
gtNotification.setPayload(pushTemplate.getJson());
|
||||
pushMessage.setNotification(gtNotification);
|
||||
//在线消息 end
|
||||
pushDTO.setPushMessage(pushMessage);
|
||||
//离线消息 start
|
||||
PushChannel pushChannel=new PushChannel();
|
||||
//IOS
|
||||
IosDTO iosDTO=new IosDTO();
|
||||
iosDTO.setPayload(pushTemplate.getJson());
|
||||
Aps aps=new Aps();
|
||||
Alert alert= new Alert();
|
||||
alert.setTitle(pushTemplate.getTitle());
|
||||
alert.setBody(pushTemplate.getContent());
|
||||
aps.setAlert(alert);
|
||||
iosDTO.setAps(aps);
|
||||
pushChannel.setIos(iosDTO);
|
||||
//android 安卓离线只能透传
|
||||
AndroidDTO android =new AndroidDTO();
|
||||
Ups ups=new Ups();
|
||||
ups.setTransmission(pushTemplate.getJson());
|
||||
android.setUps(ups);
|
||||
pushChannel.setAndroid(android);
|
||||
pushDTO.setPushChannel(pushChannel);
|
||||
//离线消息 end
|
||||
ApiResult<Map<String, Map<String, String>>> mapApiResult = pushApi.pushToSingleByCid(pushDTO);//,super.getTokenDTO()
|
||||
if (mapApiResult.getCode() != 0) {
|
||||
return CommonResult.failed("登录时绑定设备不存在");
|
||||
//log.info("用户为{},cid为{}发送成功消息成功", list.get(0).getUserId(), list.get(0).getCid());
|
||||
}
|
||||
//log.info("用户为{},cid为{}发送成功消息成功", list.get(0).getUserId(), list.get(0).getCid());
|
||||
return CommonResult.success("推送消息成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package com.suisung.mall.common.feignService;
|
||||
|
||||
import com.suisung.mall.common.api.CommonResult;
|
||||
import com.suisung.mall.common.modules.account.*;
|
||||
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||
import com.suisung.mall.common.pojo.output.TimelineOutput;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
@ -218,4 +219,7 @@ public interface AccountService {
|
||||
|
||||
@PostMapping("/admin/account/pushTocid")
|
||||
String pushTocid(@RequestParam(name = "message") String message,@RequestParam(name = "userId") String userId);
|
||||
|
||||
@PostMapping("/admin/account/pushNotificationTocid")
|
||||
String pushNotificationTocid(@RequestParam("userId") String userId,@RequestBody PushTemplate pushTemplate);
|
||||
}
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.suisung.mall.common.modules.push;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class PushTemplate implements Serializable {
|
||||
|
||||
private String title;
|
||||
private String content;
|
||||
private String json;//透传消息
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user