Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
03b34a858f
@ -1,13 +1,13 @@
|
|||||||
package com.suisung.mall.account.controller.mobile;
|
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.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 com.suisung.mall.common.service.GeTuiPushService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
@ -34,9 +34,14 @@ public class SinglePushController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/pushTocid")
|
@PostMapping("/pushTocid")
|
||||||
public String pushTocid(@RequestParam String userId, @RequestParam String message) {
|
public CommonResult pushTocid(@RequestParam String userId, @RequestParam String message) {
|
||||||
log.info("pushTocid");
|
log.info("pushTocid");
|
||||||
accountSinglePushService.pushTocid(message, userId);
|
return accountSinglePushService.pushTocid(message, userId);
|
||||||
return "success";
|
}
|
||||||
|
|
||||||
|
@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;
|
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.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 com.suisung.mall.common.service.SinglePushBaseService;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -12,5 +15,17 @@ public interface AccountSinglePushService extends SinglePushBaseService {
|
|||||||
|
|
||||||
void delToken();
|
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.api.PushApi;
|
||||||
import com.getui.push.v2.sdk.common.ApiResult;
|
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.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.PushDTO;
|
||||||
import com.getui.push.v2.sdk.dto.req.message.PushMessage;
|
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.AccountSinglePushService;
|
||||||
import com.suisung.mall.account.service.UserDeviceBindService;
|
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.modules.singlepush.UserDeviceBind;
|
||||||
|
import com.suisung.mall.common.pojo.res.ThirdApiRes;
|
||||||
import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -34,13 +45,13 @@ public class AccountSinglePushServiceImpl extends SinglePushBaseServiceImpl impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pushTocid(String message, String userId) {
|
public CommonResult pushTocid(String message, String userId) {
|
||||||
UserDeviceBind userDeviceBind = new UserDeviceBind();
|
UserDeviceBind userDeviceBind = new UserDeviceBind();
|
||||||
userDeviceBind.setUserId(userId);
|
userDeviceBind.setUserId(userId);
|
||||||
List<UserDeviceBind> list = userDeviceBindService.getActive(userDeviceBind);
|
List<UserDeviceBind> list = userDeviceBindService.getActive(userDeviceBind);
|
||||||
if (CollectionUtil.isEmpty(list)) {
|
if (CollectionUtil.isEmpty(list)) {
|
||||||
log.error("登录时绑定设备不存在");
|
log.error("登录时绑定设备不存在");
|
||||||
return;
|
return CommonResult.failed("登录时绑定设备不存在");
|
||||||
}
|
}
|
||||||
String cid = list.get(0).getCid();
|
String cid = list.get(0).getCid();
|
||||||
PushApi pushApi = this.getApiHelper().creatApi(PushApi.class);
|
PushApi pushApi = this.getApiHelper().creatApi(PushApi.class);
|
||||||
@ -54,10 +65,66 @@ public class AccountSinglePushServiceImpl extends SinglePushBaseServiceImpl impl
|
|||||||
pushMessage.setTransmission(message);
|
pushMessage.setTransmission(message);
|
||||||
pushDTO.setPushMessage(pushMessage);
|
pushDTO.setPushMessage(pushMessage);
|
||||||
ApiResult<Map<String, Map<String, String>>> mapApiResult = pushApi.pushToSingleByCid(pushDTO);//,super.getTokenDTO()
|
ApiResult<Map<String, Map<String, String>>> mapApiResult = pushApi.pushToSingleByCid(pushDTO);//,super.getTokenDTO()
|
||||||
if (mapApiResult.getCode() == 0) {
|
if (mapApiResult.getCode() != 0) {
|
||||||
log.info("用户为{},cid为{}发送成功消息成功", list.get(0).getUserId(), list.get(0).getCid());
|
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.api.CommonResult;
|
||||||
import com.suisung.mall.common.modules.account.*;
|
import com.suisung.mall.common.modules.account.*;
|
||||||
|
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||||
import com.suisung.mall.common.pojo.output.TimelineOutput;
|
import com.suisung.mall.common.pojo.output.TimelineOutput;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
@ -218,4 +219,7 @@ public interface AccountService {
|
|||||||
|
|
||||||
@PostMapping("/admin/account/pushTocid")
|
@PostMapping("/admin/account/pushTocid")
|
||||||
String pushTocid(@RequestParam(name = "message") String message,@RequestParam(name = "userId") String userId);
|
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