Commit 3038ab8c authored by tangwei's avatar tangwei

修改推送调用

parent 939574db
package com.yeejoin.amos.fas.business.feign;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextListener;
/**
* @Author: xinglei
* @Description:
* @Date: 2020/3/30 16:26
*/
@Configuration
public class MultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
/**
* 创建Feign请求拦截器,在发送请求前设置认证的token,各个微服务将token设置到环境变量中来达到通用
* @return
*/
@Bean
public RequestContextListener requestInterceptor() {
return new RequestContextListener();
}
}
package com.yeejoin.amos.fas.business.feign;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.yeejoin.amos.fas.business.jpush.PushMsgParam;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
//推送
@FeignClient(name = "${Push.fegin.name}", configuration={MultipartSupportConfig.class})
public interface PushFeign {
//
// @RequestMapping(value = "/api/user/sendMessage", method = RequestMethod.POST)
// CommonResponse sendMessage( @RequestBody List<PushMsgParam> responses);
@RequestMapping(value = "/api/user/sendMessageone", method = RequestMethod.POST)
CommonResponse sendMessageone( @RequestBody PushMsgParam responses);
@RequestMapping(value = "/api/user/pushNoticeMany", method = RequestMethod.POST)
CommonResponse pushNoticeMany( @RequestBody PushMsgParam responses);
@RequestMapping(value = "/api/user/buildPushPayload", method = RequestMethod.POST)
CommonResponse buildPushPayload( @RequestBody PushMsgParam responses);
@RequestMapping(value = "/api/user/pushDevice", method = RequestMethod.GET)
CommonResponse PushDevice( @RequestParam("alias") String alias);
@RequestMapping(value = "/api/user/PushDeviceRegistration", method = RequestMethod.GET)
CommonResponse PushDeviceRegistration( @RequestParam("registrationId") String registrationId,@RequestParam("alias") String alias);
}
package com.yeejoin.amos.fas.business.feign;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import com.yeejoin.amos.fas.business.jpush.PushMsgParam;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
@Service("pushFeignServer")
public class PushFeignServer {
private final RestTemplate restTemplate;
public PushFeignServer() {
this.restTemplate = new RestTemplate();
}
@Value("${Push.fegin.name}")
private String RPushFeginName;
private static String sendMessage = "/api/user/sendMessage";
public String geturls(String url){
return "http://"+RPushFeginName+url;
}
public HttpHeaders getHeader(String toke,String product,String appKey){
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Content-Type", "application/json");
headers.set("token", toke);
headers.set("product",product);
headers.set("appKey", appKey);
return headers;
}
public CommonResponse sendMessage( String toke,String product,String appKey, List<PushMsgParam> pushMsgParam){
try {
HttpEntity httpEntity = new HttpEntity<>(pushMsgParam, getHeader( toke, product, appKey));
CommonResponse commonResponse1 = restTemplate.postForObject(geturls(sendMessage),httpEntity, CommonResponse.class);
return commonResponse1;
} catch (Exception e) {
e.printStackTrace();
return CommonResponseUtil.failure("发送失败");
}
}
}
...@@ -7,17 +7,16 @@ import cn.jpush.api.push.model.audience.Audience; ...@@ -7,17 +7,16 @@ import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification; import cn.jpush.api.push.model.notification.Notification;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import java.util.List;
@Service @Service
public class AppMessagePushService { public class AppMessagePushService {
protected static final Logger log = LoggerFactory.getLogger(AppMessagePushService.class); protected static final Logger log = LoggerFactory.getLogger(AppMessagePushService.class);
/*
@Value("${params.isPush}") @Value("${params.isPush}")
private String isPush; private String isPush;
...@@ -26,54 +25,65 @@ public class AppMessagePushService { ...@@ -26,54 +25,65 @@ public class AppMessagePushService {
private static final String MASTER_SECRET = "8b650e645fb3a43c96be02b2"; private static final String MASTER_SECRET = "8b650e645fb3a43c96be02b2";
private static JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY); private static JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
*/
@Autowired
private com.yeejoin.amos.fas.business.feign.PushFeign PushFeign;
public void sendMessage(List<PushMsgParam> responses) {
try {
if (responses != null && "true".equals(isPush)) {
for (PushMsgParam response : responses) {
PushPayload payload = buildPushPayload(response); // public void sendMessage(List<PushMsgParam> responses) {
jpushClient.sendPush(payload); // try {
} // if (responses != null && "true".equals(isPush)) {
} // for (PushMsgParam response : responses) {
} catch (Exception e) { // PushPayload payload = buildPushPayload(response);
log.error("极光推送异常", e); // jpushClient.sendPush(payload);
} // }
} // }
// } catch (Exception e) {
// log.error("极光推送异常", e);
// }
// }
private PushPayload buildPushPayload(PushMsgParam response) { private PushPayload buildPushPayload(PushMsgParam response) {
if (JPushTypeEnum.ALL.getCode().equals(response.getType())) { CommonResponse commonResponse = PushFeign.buildPushPayload(response);
return PushPayload.newBuilder() return (PushPayload)commonResponse.getDataList();
.setPlatform(Platform.android()) // if (JPushTypeEnum.ALL.getCode().equals(response.getType())) {
.setAudience(Audience.all()) // return PushPayload.newBuilder()
.setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras())) // .setPlatform(Platform.android())
.build(); // .setAudience(Audience.all())
} else if (JPushTypeEnum.TAG.getCode().equals(response.getType())) { // .setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras()))
return PushPayload.newBuilder() // .build();
.setPlatform(Platform.android()) // } else if (JPushTypeEnum.TAG.getCode().equals(response.getType())) {
.setAudience(Audience.tag(response.getRecivers())) // return PushPayload.newBuilder()
.setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras())) // .setPlatform(Platform.android())
.build(); // .setAudience(Audience.tag(response.getRecivers()))
} else { // .setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras()))
return PushPayload.newBuilder() // .build();
.setPlatform(Platform.android()) // } else {
.setAudience(Audience.alias(response.getRecivers())) // return PushPayload.newBuilder()
.setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras())) // .setPlatform(Platform.android())
.build(); // .setAudience(Audience.alias(response.getRecivers()))
} // .setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras()))
// .build();
// }
} }
public void sendMessage(PushMsgParam response) { public void sendMessage(PushMsgParam response) {
try { CommonResponse commonResponse = PushFeign.sendMessageone(response);
if (null != response && "true".equals(isPush)) { // try {
PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.android()) // if (null != response && "true".equals(isPush)) {
.setAudience(Audience.all()) // PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.android())
.setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras())) // .setAudience(Audience.all())
.build(); // .setNotification(Notification.android(response.getContent(), response.getSubject(), response.getExtras()))
jpushClient.sendPush(payload); // .build();
} // jpushClient.sendPush(payload);
} catch (Exception e) { // }
log.error("极光推送异常", e); // } catch (Exception e) {
} // log.error("极光推送异常", e);
// }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment