liujie
8 天以前 729a5a0592cac7750e8b476c5fcb25bfc3ff8d25
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -203,12 +203,9 @@
    public static Map<Integer, Boolean> pushEndMap = new HashMap<>();
    /**
     * 计算支付金额
    *
     * @param startLonLat
     * @param endLonLat
     * @param peopleNumber
@@ -231,6 +228,7 @@
    /**
     * 获取用户余额和可用优惠券数量
    *
     * @param orderId
     * @param uid
     * @return
@@ -463,9 +461,9 @@
    }
    /**
     * 获取支付页面的优惠券列表
    *
     * @param orderId
     * @param uid
     * @param pageNum
@@ -719,6 +717,7 @@
    /**
     * 订单支付
    *
     * @param payType
     * @param orderId
     * @param couponId
@@ -801,8 +800,8 @@
            }
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            //添加交易明细
@@ -1038,8 +1037,8 @@
    
    
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
    
            //添加交易明细
@@ -1103,8 +1102,10 @@
    @Autowired
    private AppOrderController appOrderController;
    /**
     * 支付成功后的回调操作
    *
     * @param id            订单=id
     * @param order_id      工行支付单号
     * @param type          1=微信,2=支付宝
@@ -1124,7 +1125,8 @@
            this.updateById(orderCrossCity);
            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
            userInfoService.updateById(userInfo);
@@ -1176,6 +1178,7 @@
    /**
     * 跨城下单操作
    *
     * @param orderCrossCityWarpper
     * @param uid
     * @return
@@ -1286,11 +1289,11 @@
        }
        //调用移动的小号接口
        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
        if(String.valueOf(map.get("code")).equals("200")){
            orderCrossCity.setTelX(map.get("telX"));
            orderCrossCity.setBindId(map.get("bindId"));
        }
//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
//        if(String.valueOf(map.get("code")).equals("200")){
//            orderCrossCity.setTelX(map.get("telX"));
//            orderCrossCity.setBindId(map.get("bindId"));
//        }
        this.insert(orderCrossCity);
        if(driver.getState() == 2){
@@ -1387,6 +1390,7 @@
    /**
     * 获取订单
    *
     * @param uid
     * @param state
     * @return
@@ -1399,6 +1403,7 @@
    /**
     * 获取订单详情
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1434,6 +1439,7 @@
    /**
     * 获取取消订单的支付费用
    *
     * @param id
     * @return
     * @throws Exception
@@ -1445,8 +1451,9 @@
        if(null == orderCrossCity){
            return ResultUtil.error("获取数据失败,订单信息有误");
        }
      OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
        double amount = 0;
        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
      CancleOrder query = cancleOrderService.query(1, 3, openCity.getId());
        if(null != orderCrossCity.getDriverId() &&
                (orderCrossCity.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
            if(null != query){
@@ -1460,6 +1467,7 @@
    /**
     * 取消订单操作
    *
     * @param id
     * @param payType
     * @param cancleId
@@ -1487,8 +1495,8 @@
        }else{
            orderCancel = orderCancelService.selectById(cancleId);
        }
        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
      CancleOrder query = cancleOrderService.query(1, 3, openCity.getId());
        if(null != query){
            if(payType == 1){//微信支付
                String value = (String) redisTemplate.opsForValue().get("appletOpenId");
@@ -1586,6 +1594,7 @@
    /**
     * 计算价格
    *
     * @param distance
     * @param peopleNumber
     * @param travelMode
@@ -1698,6 +1707,7 @@
    /**
     * 删除定时任务
    *
     * @param orderId
     */
    @Override
@@ -1720,6 +1730,7 @@
    /**
     * 获取红包
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1775,6 +1786,7 @@
    /**
     * 分享成功后添加红包
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1811,6 +1823,7 @@
    /**
     * 取消订单支付后的处理
    *
     * @param id            订单=id
     * @param order_id      工行支付单号
     * @param type          1=微信,2=支付宝
@@ -1864,6 +1877,7 @@
    /**
     * 获取个人中心订单列表
    *
     * @param uid
     * @param pageNum
     * @param size
@@ -1897,6 +1911,7 @@
    /**
     * 获取红包使用记录
    *
     * @param uid
     * @return
     * @throws Exception
@@ -1909,6 +1924,7 @@
    /**
     * 添加跨城取消(直接取消不需要支付费用,退款)
    *
     * @param id
     * @param reason
     * @param remark
@@ -1937,7 +1953,8 @@
        }
        //还原座位
        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
      CancleOrder query1 = cancleOrderService.query(1, 3, openCity.getId());
        if (null != query1) {
            if((orderCrossCity.getSnatchOrderTime().getTime() + query1.getMinuteNum() * 60 * 1000) < new Date().getTime()  && query1.getMoney().compareTo(0D) > 0){//需要付费的情况
                integer = orderCancelService.saveData(id, 3, reason, remark, null, query1.getMoney(), 1, 1, uid);
@@ -2067,6 +2084,7 @@
    /**
     * 获取服务中的订单数据
    *
     * @param uid
     * @return
     * @throws Exception
@@ -2137,6 +2155,7 @@
    /**
     * 摆渡下单
    *
     * @param serverCarModelIds
     * @param travelTime
     * @param placementLon
@@ -2195,6 +2214,7 @@
    /**
     * 出租车摆渡单
    *
     * @param travelTime
     * @param placementLon
     * @param placementLat
@@ -2286,6 +2306,7 @@
    /**
     * 专车摆渡单
    *
     * @param serverCarModelId
     * @param travelTime
     * @param placementLon
@@ -2364,6 +2385,7 @@
    /**
     * 摆渡车推单操作
    *
     * @param list
     * @throws Exception
     */
@@ -2384,9 +2406,9 @@
                        if(orderType == 1){//专车
                            OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
                            OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                            Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                            List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
                            for(int i = 1; i <= querys.size(); i++){
                     OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
                     List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
                     for (int i = 1; i <= querys.size() + 5; i++) {
                                //订单被抢后的处理
                                Integer state = orderPrivateCarMapper.selectById(orderId).getState();
                                if(state != 1){
@@ -2416,7 +2438,8 @@
                                }
                                //开始进行推送的处理
                                PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                        int finalI = i;
                        PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                                //获取空闲司机
                                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                                if(list.size() > 0){
@@ -2440,7 +2463,7 @@
                                //所有推送完后的处理
                                Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId());
                                if(i == querys.size() && state == 1 && (null != b && !b.booleanValue())){
                        if (i == querys.size() + 5 && state == 1 && (null != b && !b.booleanValue())) {
                                    pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                                    OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId());
                                    pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
@@ -2453,9 +2476,9 @@
                        if(orderType == 2){//出租车
                            OrderTaxi orderTaxi = orderTaxiMapper.selectById(orderId);
                            OrderTaxiServiceImpl.orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
                            Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                            List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
                            for(int i = 1; i <= querys.size(); i++){
                     OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
                     List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
                     for (int i = 1; i <= querys.size() + 5; i++) {
                                //处理订单被抢
                                Integer state = orderTaxiMapper.selectById(orderId).getState();
                                if(state != 1){
@@ -2485,7 +2508,8 @@
                                }
                                //开始进行推送
                                PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
                        int finalI = i;
                        PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                                //获取空闲司机
                                List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                                if(list.size() > 0){
@@ -2511,7 +2535,7 @@
                                //所有推送完后的处理
                                Boolean b = pushEndMap.get(orderTaxi.getCrossCityOrderId());
                                if(i == querys.size() && state == 1 && (null != b && !b.booleanValue())){
                        if (i == querys.size() + 5 && state == 1 && (null != b && !b.booleanValue())) {
                                    pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
                                    OrderTaxiServiceImpl.orderIds.remove(orderTaxi.getId());
                                    pushEndMap.put(orderTaxi.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
@@ -2536,6 +2560,7 @@
    /**
     * 获取订单编号
    *
     * @return
     * @throws Exception
     */
@@ -2584,7 +2609,8 @@
//            }
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
    
            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (money.intValue() * query1.getIntegral()));//积分
    
            //添加交易明细
@@ -2621,7 +2647,8 @@
        query.setCode(order_id);
        paymentRecordService.updateById(query);
        SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
      SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
        userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
        //添加交易明细
@@ -2654,7 +2681,8 @@
         //添加司机信息
         DriverInfoWarpper driverInfoWarpper = new DriverInfoWarpper();
         Driver driver = driverService.selectById(orderCrossCity.getDriverId());
         BeanUtils.copyProperties(driver, driverInfoWarpper);         unPayOrderVO.setDriverInfoWarpper(driverInfoWarpper);
         BeanUtils.copyProperties(driver, driverInfoWarpper);
         unPayOrderVO.setDriverInfoWarpper(driverInfoWarpper);
         //其余信息
         BeanUtils.copyProperties(orderCrossCity, unPayOrderVO);
         unPayOrderVOList.add(unPayOrderVO);