| | |
| | | a.isReassign as isReassign, |
| | | a.orderSource as orderSource, |
| | | a.companyId as companyId, |
| | | a.payManner as payManner, |
| | | a.peopleNumber as peopleNumber, |
| | | a.remark as remark |
| | | from t_order_cross_city a |
| | |
| | | a.endAddress as endAddress, |
| | | a.state as state, |
| | | a.driverId as driverId, |
| | | a.payManner as payManner, |
| | | a.peopleNumber as peopleNumber, |
| | | (select nickName from t_user where id = a.userId)as `user`, |
| | | a.remark as remark |
| | |
| | | a.endAddress as endAddress, |
| | | a.state as state, |
| | | a.driverId as driverId, |
| | | a.payManner as payManner, |
| | | a.peopleNumber as peopleNumber, |
| | | (select nickName from t_user where id = a.userId)as `user`, |
| | | a.remark as remark |
| | |
| | | a.endAddress as endAddress, |
| | | a.state as state, |
| | | a.driverId as driverId, |
| | | a.payManner as payManner, |
| | | a.peopleNumber as peopleNumber, |
| | | (select nickName from t_user where id = a.userId)as `user`, |
| | | a.remark as remark |
| | |
| | | a.endAddress as endAddress, |
| | | a.state as state, |
| | | a.orderMoney as orderMoney, |
| | | a.payManner as payManner, |
| | | a.peopleNumber as peopleNumber, |
| | | UNIX_TIMESTAMP(a.travelTime) as travelTime, |
| | | a.remark as remark, |
| | |
| | | if (!cbyzxOrderPayHelper.isCreateSuccess(response)) { |
| | | return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response); |
| | | } |
| | | order.setPayManner(1); |
| | | orderCrossCityMapper.updateById(order); |
| | | paymentRecordService.saveData(1, order.getDriverId(), 2, crossCityOrderId, 3, 1, order.getOrderMoney(), outTradeNo, 1); |
| | | return ResultUtil.success(response); |
| | | } else if (type == 3) { |
| | | order.setState(2); |
| | | order.setPayManner(2); |
| | | order.setPayMoney(order.getOrderMoney()); |
| | | orderCrossCityMapper.updateById(order); |
| | | |
| | |
| | | private Integer peopleNumber; |
| | | @ApiModelProperty("支付金额") |
| | | private Double payMoney; |
| | | @ApiModelProperty("支付方式(1=线上支付/司机代付,2=线下支付)") |
| | | private Integer payManner; |
| | | @ApiModelProperty("座位") |
| | | private String seatNumber; |
| | | |
| | |
| | | this.payMoney = payMoney; |
| | | } |
| | | |
| | | public Integer getPayManner() { |
| | | return payManner; |
| | | } |
| | | |
| | | public void setPayManner(Integer payManner) { |
| | | this.payManner = payManner; |
| | | } |
| | | |
| | | public String getSeatNumber() { |
| | | return seatNumber; |
| | | } |
| | |
| | | ", phone='" + phone + '\'' + |
| | | ", peopleNumber=" + peopleNumber + |
| | | ", payMoney=" + payMoney + |
| | | ", payManner=" + payManner + |
| | | ", seatNumber='" + seatNumber + '\'' + |
| | | '}'; |
| | | } |
| | |
| | | orderInfoWarpper.setTrackId(null != map.get("trackId") ? String.valueOf(map.get("trackId")) : ""); |
| | | orderInfoWarpper.setPeopleNumber(null != map.get("peopleNumber") ? Integer.valueOf(String.valueOf(map.get("peopleNumber"))) : 0); |
| | | orderInfoWarpper.setPayMoney(null != map.get("payMoney") ? Double.valueOf(String.valueOf(map.get("payMoney"))) : 0); |
| | | orderInfoWarpper.setPayManner(null != map.get("payManner") ? Integer.valueOf(String.valueOf(map.get("payManner"))) : null); |
| | | orderInfoWarpper.setSeatNumber(null != map.get("seatNumber") ? String.valueOf(map.get("seatNumber")) : ""); |
| | | } |
| | | return orderInfoWarpper; |
| | |
| | | @Autowired |
| | | private ITDriverServiceService tDriverServiceService; |
| | | |
| | | @Autowired |
| | | private ITOrderPrivateCarService orderPrivateCarService; |
| | | |
| | | @Autowired |
| | | private ITOrderTaxiService orderTaxiService; |
| | | |
| | | @Autowired |
| | | private ITOrderCrossCityService orderCrossCityService; |
| | | |
| | | @Autowired |
| | | private ITCarService tCarService; |
| | | |
| | |
| | | return null; |
| | | } |
| | | for (Integer cancelledType : cancelledTypes) { |
| | | if (hasDriverUnfinishedOrder(driverIds, cancelledType)) { |
| | | if (hasDriverEnabledService(driverIds, cancelledType)) { |
| | | return "当前公司内存在司机正在使用" + getServiceName(cancelledType) + "业务,无法变动"; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | private boolean hasDriverUnfinishedOrder(List<Integer> driverIds, Integer serviceType) { |
| | | private boolean hasDriverEnabledService(List<Integer> driverIds, Integer serviceType) { |
| | | if (driverIds == null || driverIds.isEmpty() || serviceType == null) { |
| | | return false; |
| | | } |
| | | if (Integer.valueOf(1).equals(serviceType)) { |
| | | return orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | if (Integer.valueOf(2).equals(serviceType)) { |
| | | return orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | if (Integer.valueOf(3).equals(serviceType)) { |
| | | return orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>() |
| | | .eq("isDelete", 1) |
| | | .in("driverId", driverIds) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | return false; |
| | | return tDriverServiceService.selectCount(new EntityWrapper<TDriverService>() |
| | | .in("driverId", driverIds) |
| | | .eq("type", serviceType)) > 0; |
| | | } |
| | | |
| | | private String getServiceName(Integer serviceType) { |
| | |
| | | |
| | | @Autowired |
| | | private ITDriverService tDriverService; |
| | | |
| | | @Autowired |
| | | private ITOrderTaxiService tOrderTaxiService; |
| | | |
| | | @Autowired |
| | | private ITOrderCrossCityService tOrderCrossCityService; |
| | | |
| | | @Autowired |
| | | private ITCompanyCityService tCompanyCityService; |
| | | |
| | | @Autowired |
| | | private GDMapGeocodingUtil gdMapGeocodingUtil; |
| | | |
| | | @Autowired |
| | | private GDMapElectricFenceUtil gdMapElectricFenceUtil; |
| | | |
| | | @Autowired |
| | | private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; |
| | |
| | | public Object add(TOrderPrivateCar privateCar) { |
| | | TUser user = userService.selectOne(new EntityWrapper<TUser>().eq("phone", privateCar.getPassengersPhone())); |
| | | if (ToolUtil.isNotEmpty(user)) {/// 用户是平台用户 |
| | | privateCar.setOrderNum("PRIVATE" + String.valueOf(1000000 + privateCar.selectList(null).size() + 1).substring(1)); |
| | | if (hasUnfinishedTravelOrder(user.getId())) { |
| | | return new ErrorTip(500, "该乘客有未完成的订单"); |
| | | } |
| | | privateCar.setOrderNum(getPrivateCarOrderNum()); |
| | | privateCar.setUserId(user.getId()); |
| | | privateCar.setState(1); |
| | | privateCar.setInsertTime(DateUtil.parseTime(DateUtil.getTime())); |
| | |
| | | } else { |
| | | privateCar.setOrderType(1); |
| | | } |
| | | fillDispatchPrivateCarOrder(privateCar); |
| | | tOrderPrivateCarService.insert(privateCar); |
| | | } else {/// 用户不是平台用户时 |
| | | TUser tUser = new TUser(); |
| | |
| | | userService.insert(tUser); |
| | | |
| | | /// 存入订单信息 |
| | | privateCar.setOrderNum("PRIVATE" + String.valueOf(1000000 + tOrderPrivateCarService.selectList(null).size() + 1).substring(1)); |
| | | privateCar.setOrderNum(getPrivateCarOrderNum()); |
| | | privateCar.setUserId(tUser.getId()); |
| | | privateCar.setState(1); |
| | | privateCar.setInsertTime(DateUtil.parseTime(DateUtil.getTime())); |
| | |
| | | } else { |
| | | privateCar.setOrderType(1); |
| | | } |
| | | fillDispatchPrivateCarOrder(privateCar); |
| | | tOrderPrivateCarService.insert(privateCar); |
| | | } |
| | | |
| | |
| | | System.out.println("添加订单推单调用结果:" + result); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | private String getPrivateCarOrderNum() { |
| | | return "PR" + new java.text.SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + UUIDUtil.getRandomCode().substring(0, 5); |
| | | } |
| | | |
| | | private boolean hasUnfinishedTravelOrder(Integer userId) { |
| | | if (userId == null) { |
| | | return false; |
| | | } |
| | | return tOrderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>() |
| | | .eq("isDelete", 1) |
| | | .eq("userId", userId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0 |
| | | || tOrderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>() |
| | | .eq("isDelete", 1) |
| | | .eq("userId", userId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0 |
| | | || tOrderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>() |
| | | .eq("isDelete", 1) |
| | | .eq("userId", userId) |
| | | .notIn("state", 8, 9, 10, 12)) > 0; |
| | | } |
| | | |
| | | private void fillDispatchPrivateCarOrder(TOrderPrivateCar privateCar) { |
| | | privateCar.setIsDelete(1); |
| | | privateCar.setTotalPeopleNum(1); |
| | | fillPlacementAndCompany(privateCar); |
| | | fillEstimateDistance(privateCar); |
| | | } |
| | | |
| | | private void fillPlacementAndCompany(TOrderPrivateCar privateCar) { |
| | | if (privateCar.getStartLon() == null || privateCar.getStartLat() == null) { |
| | | return; |
| | | } |
| | | try { |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(privateCar.getStartLon().toString(), privateCar.getStartLat().toString()); |
| | | if (ToolUtil.isNotEmpty(geocode.get("address"))) { |
| | | privateCar.setPlacementAddress(geocode.get("address")); |
| | | } |
| | | if (ToolUtil.isNotEmpty(geocode.get("districtCode"))) { |
| | | TCompanyCity companyCity = tCompanyCityService.selectOne(new EntityWrapper<TCompanyCity>() |
| | | .eq("areaCode", Integer.valueOf(geocode.get("districtCode"))) |
| | | .eq("state", 1)); |
| | | if (companyCity != null) { |
| | | privateCar.setCompanyId(companyCity.getCompanyId()); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("管理端添加快车单补充下单地/公司失败:" + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | private void fillEstimateDistance(TOrderPrivateCar privateCar) { |
| | | if (privateCar.getStartLon() == null || privateCar.getStartLat() == null |
| | | || privateCar.getEndLon() == null || privateCar.getEndLat() == null) { |
| | | return; |
| | | } |
| | | try { |
| | | Map<String, String> distanceMap = gdMapElectricFenceUtil.getDistance( |
| | | privateCar.getStartLon() + "," + privateCar.getStartLat(), |
| | | privateCar.getEndLon() + "," + privateCar.getEndLat(), 1); |
| | | if (distanceMap != null) { |
| | | if (ToolUtil.isNotEmpty(distanceMap.get("distance"))) { |
| | | privateCar.setEstimateMileage(Double.valueOf(distanceMap.get("distance"))); |
| | | } |
| | | if (ToolUtil.isNotEmpty(distanceMap.get("duration"))) { |
| | | privateCar.setEstimateTime(Double.valueOf(distanceMap.get("duration")) / 60); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("管理端添加快车单补充预估距离失败:" + e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | orderCrossCity.setState(2);//已支付,订单状态修改为待出发 |
| | | orderCrossCity.setPayType(3); |
| | | orderCrossCity.setPayManner(1); |
| | | orderCrossCity.setPayMoney(orderMoney); |
| | | orderCrossCity.setPayTime(new Date()); |
| | | |
| | |
| | | |
| | | orderCrossCity.setState(2);//已支付,订单状态修改为待出发 |
| | | orderCrossCity.setPayType(3); |
| | | orderCrossCity.setPayManner(1); |
| | | orderCrossCity.setPayMoney(orderMoney); |
| | | orderCrossCity.setPayTime(new Date()); |
| | | |
| | |
| | | transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId()); |
| | | orderCrossCity.setState(2);//先支付再服务 |
| | | orderCrossCity.setPayType(type); |
| | | orderCrossCity.setPayManner(1); |
| | | orderCrossCity.setPayMoney(query.getAmount()); |
| | | orderCrossCity.setBillNo(no); |
| | | orderCrossCity.setPayTime(new Date()); |
| | |
| | | |
| | | orderPrivateCar.setState(1); |
| | | orderPrivateCar.setPayType(payType); |
| | | orderPrivateCar.setPayManner(1); |
| | | orderPrivateCar.setPayMoney(payAmount); |
| | | orderPrivateCar.setPayTime(new Date()); |
| | | orderPrivateCar.setPrepayStage(2); |
| | |
| | | |
| | | orderTaxi.setState(1); |
| | | orderTaxi.setPayType(payType); |
| | | orderTaxi.setPayManner(1); |
| | | orderTaxi.setPayMoney(payAmount); |
| | | orderTaxi.setPayTime(new Date()); |
| | | orderTaxi.setPrepayStage(2); |