package com.agentdriving.driver.modular.system.util;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.agentdriving.driver.modular.system.warpper.PushOrderInfoWarpper;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.MediaType;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.web.client.RestTemplate;
|
|
import java.util.*;
|
|
/**
|
* socket推单处理类
|
*/
|
@Component
|
public class PushUtil {
|
|
Logger logger = LoggerFactory.getLogger("ServiceLog");
|
|
@Autowired
|
private RestTemplate internalRestTemplate;
|
|
|
|
/**
|
* 推送强迫下线
|
* @param id
|
* @param type
|
*/
|
public Integer pushOffline(Integer id, Integer type){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "OFFLINE");
|
msg.put("data", new Object());
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
return jsonObject1.getIntValue("code");
|
}
|
|
|
/**
|
* 下班提醒
|
* @param id
|
* @param type
|
*/
|
public void pushOffWork(Integer id, Integer type){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "OFF_WORK");
|
msg.put("data", new Object());
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
if(jsonObject1.getIntValue("code") != 200){
|
logger.debug(jsonObject1.getString("msg"));
|
System.err.println(jsonObject1.getString("msg"));
|
}
|
}
|
|
|
/**
|
* 推送订单状态
|
* @param id
|
* @param type
|
* @param orderId
|
* @param status
|
*/
|
public void pushOrderStatus(Integer id, Integer type, Long orderId, Integer status){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "ORDER_STATUS");
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("orderId", orderId);
|
map.put("status", status);
|
|
msg.put("data", map);
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
if(jsonObject1.getIntValue("code") != 200){
|
logger.debug(jsonObject1.getString("msg"));
|
System.err.println(jsonObject1.getString("msg"));
|
}
|
}
|
|
|
/**
|
* 系统推单推送
|
* @param id 接受对象id
|
* @param type 接受对象类型(1=用户,2=司机)
|
* @param orderId 订单id
|
* @param countdown 抢单倒计时(秒)
|
*/
|
public void pushGrabOrder(Integer id, Integer type, Long orderId, Integer countdown){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "GRAB_ORDER");
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("orderId", orderId);
|
map.put("countdown", countdown);
|
|
msg.put("data", map);
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
if(jsonObject1.getIntValue("code") != 200){
|
logger.debug(jsonObject1.getString("msg"));
|
System.err.println(jsonObject1.getString("msg"));
|
}
|
}
|
|
|
/**
|
* 推送订单数据
|
* @param id
|
* @param type
|
* @param pushOrderInfoWarpper
|
*/
|
public void pushOrderInfo(Integer id, Integer type, PushOrderInfoWarpper pushOrderInfoWarpper){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "ORDER_INFO");
|
msg.put("data", pushOrderInfoWarpper);
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
if(jsonObject1.getIntValue("code") != 200){
|
logger.debug(jsonObject1.getString("msg"));
|
System.err.println(jsonObject1.getString("msg"));
|
}
|
}
|
|
|
/**
|
* 转单成功推送
|
* @param id
|
* @param type
|
*/
|
public void pushTransferSuccessful(Integer id, Integer type, Long orderId){
|
JSONObject msg = new JSONObject();
|
msg.put("code", 200);
|
msg.put("msg", "SUCCESS");
|
msg.put("method", "TRANSFER_SUCCESS");
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("orderId", orderId);
|
msg.put("data", map);
|
|
//调用推送
|
HttpHeaders headers = new HttpHeaders();
|
// 以表单的方式提交
|
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
//将请求头部和参数合成一个请求
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
params.add("msg", msg.toJSONString());
|
params.add("id", id.toString());
|
params.add("type", type.toString());
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
|
JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
|
if(jsonObject1.getIntValue("code") != 200){
|
logger.debug(jsonObject1.getString("msg"));
|
System.err.println(jsonObject1.getString("msg"));
|
}
|
}
|
}
|