driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
@@ -12,6 +12,7 @@ import com.supersavedriving.driver.modular.system.util.MallBook.model.ReceiveUser; import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.PushUtil; import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil; import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback; import com.supersavedriving.driver.modular.system.warpper.*; @@ -62,6 +63,9 @@ @Autowired private IDivisionRecordService divisionRecordService; @Autowired private PushUtil pushUtil; @@ -644,4 +648,17 @@ e.printStackTrace(); } } /** * 管理后台调用推送 * @param id * @param type * @param pushOrderInfoWarpper */ @ResponseBody @PostMapping("/base/order/pushOrderInfo") public void pushOrderInfo(Integer id, Integer type, PushOrderInfoWarpper pushOrderInfoWarpper){ pushUtil.pushOrderInfo(id, type, pushOrderInfoWarpper); } } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java
@@ -7,6 +7,7 @@ import com.supersavedriving.driver.modular.system.model.Order; import com.supersavedriving.driver.modular.system.service.IOrderService; import com.supersavedriving.driver.modular.system.util.GeodesyUtil; import com.supersavedriving.driver.modular.system.util.PushUtil; import com.supersavedriving.driver.modular.system.util.RedisUtil; import com.supersavedriving.driver.modular.system.warpper.DriverPositionWarpper; import com.supersavedriving.driver.modular.system.warpper.OrderPositionWarpper; @@ -34,6 +35,9 @@ @Autowired private IOrderService orderService; @Autowired private PushUtil pushUtil; private Map<String, Integer> map = new HashMap<>(); @@ -53,6 +57,17 @@ if(null == order.getDriverId() || order.getDriverId().compareTo(driverId) != 0){ return; } //开始服务提醒 if(order.getState() == 104){ String fromLonLat = order.getStartLng() + "," + order.getStartLat(); String toLonLat = driverPositionWarpper.getLon() + "," + driverPositionWarpper.getLat(); Map<String, Double> distance = GeodesyUtil.getDistance(fromLonLat, toLonLat); Double wgs84 = distance.get("WGS84"); if(wgs84.compareTo(200D) >= 0){ pushUtil.pushStartServer(2, driverId); } } if(order.getState() != 105 && order.getState() != 401){ return; } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java
@@ -265,4 +265,36 @@ System.err.println(jsonObject1.getString("msg")); } } /** * 提醒开始服务推送 * @param id * @param type */ public void pushStartServer(Integer id, Integer type){ Map<String, Object> map = new HashMap<>(); JSONObject msg = new JSONObject(); msg.put("code", 200); msg.put("msg", "SUCCESS"); msg.put("method", "START_SERVER"); 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")); } } } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/PushOrderInfoWarpper.java
@@ -21,4 +21,6 @@ private String travelTime; @ApiModelProperty("101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待支付,108=待评价,109=已完成,201=转单中,301=已取消,401=等待中") private Integer state; @ApiModelProperty("取消方(1=用户,2=司机,3=平台)") private Integer cancelObject; } management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java
@@ -2,6 +2,7 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.base.controller.BaseController; @@ -21,8 +22,11 @@ import com.stylefeng.guns.modular.system.service.ITCancelOrderService; import com.stylefeng.guns.modular.system.service.ITDriverService; import com.stylefeng.guns.modular.system.service.ITOrderService; import com.stylefeng.guns.modular.system.util.HttpRequestUtil; import com.stylefeng.guns.modular.system.util.PushURL; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.PushOrderInfoWarpper; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -42,10 +46,7 @@ import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.*; /** * 控制器 @@ -291,6 +292,27 @@ tDriver.setServerStatus(1); driverService.updateById(tDriver); } Map<String, String> map = new HashMap<>(); map.put("id", tOrder.getUserId().toString()); map.put("type", "1"); PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper(); pushOrderInfoWarpper.setId(tOrder.getId().longValue()); pushOrderInfoWarpper.setState(tOrder.getState()); pushOrderInfoWarpper.setCancelObject(3); map.put("pushOrderInfoWarpper", JSON.toJSONString(pushOrderInfoWarpper)); String result = HttpRequestUtil.postRequest(PushURL.order_push_url, map); if(null != tOrder.getDriverId()){ map = new HashMap<>(); map.put("id", tOrder.getDriverId().toString()); map.put("type", "1"); PushOrderInfoWarpper pushOrderInfoWarpper1 = new PushOrderInfoWarpper(); pushOrderInfoWarpper1.setId(tOrder.getId().longValue()); pushOrderInfoWarpper1.setState(tOrder.getState()); pushOrderInfoWarpper1.setCancelObject(3); map.put("pushOrderInfoWarpper", JSON.toJSONString(pushOrderInfoWarpper1)); result = HttpRequestUtil.postRequest(PushURL.order_push_url, map); } redisUtil.setStrValue("cancelOrder", "true"); return SUCCESS_TIP; } management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TAgent.java
@@ -31,46 +31,57 @@ /** * 负责人姓名 */ @TableField(value = "principal") private String principal; /** * 负责人电话 */ @TableField(value = "principalPhone") private String principalPhone; /** * 邮箱 */ @TableField(value = "email") private String email; /** * 代理区域省编号 */ @TableField(value = "provinceCode") private String provinceCode; /** * 代理区域省名称 */ @TableField(value = "provinceName") private String provinceName; /** * 代理区域市编号 */ @TableField(value = "cityCode") private String cityCode; /** * 代理区域市名称 */ @TableField(value = "cityName") private String cityName; /** * 代理区域区编号 */ @TableField(value = "districtCode") private String districtCode; /** * 代理区域区名称 */ @TableField(value = "districtName") private String districtName; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField(value = "status") private Integer status; /** * 添加时间 */ @TableField(value = "createTime") private Date createTime; @TableField(value = "serviceCalls") @ApiModelProperty(value = "客服电话") @@ -539,6 +550,22 @@ this.bankStatus = bankStatus; } public String getDistrictCode() { return districtCode; } public void setDistrictCode(String districtCode) { this.districtCode = districtCode; } public String getDistrictName() { return districtName; } public void setDistrictName(String districtName) { this.districtName = districtName; } @Override protected Serializable pkVal() { return this.id; management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java
@@ -3,7 +3,7 @@ public class PushURL { // public static String zull_user_url = "http://127.0.0.1:81"; public static String zull_user_url = "https://okyueche.com:443"; public static String order_push_url = zull_user_url + "/driver/base/order/pushOrderState"; public static String order_push_url = zull_user_url + "/driver/base/order/pushOrderInfo"; public static String driver_auth_url = zull_user_url + "/driver/base/driver/sendsms"; public static String withdraw_auth_url = zull_user_url + "/driver/base/withdrawal/withdrawalAudit"; public static String cancel_order_url = zull_user_url + "/user/base/order/sendOrderState"; management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/PushOrderInfoWarpper.java
New file @@ -0,0 +1,26 @@ package com.stylefeng.guns.modular.system.warpper; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel public class PushOrderInfoWarpper { @ApiModelProperty("订单id") private Long id; @ApiModelProperty("司机纬度") private String driverLat; @ApiModelProperty("司机经度") private String driverLng; @ApiModelProperty("等待时长(分钟)") private String waitTime; @ApiModelProperty("行驶里程(公里)") private Double actualMileage; @ApiModelProperty("行驶时间(分钟)") private String travelTime; @ApiModelProperty("101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待支付,108=待评价,109=已完成,201=转单中,301=已取消,401=等待中") private Integer state; @ApiModelProperty("取消方(1=用户,2=司机,3=平台)") private Integer cancelObject; } user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -816,6 +816,7 @@ PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper(); pushOrderInfoWarpper.setId(order.getId()); pushOrderInfoWarpper.setState(order.getState()); pushOrderInfoWarpper.setCancelObject(1); pushUtil.pushOrderInfo(order.getDriverId(), 2, pushOrderInfoWarpper); } redisUtil.setStrValue("cancelOrder", "true"); user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/PushOrderInfoWarpper.java
@@ -27,4 +27,6 @@ private String endLng; @ApiModelProperty("101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待支付,108=待评价,109=已完成,201=转单中,301=已取消,401=等待中") private Integer state; @ApiModelProperty("取消方(1=用户,2=司机,3=平台)") private Integer cancelObject; }