| | |
| | | public static Map<Integer, Boolean> pushEndMap = new HashMap<>(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 计算支付金额 |
| | | * |
| | | * @param startLonLat |
| | | * @param endLonLat |
| | | * @param peopleNumber |
| | |
| | | |
| | | /** |
| | | * 获取用户余额和可用优惠券数量 |
| | | * |
| | | * @param orderId |
| | | * @param uid |
| | | * @return |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取支付页面的优惠券列表 |
| | | * |
| | | * @param orderId |
| | | * @param uid |
| | | * @param pageNum |
| | |
| | | |
| | | /** |
| | | * 订单支付 |
| | | * |
| | | * @param payType |
| | | * @param orderId |
| | | * @param couponId |
| | |
| | | } |
| | | |
| | | 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()));//积分 |
| | | |
| | | //添加交易明细 |
| | |
| | | |
| | | |
| | | 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()));//积分 |
| | | |
| | | //添加交易明细 |
| | |
| | | |
| | | @Autowired |
| | | private AppOrderController appOrderController; |
| | | |
| | | /** |
| | | * 支付成功后的回调操作 |
| | | * |
| | | * @param id 订单=id |
| | | * @param order_id 工行支付单号 |
| | | * @param type 1=微信,2=支付宝 |
| | |
| | | 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); |
| | | |
| | |
| | | |
| | | /** |
| | | * 跨城下单操作 |
| | | * |
| | | * @param orderCrossCityWarpper |
| | | * @param uid |
| | | * @return |
| | |
| | | } |
| | | |
| | | //调用移动的小号接口 |
| | | 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){ |
| | |
| | | |
| | | /** |
| | | * 获取订单 |
| | | * |
| | | * @param uid |
| | | * @param state |
| | | * @return |
| | |
| | | |
| | | /** |
| | | * 获取订单详情 |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | * @throws Exception |
| | |
| | | |
| | | /** |
| | | * 获取取消订单的支付费用 |
| | | * |
| | | * @param id |
| | | * @return |
| | | * @throws Exception |
| | |
| | | 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){ |
| | |
| | | |
| | | /** |
| | | * 取消订单操作 |
| | | * |
| | | * @param id |
| | | * @param payType |
| | | * @param cancleId |
| | |
| | | }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"); |
| | |
| | | |
| | | /** |
| | | * 计算价格 |
| | | * |
| | | * @param distance |
| | | * @param peopleNumber |
| | | * @param travelMode |
| | |
| | | |
| | | /** |
| | | * 删除定时任务 |
| | | * |
| | | * @param orderId |
| | | */ |
| | | @Override |
| | |
| | | |
| | | /** |
| | | * 获取红包 |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | * @throws Exception |
| | |
| | | |
| | | /** |
| | | * 分享成功后添加红包 |
| | | * |
| | | * @param orderId |
| | | * @return |
| | | * @throws Exception |
| | |
| | | |
| | | /** |
| | | * 取消订单支付后的处理 |
| | | * |
| | | * @param id 订单=id |
| | | * @param order_id 工行支付单号 |
| | | * @param type 1=微信,2=支付宝 |
| | |
| | | |
| | | /** |
| | | * 获取个人中心订单列表 |
| | | * |
| | | * @param uid |
| | | * @param pageNum |
| | | * @param size |
| | |
| | | |
| | | /** |
| | | * 获取红包使用记录 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | * @throws Exception |
| | |
| | | |
| | | /** |
| | | * 添加跨城取消(直接取消不需要支付费用,退款) |
| | | * |
| | | * @param id |
| | | * @param reason |
| | | * @param remark |
| | |
| | | } |
| | | |
| | | //还原座位 |
| | | 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); |
| | |
| | | |
| | | /** |
| | | * 获取服务中的订单数据 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | * @throws Exception |
| | |
| | | |
| | | /** |
| | | * 摆渡下单 |
| | | * |
| | | * @param serverCarModelIds |
| | | * @param travelTime |
| | | * @param placementLon |
| | |
| | | |
| | | /** |
| | | * 出租车摆渡单 |
| | | * |
| | | * @param travelTime |
| | | * @param placementLon |
| | | * @param placementLat |
| | |
| | | |
| | | /** |
| | | * 专车摆渡单 |
| | | * |
| | | * @param serverCarModelId |
| | | * @param travelTime |
| | | * @param placementLon |
| | |
| | | |
| | | /** |
| | | * 摆渡车推单操作 |
| | | * |
| | | * @param list |
| | | * @throws Exception |
| | | */ |
| | |
| | | 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){ |
| | |
| | | } |
| | | |
| | | //开始进行推送的处理 |
| | | 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){ |
| | |
| | | |
| | | //所有推送完后的处理 |
| | | 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);//推送后添加标识 |
| | |
| | | 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){ |
| | |
| | | } |
| | | |
| | | //开始进行推送 |
| | | 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){ |
| | |
| | | |
| | | //所有推送完后的处理 |
| | | 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);//推送后添加标识 |
| | |
| | | |
| | | /** |
| | | * 获取订单编号 |
| | | * |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | |
| | | // } |
| | | 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()));//积分 |
| | | |
| | | //添加交易明细 |
| | |
| | | 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()));//积分 |
| | | |
| | | //添加交易明细 |
| | |
| | | //添加司机信息 |
| | | 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); |