| | |
| | | public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception { |
| | | //定义用户所属公司 |
| | | UserInfo userInfo1 = userInfoService.selectById(uid); |
| | | if (null == userInfo1 || userInfo1.getFlag() == 3) { |
| | | return ResultUtil.error("无效的账户"); |
| | | } |
| | | if (2 == userInfo1.getState()) { |
| | | return ResultUtil.error("账号已被冻结,请联系管理员"); |
| | | } |
| | | Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat())); |
| | | if(null == query){ |
| | | if (null == query) { |
| | | return ResultUtil.error("出发点暂未开通"); |
| | | } |
| | | if(null != userInfo1.getCompanyId() && 0 != userInfo1.getCompanyId()){ |
| | | if (null != userInfo1.getCompanyId() && 0 != userInfo1.getCompanyId()) { |
| | | userInfo1.setCompanyId(query.getId()); |
| | | userInfoService.updateById(userInfo1); |
| | | } |
| | | |
| | | if(orderTaxi.getTravelTime().getTime() > (System.currentTimeMillis() + 600000)){ |
| | | |
| | | if (orderTaxi.getTravelTime().getTime() > (System.currentTimeMillis() + 600000)) { |
| | | orderTaxi.setOrderType(2); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 1.出租车、专车、跨城有待支付的订单不能叫车 |
| | | * 2.小件物流有未完成的订单可以下跨城、专车、出租车 |
| | |
| | | // resultUtil = ResultUtil.error(map.get("msg"), ""); |
| | | // } |
| | | } |
| | | if(payType == 3){//余额支付 |
| | | if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ |
| | | if(payType == 3) {//余额支付 |
| | | if (userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()) { |
| | | return ResultUtil.error("余额不足,无法完成支付"); |
| | | } |
| | | resultUtil= appOrderController.moneyPay(id,userInfo.getId(),query.getMoney()); |
| | | if(resultUtil.getCode()==500){ |
| | | return ResultUtil.error("电子余额不足,无法完成支付"); |
| | | } |
| | | |
| | | // resultUtil= appOrderController.moneyPay(id,userInfo.getId(),query.getMoney()); |
| | | // if(resultUtil.getCode()==500){ |
| | | // return ResultUtil.error("电子余额不足,无法完成支付"); |
| | | // } |
| | | |
| | | userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(uid, "出租车取消订单", query.getMoney(), 2, 1, 1, 2, id); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | |
| | | //解除小号绑定 |
| | | if(orderTaxi.getBindId() != null){ |
| | | if (orderTaxi.getBindId() != null) { |
| | | chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | } |
| | | |
| | |
| | | public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { |
| | | OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); |
| | | OrderTaxi orderTaxi = this.selectById(orderId); |
| | | if(null == orderTaxi){ |
| | | if (null == orderTaxi) { |
| | | return orderServerWarpper; |
| | | } |
| | | //计算预计距离和剩余时间 |
| | | String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderTaxi.getDriverId())); |
| | | if(null == value || "".equals(value)){ |
| | | System.err.println("司机没有上传位置信息"); |
| | | |
| | | //调用获取轨迹中的数据 |
| | | List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2); |
| | | if(list.size() > 0){ |
| | | Map<String, Object> map = list.get(list.size() - 1); |
| | | value = map.get("lon") + "," + map.get("lat"); |
| | | String value = null; |
| | | if (null != orderTaxi.getDriverId()) { |
| | | value = (String) redisTemplate.opsForValue().get("DRIVER" + orderTaxi.getDriverId()); |
| | | if (null == value || "".equals(value)) { |
| | | System.err.println("司机没有上传位置信息"); |
| | | |
| | | //调用获取轨迹中的数据 |
| | | List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2); |
| | | if (list.size() > 0) { |
| | | Map<String, Object> map = list.get(list.size() - 1); |
| | | value = map.get("lon") + "," + map.get("lat"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | orderServerWarpper.setOrderId(orderTaxi.getId()); |
| | | orderServerWarpper.setOrderType(2); |
| | | orderServerWarpper.setState(orderTaxi.getState()); |
| | | orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0"); |
| | | orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0"); |
| | | orderServerWarpper.setReassignNotice(orderTaxi.getReassignNotice()); |
| | | if(orderTaxi.getState() == 2 || orderTaxi.getState() == 3){//前往预约地 |
| | | if (orderTaxi.getState() == 2 || orderTaxi.getState() == 3) {//前往预约地 |
| | | // TODO: 2023/11/4 无法修改 |
| | | Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderTaxi.getStartLon() + "," + orderTaxi.getStartLat(), 1); |
| | | String d = "0"; |
| | | String t = "0"; |
| | | if(null == distance){ |
| | | if (null == distance) { |
| | | System.err.println("查询距离出错了"); |
| | | }else{ |
| | | } else { |
| | | d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); |
| | | t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; |
| | | } |
| | |
| | | userRedPacketRecord.setUserId(orderTaxi.getUserId()); |
| | | userRedPacketRecordService.insert(userRedPacketRecord); |
| | | } |
| | | appOrderController.moneyPay(orderTaxi.getId(),orderTaxi.getUserId(),money); |
| | | // appOrderController.moneyPay(orderTaxi.getId(),orderTaxi.getUserId(),money); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | |
| | |
| | | } |
| | | Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司 |
| | | List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数 |
| | | boolean b = false; |
| | | for (int i = 1; i <= querys.size(); i++) { |
| | | if (b) { |
| | | break; |
| | | } |
| | | PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0); |
| | | System.out.println("pushOrder:" + pushOrder); |
| | | //获取空闲司机 |
| | |
| | | resultUtil = payMoneyUtil.alipay("感谢费", "感谢费", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), money.toString(), "/base/aliPayThankYouFee"); |
| | | paymentRecordService.saveData(1, uid, 1, orderId, 2, 2, money, "", 1);//添加预支付数据 |
| | | } |
| | | if(payType == 3){//余额支付 |
| | | if(userInfo.getBalance() == null || userInfo.getBalance() < money){ |
| | | if(payType == 3) {//余额支付 |
| | | if (userInfo.getBalance() == null || userInfo.getBalance() < money) { |
| | | return ResultUtil.error("余额不足,无法完成支付"); |
| | | } |
| | | resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),money); |
| | | if(resultUtil.getCode()==500){ |
| | | return ResultUtil.error("电子余额不足,无法完成支付"); |
| | | } |
| | | // resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),money); |
| | | // if(resultUtil.getCode()==500){ |
| | | // return ResultUtil.error("电子余额不足,无法完成支付"); |
| | | // } |
| | | userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | |
| | | |
| | | SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId()); |
| | | userInfo.setIntegral(userInfo.getIntegral() + (money.intValue() * query1.getIntegral()));//积分 |
| | | |
| | | |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(uid, "出租车-感谢费", money, 2, 1, 1, 2, orderId); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | |
| | | orderTaxi.setThankYouFee(money); |
| | | this.updateById(orderTaxi); |
| | | |