From 13b1838cfd7df8c49450e2529943a0f87fbd0354 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 19 六月 2025 18:01:55 +0800 Subject: [PATCH] 推单距离优化 --- UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 50 +++++++++++++++++++++++++++++--------------------- 1 files changed, 29 insertions(+), 21 deletions(-) diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index e6c91c7..290426d 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -40,6 +40,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; import java.util.*; @Service @@ -136,8 +138,8 @@ @Autowired private IOrderPositionService orderPositionService; - @Autowired - private ChinaMobileUtil chinaMobileUtil; +// @Autowired +// private ChinaMobileUtil chinaMobileUtil; @Autowired private IDriverServiceService driverServiceService; @@ -275,11 +277,11 @@ //调用移动的小号接口 Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); Region region = regionMapper.query(geocode1.get("districtCode")); - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); - if(String.valueOf(map.get("code")).equals("200")){ - orderTaxi.setTelX(map.get("telX")); - orderTaxi.setBindId(map.get("bindId")); - } +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); +// if(String.valueOf(map.get("code")).equals("200")){ +// orderTaxi.setTelX(map.get("telX")); +// orderTaxi.setBindId(map.get("bindId")); +// } driver.setState(3); driverService.updateById(driver); @@ -505,6 +507,9 @@ CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId()); if(null != query){ if(payType == 1){//微信支付 + if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ + return ResultUtil.error("未授权微信,无法完成支付"); + } orderCancel.setPayType(1); orderCancelService.updateById(orderCancel); resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",id + "_2_fei",query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); @@ -512,7 +517,7 @@ if(payType == 2){//支付宝支付 orderCancel.setPayType(2); orderCancelService.updateById(orderCancel); - resultUtil = payMoneyUtil.alipay("订单取消","订单取消",id + ",2",query.getMoney()+"","/base/aliCancelOrderTaxi"); + resultUtil = payMoneyUtil.alipay("订单取消","订单取消", "",id + ",2",query.getMoney()+"","/base/aliCancelOrderTaxi"); } if(payType == 3){//余额支付 if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ @@ -525,9 +530,9 @@ userInfoService.updateById(userInfo); //解除小号绑定 - if(orderTaxi.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); - } +// if(orderTaxi.getBindId() != null){ +// chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); +// } orderTaxi.setState(10); orderTaxi.setTelX(""); @@ -685,10 +690,13 @@ } if(payType == 1){//微信支付 + if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ + return ResultUtil.error("未授权微信,无法完成支付"); + } resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"",orderId + "_2_fei",orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); } if(payType == 2){//支付宝支付 - resultUtil = payMoneyUtil.alipay("完成订单","完成订单",orderId + ",2",orderMoney+"","/base/aliPayOrderTaxi"); + resultUtil = payMoneyUtil.alipay("完成订单","完成订单", "",orderId + ",2",orderMoney+"","/base/aliPayOrderTaxi"); } if(payType == 3){//余额支付 if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ @@ -730,7 +738,7 @@ c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 } if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); + d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).setScale(2, BigDecimal.ROUND_HALF_EVEN); c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); @@ -956,8 +964,8 @@ if(null == distance){ System.err.println("查询距离出错了"); }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); orderServerWarpper.setOrderId(orderTaxi.getId()); @@ -979,8 +987,8 @@ if(null == distance){ System.err.println("查询距离出错了"); }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); @@ -1151,7 +1159,7 @@ c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); + d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).setScale(2, BigDecimal.ROUND_HALF_EVEN); c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); @@ -1208,9 +1216,9 @@ transactionDetailsService.saveData(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId()); orderTaxi.setState(10); //解除小号绑定 - if(orderTaxi.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); - } +// if(orderTaxi.getBindId() != null){ +// chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX()); +// } orderTaxi.setBindId(""); orderTaxi.setTelX(""); this.updateById(orderTaxi); -- Gitblit v1.7.1