Pu Zhibing
8 天以前 6e0bccef16f74b5aa80eb51d7792a36ed7e20c38
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
@@ -1427,6 +1432,7 @@
    /**
     * 获取取消订单的支付费用
    *
     * @param id
     * @return
     * @throws Exception
@@ -1438,8 +1444,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){
@@ -1453,6 +1460,7 @@
    /**
     * 取消订单操作
    *
     * @param id
     * @param payType
     * @param cancleId
@@ -1480,8 +1488,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");
@@ -1579,6 +1587,7 @@
    /**
     * 计算价格
    *
     * @param distance
     * @param peopleNumber
     * @param travelMode
@@ -1691,6 +1700,7 @@
    /**
     * 删除定时任务
    *
     * @param orderId
     */
    @Override
@@ -1713,6 +1723,7 @@
    /**
     * 获取红包
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1768,6 +1779,7 @@
    /**
     * 分享成功后添加红包
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1804,6 +1816,7 @@
    /**
     * 取消订单支付后的处理
    *
     * @param id            订单=id
     * @param order_id      工行支付单号
     * @param type          1=微信,2=支付宝
@@ -1857,6 +1870,7 @@
    /**
     * 获取个人中心订单列表
    *
     * @param uid
     * @param pageNum
     * @param size
@@ -1890,6 +1904,7 @@
    /**
     * 获取红包使用记录
    *
     * @param uid
     * @return
     * @throws Exception
@@ -1902,6 +1917,7 @@
    /**
     * 添加跨城取消(直接取消不需要支付费用,退款)
    *
     * @param id
     * @param reason
     * @param remark
@@ -1930,7 +1946,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);
@@ -2060,6 +2077,7 @@
    /**
     * 获取服务中的订单数据
    *
     * @param uid
     * @return
     * @throws Exception
@@ -2130,6 +2148,7 @@
    /**
     * 摆渡下单
    *
     * @param serverCarModelIds
     * @param travelTime
     * @param placementLon
@@ -2188,6 +2207,7 @@
    /**
     * 出租车摆渡单
    *
     * @param travelTime
     * @param placementLon
     * @param placementLat
@@ -2279,6 +2299,7 @@
    /**
     * 专车摆渡单
    *
     * @param serverCarModelId
     * @param travelTime
     * @param placementLon
@@ -2357,6 +2378,7 @@
    /**
     * 摆渡车推单操作
    *
     * @param list
     * @throws Exception
     */
@@ -2377,9 +2399,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){
@@ -2409,7 +2431,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){
@@ -2433,7 +2456,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);//推送后添加标识
@@ -2446,9 +2469,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){
@@ -2478,7 +2501,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){
@@ -2504,7 +2528,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);//推送后添加标识
@@ -2529,6 +2553,7 @@
    /**
     * 获取订单编号
    *
     * @return
     * @throws Exception
     */
@@ -2577,7 +2602,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()));//积分
    
            //添加交易明细
@@ -2614,7 +2640,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()));//积分
        //添加交易明细
@@ -2647,7 +2674,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);