zhibing.pu
2024-08-13 00ee134d5bcb07e9a07633963e68ba7e9fa215c2
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);