From 7c48261114a964c5cc3a964bcf00772152d2b531 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 01 八月 2025 13:47:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong --- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java | 35 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java | 58 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java | 4 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java | 63 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java | 95 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 51 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java | 31 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java | 39 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java | 64 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java | 53 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java | 12 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 595 +++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java | 45 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java | 13 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java | 4 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 186 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 11 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java | 4 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java | 31 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java | 84 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java | 8 MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java | 6 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 31 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java | 42 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 14 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java | 47 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java | 15 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java | 7 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java | 7 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java | 3 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java | 57 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 213 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java | 41 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 41 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java | 27 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java | 31 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 177 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 47 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java | 15 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java | 43 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java | 15 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java | 12 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java | 15 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 88 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java | 41 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java | 4 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java | 1 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java | 19 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java | 23 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java | 2678 ++++++++------- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java | 11 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java | 77 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 126 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java | 39 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java | 27 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 80 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java | 1 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 4298 ++++++++++++------------ 64 files changed, 6,260 insertions(+), 3,708 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index f459621..8eead38 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -746,6 +746,7 @@ if(null == position){ position = new DriverPosition(); } + position.setDriverId(orderPosition.getDriverId()); position.setPoint(point); mongoTemplate.save(position); //处理业务上的功能 @@ -1831,8 +1832,15 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "当前设备IP地址", name = "ip", required = true, dataType = "String"), @ApiImplicitParam(value = "当前设备mac地址", name = "mac", required = true, dataType = "String"), + @ApiImplicitParam(value = "01 证联收银台支付\n" + + "\t 04 HOME 页\n" + + "\t 06 申请免密签约\n" + + "\t 07 商户收银台支付\n" + + "\t 08 开户(绑卡)\n" + + "\t 09 开通支付账户\n" + + "\t 10 打开付款码", name = "type", required = true, dataType = "String"), }) - public ResultUtil<String> getZLToken(String ip, String mac, HttpServletRequest request){ + public ResultUtil<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if (null == driverId) { @@ -1849,6 +1857,7 @@ tradeTerminalInfo.setTerminal("1"); tradeTerminalInfo.setMac(mac); tokenRequest.setTradeTerminalInfo(tradeTerminalInfo); + tokenRequest.setType(type); String token = TokenUtil.getToken(tokenRequest); return ResultUtil.success(token); }catch (Exception e){ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 77c0693..57f5b56 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper; import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; @@ -332,6 +331,9 @@ return ResultUtil.runErr(); } } + + + @ResponseBody @PostMapping("/api/order/queryOrderInfo1") @@ -555,6 +557,10 @@ return ResultUtil.runErr(); } } + + + + @ResponseBody @PostMapping("/api/order/cancleOrder") @@ -572,6 +578,9 @@ return ResultUtil.runErr(); } } + + + @ResponseBody @PostMapping("/api/order/updatePeopleNum") @ApiOperation(value = "修改人数", tags = {"司机端-服务中"}, notes = "") @@ -589,6 +598,8 @@ return ResultUtil.runErr(); } } + + @ResponseBody @PostMapping("/api/order/confirmFees1") @@ -724,30 +735,7 @@ } - @ResponseBody - @PostMapping("/base/order/test") - public String test(String phoneA, String phoneB){ - try { - Map<String, String> map = chinaMobileUtil.midAxbBindSend(phoneA, phoneB, (System.currentTimeMillis() + 86400000)); - System.err.println(JSON.toJSONString(map)); - }catch (Exception e){ - e.printStackTrace(); - return ""; - } - return null; - } - @ResponseBody - @PostMapping("/base/order/test_") - public String test(String bindId){ - try { - Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(bindId, null, null); - }catch (Exception e){ - e.printStackTrace(); - return ""; - } - return null; - } /** @@ -780,6 +768,9 @@ } + + + @ResponseBody @PostMapping("/api/order/queryVoiceBroadcast") @ApiOperation(value = "接单后获取语音播报内容", tags = {"司机端-首页"}, notes = "") @@ -826,6 +817,8 @@ } } + + @ResponseBody diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java index 183ac46..c99a141 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java @@ -443,6 +443,8 @@ private String promotionUser; private String promotionPhone; + + private String travelId; public String getPromotionUser() { @@ -1196,7 +1198,15 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } - + + public String getTravelId() { + return travelId; + } + + public void setTravelId(String travelId) { + this.travelId = travelId; + } + @Override public String toString() { return "OrderPrivateCar{" + diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 2599463..90700fe 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -16,6 +16,9 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; @@ -245,7 +248,41 @@ orderPrivateCar.setPromotionPhone(driver1.getPhone()); orderPrivateCar.setPromotionDriverId(promotion); } - + + orderPrivateCar.setPromotion(promotion); + + if(null == oldDriverId){ + UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId()); + Company company = companyService.selectById(driver.getCompanyId()); + //调三方订单中心创建行程单 + CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); + request.setOrderNo("PR" + orderPrivateCar.getId()); + request.setCustomerId(userInfo.getOnconUUID()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setServiceType(2); + String travelItinerary = OrderUtil.createTravelItinerary(request); + orderPrivateCar.setTravelId(travelItinerary); + }else{ + //改派抢单 + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderPrivateCar.getTravelId()); + request1.setStatus(orderPrivateCar.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); + } + this.updateById(orderPrivateCar); //处理摆渡车的情况 @@ -325,7 +362,7 @@ }).start(); } - + return ResultUtil.success(orderPrivateCar.getId()); } @@ -522,6 +559,20 @@ break; } this.updateById(orderPrivateCar); + + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Company company = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + request.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); // TODO: 2020/6/5 推送状态 OrderPrivateCar finalOrderPrivateCar = orderPrivateCar; @@ -589,20 +640,33 @@ orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney()); orderPrivateCar.setState(7); this.updateById(orderPrivateCar); + + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Company company = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(7); + request.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1); //回滚司机状态为空闲 if(orderPrivateCar.getSpellSuccess()==0){ - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); }else{ if(orderPrivateCar.getPid()==null){ Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6)); if(number<=0){ - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); } @@ -610,7 +674,6 @@ Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6)); Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id",orderPrivateCar.getPid()).lt("state",6)); if(number<=0 && number1<=0){ - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); } @@ -771,12 +834,25 @@ orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney() + orderPrivateCar.getHolidayFee() + t); orderPrivateCar.setState(7); this.updateById(orderPrivateCar); + + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderPrivateCar.getTravelId()); + request1.setStatus(orderPrivateCar.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1); //回滚司机状态为空闲 - Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java index 556a81e..8554b90 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java @@ -146,6 +146,11 @@ */ private Date bindExpireDate; + /** + * 中台用户ID + */ + @TableField("onconUUID") + private String onconUUID; public Integer getBindDriverId() { return bindDriverId; @@ -354,7 +359,15 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } - + + public String getOnconUUID() { + return onconUUID; + } + + public void setOnconUUID(String onconUUID) { + this.onconUUID = onconUUID; + } + @Override public String toString() { return "UserInfo{" + diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index 72db972..83b5f5e 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java @@ -16,13 +16,13 @@ import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysReformistMapper; import com.stylefeng.guns.modular.system.model.AdditionalFee; +import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderPosition; -import com.stylefeng.guns.modular.system.service.IAdditionalFeeService; -import com.stylefeng.guns.modular.system.service.IDriverService; -import com.stylefeng.guns.modular.system.service.IOpenCityService; -import com.stylefeng.guns.modular.system.service.IOrderService; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -99,6 +99,9 @@ // private RedissonClient redissonClient; @Autowired private IOpenCityService openCityService; + + @Autowired + private ICompanyService companyService; @@ -509,10 +512,10 @@ public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception { //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制 if(1 == orderType || 2 == orderType){ -// RLock lock = redissonClient.getLock("grabOrder:" + orderId); -// if(!lock.tryLock()){ -// return ResultUtil.error("抢单失败,请稍后重试"); -// } + Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1"); + if(!lock){ + return ResultUtil.error("抢单失败,请稍后重试"); + } try { if(1 == orderType){ return orderPrivateCarService.grabOrder(orderId, uid); @@ -523,7 +526,7 @@ }catch (Exception e){ e.printStackTrace(); }finally { -// lock.unlock(); + redisTemplate.delete("grabOrder:" + orderId); } } switch (orderType){ @@ -1181,6 +1184,21 @@ orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); orderPrivateCar.setState(8); orderPrivateCarService.updateById(orderPrivateCar); + + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderPrivateCar.getTravelId()); + request1.setStatus(orderPrivateCar.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); + userId = orderPrivateCar.getUserId(); driverId = orderPrivateCar.getDriverId(); state = orderPrivateCar.getState(); @@ -1210,6 +1228,21 @@ orderTaxi.setPayMoney(orderTaxi.getOrderMoney()); orderTaxi.setState(8); orderTaxiService.updateById(orderTaxi); + + Driver driver1 = driverService.selectById(orderTaxi.getDriverId()); + Company company = companyService.selectById(driver1.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + request.setDriverId(driver1.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + userId = orderTaxi.getUserId(); driverId = orderTaxi.getDriverId(); state = orderTaxi.getState(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java index 7fbad66..cd3f3ad 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java @@ -21,6 +21,8 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.apache.commons.lang.time.DateFormatUtils; @@ -188,6 +190,20 @@ orderPrivateCar.setState(11); orderPrivateCar.setReassignNotice(2); orderPrivateCarService.updateById(orderPrivateCar); + + Company company = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + request.setDriverId(driver.getEmpId().toString()); + if(2 == orderPrivateCar.getPromotion()){ + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + //添加已收入明细 // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney()); @@ -200,7 +216,20 @@ orderTaxi.setState(11); orderTaxi.setReassignNotice(2); orderTaxiService.updateById(orderTaxi); - + + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderTaxi.getTravelId()); + request1.setStatus(orderTaxi.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); + //添加已收入明细 // incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney()); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index 6b0eeaf..e893605 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -57,7 +57,7 @@ private Map<String, Timer> taskMap = new HashMap<>();//存储定时推送的定时器 - private final String socket_uri = "http://172.21.35.142:6000"; + private final String socket_uri = "http://127.0.0.1:6000"; // qyt 改派重新推单 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java new file mode 100644 index 0000000..b0314db --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java @@ -0,0 +1,595 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; +import com.open.common.util.OpenApiClient; +import com.open.common.util.SystemParameterNames; +import com.stylefeng.guns.modular.system.util.UUIDUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; +import lombok.extern.slf4j.Slf4j; + +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author zhibing.pu + * @Date 2025/7/24 9:34 + */ +@Slf4j +public class OrderUtil { + + + public static void main(String[] args) { + //创建行程 +// CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); +// request.setScene("TRAFFIC"); +// request.setPartnerId("522700"); +// request.setOrderNo("01234567890"); +// request.setCustomerId("11448156"); +// request.setDriverId("11448158"); +// request.setSupplierShopId("981100006005951"); +// request.setServiceType(1); +// String travelItinerary = createTravelItinerary(request); +// System.err.println(travelItinerary);//1950363840206753792 + + //修改行程状态 +// ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); +// request.setScene("TRAFFIC"); +// request.setPartnerId("522700"); +// request.setOrderId("1950363840206753792"); +// request.setStatus(7); +// request.setDriverId("11448158"); +// request.setSupplierShopId("981100006005951"); +// Boolean aBoolean = modifyTravelItinerary(request); + + //订单创建及拉起支付 +// TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); +// tradeOrderCreateData.setScene("TRAFFIC"); +// tradeOrderCreateData.setPartnerId("522700"); +// tradeOrderCreateData.setTreatShopId("11448158"); +// tradeOrderCreateData.setOrderAppId("52270015"); +// tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); +// tradeOrderCreateData.setCharge(new BigDecimal("0.01")); +// tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); +// tradeOrderCreateData.setOrderId("1950363840206753792"); +// tradeOrderCreateData.setOrderNo("01234567890"); +// tradeOrderCreateData.setCustomerId("11448156"); +// tradeOrderCreateData.setPayPartnerId("5400004"); +// tradeOrderCreateData.setPartnerPayId("1950363840206753792"); +// tradeOrderCreateData.setCurrency("RMB"); +// tradeOrderCreateData.setTotalFee("1"); +// tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); +// tradeOrderCreateData.setClientIp("127.0.0.1"); +// tradeOrderCreateData.setNeedLoginFlag("N"); +// tradeOrderCreateData.setOrderDesc("出行订单支付"); +// tradeOrderCreateData.setAccessMode("APP"); +// +// List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); +// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); +// goodsInfoRequest.setId("981100006005901"); +// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); +// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); +// goodsInfoRequest.setProfitSharing("1"); +// goodsInfoRequest.setAreaInfo("520100"); +// goodsInfoRequest.setPayType("0"); +// goodsInfoRequest.setBusinessType("10408"); +// goodsInfo.add(goodsInfoRequest); +// tradeOrderCreateData.setGoodsInfo(goodsInfo); +// TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); +// System.err.println(tradeOrderCreate); + //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) + + //查询支付单信息 +// GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); +// getPaymentInfoDataRequest.setPartnerId("5400004"); +// getPaymentInfoDataRequest.setPartnerPayId("1948685426689200128"); +// GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest); +// System.err.println(getPaymentInfo); + + //拉起支付 +// TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); +// tradePayOff1Data.setPartnerId("5400004"); +// tradePayOff1Data.setScene("TRAFFIC"); +// tradePayOff1Data.setPartnerPayId("1948685426689200128"); +// tradePayOff1Data.setCurrency("RMB"); +// tradePayOff1Data.setTotalFee("1"); +// tradePayOff1Data.setRetUrl("/home/"); +// tradePayOff1Data.setClientIp("127.0.0.1"); +// tradePayOff1Data.setNeedLoginFlag("N"); +// tradePayOff1Data.setOrderDesc("出行订单支付"); +// tradePayOff1Data.setAccessMode("APP"); +// List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); +// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); +// goodsInfoRequest.setId("981100006005901"); +// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); +// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); +// goodsInfoRequest.setProfitSharing("1"); +// goodsInfoRequest.setAreaInfo("520100"); +// goodsInfoRequest.setPayType("0"); +// goodsInfoRequest.setBusinessType("10408"); +// goodsInfo.add(goodsInfoRequest); +// tradePayOff1Data.setGoodsInfo(goodsInfo); +// PayInfo payInfo = tradePayOff1(tradePayOff1Data); +// System.err.println(payInfo); + //PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe) + + + // (补偿单)拉起支付 +// TradePayOffData tradePayOffData = new TradePayOffData(); +// tradePayOffData.setPartnerId("5400004"); +// tradePayOffData.setScene("TRAFFIC"); +// tradePayOffData.setPartnerPayId("1948685426689200128"); +// tradePayOffData.setCurrency("RMB"); +// tradePayOffData.setTotalFee("1"); +// tradePayOffData.setRetUrl("/home/"); +// tradePayOffData.setClientIp("127.0.0.1"); +// tradePayOffData.setNeedLoginFlag("N"); +// tradePayOffData.setOrderDesc("出行订单支付"); +// tradePayOffData.setAccessMode("APP"); +// List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); +// PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); +// paymentInfoRequest.setPayModeId("501212"); +// paymentInfoRequests.add(paymentInfoRequest); +// tradePayOffData.setPaymentInfos(paymentInfoRequests); +// List<GoodsInfo> goodsInfo = new ArrayList<>(); +// GoodsInfo goodsInfo1 = new GoodsInfo(); +// goodsInfo1.setMerchantCode(""); +// goodsInfo1.setCustId(""); +// goodsInfo1.setCustName(""); +// goodsInfo1.setProfitSharing("1"); +// goodsInfo.add(goodsInfo1); +// tradePayOffData.setGoodsInfo(goodsInfo); +// PayInfo payInfo1 = tradePayOff(tradePayOffData); +// System.err.println(payInfo1); + + //订单创建 +// CreateOrderRequest createOrderRequest = new CreateOrderRequest(); +// createOrderRequest.setTreatShopId("11448158"); +// createOrderRequest.setOrderAppId("52270015"); +// createOrderRequest.setScene("TRAFFIC"); +// createOrderRequest.setPartnerId("522700"); +// createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); +// createOrderRequest.setCharge(new BigDecimal("0.01")); +// createOrderRequest.setChannelSource("GRJYCXWXXCX"); +// createOrderRequest.setOrderId("1948685426689200128"); +// createOrderRequest.setOrderNo("0123456"); +// createOrderRequest.setCustomerId("11448156"); +// OrderInfo orderInfo = tradeOrderCreate(createOrderRequest); +// System.err.println(orderInfo); + + //行程单列表查询 +// GetTravelItineraryListRequest request = new GetTravelItineraryListRequest(); +// request.setScene("TRAFFIC"); +// request.setPartnerId("522700"); +// request.setCustomerId("11448156"); +// request.setOrderNo("0123456"); +// request.setDriverId("11448158"); +// ListPage<TravelItinerary> travelItineraryList = getTravelItineraryList(request); +// System.err.println(travelItineraryList); + + } + + /** + * 拉起支付 + * + * @param tradePayOff1Data + * @return + */ + public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) { + TradeRequest request = new TradeRequest<TradePayOff1Data>(); + request.setSceneId("1911676727023968256"); + request.setAppId(QianYunTongProperties.appkey); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradePayOff1Data); + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【拉起支付】请求地址:" + url); + log.info("【拉起支付】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【拉起支付】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if (!"000000".equals(resCode)) { + log.error("【拉起支付】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【拉起支付】失败:" + jsonObject.getString("resMsg")); + } + JSONObject busiResp = jsonObject.getJSONObject("busiResp"); + PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class); + return payInfo; + } + + /** + * 创建行程单 + * @param request + * @return 行程单ID + */ + public static String createTravelItinerary(CreateTravelItineraryRequest request){ + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createTravelItinerary"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【创建行程单】请求地址:" + url); + log.info("【创建行程单】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【创建行程单】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if(!"000000".equals(resCode)){ + log.error("【创建行程单】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【创建行程单】失败:" + jsonObject.getString("resMsg")); + } + return jsonObject.getString("busiResp"); + } + + + + /** + * 修改行程单 + * @param request + */ + public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request){ + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyTravelItinerary"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【修改行程单】请求地址:" + url); + log.info("【修改行程单】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【修改行程单】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if(!"000000".equals(resCode)){ + log.error("【修改行程单】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【修改行程单】失败:" + jsonObject.getString("resMsg")); + } + return true; + } + + + /** + * 行程单列表查询 + * @param request + * @return + */ + public static ListPage<TravelItinerary> getTravelItineraryList(GetTravelItineraryListRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getTravelItineraryList"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【行程单列表查询】请求地址:" + url); + log.info("【行程单列表查询】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【行程单列表查询】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if(!"000000".equals(resCode)){ + log.error("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); + } + JSONObject busiResp = jsonObject.getJSONObject("busiResp"); + Integer total = busiResp.getInteger("total"); + Integer pageNum = busiResp.getInteger("pageNum"); + Integer pageSize = busiResp.getInteger("pageSize"); + JSONArray list = busiResp.getJSONArray("list"); + List<TravelItinerary> travelItineraryList = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + TravelItinerary object = list.getObject(i, TravelItinerary.class); + travelItineraryList.add(object); + } + ListPage listPage = new ListPage<TravelItinerary>(); + listPage.setTotal(total); + listPage.setPageNum(pageNum); + listPage.setPageSize(pageSize); + listPage.setList(travelItineraryList); + return listPage; + } + + /** + * 订单创建及拉起支付 + * + * @param tradeOrderCreateData + * @return + */ + public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { + TradeRequest request = new TradeRequest<TradeOrderCreateData>(); + request.setSceneId("1945688132719169536"); + request.setAppId(QianYunTongProperties.appkey); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradeOrderCreateData); + + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【订单创建及拉起支付】请求地址:" + url); + log.info("【订单创建及拉起支付】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【订单创建及拉起支付】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if (!"000000".equals(resCode)) { + log.error("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg")); + } + TradeOrderCreate busiResp = jsonObject.getObject("busiResp", TradeOrderCreate.class); + return busiResp; + } + + /** + * 订单创建 + * + * @param createOrderRequest + * @return + */ + public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) { + TradeRequest request = new TradeRequest<CreateOrderRequest>(); + request.setSceneId(QianYunTongProperties.sceneId); + request.setAppId(QianYunTongProperties.appkey); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(createOrderRequest); + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【订单创建】请求地址:" + url); + log.info("【订单创建】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【订单创建】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if (!"000000".equals(resCode)) { + log.error("【订单创建】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【订单创建】失败:" + jsonObject.getString("resMsg")); + } + JSONObject busiResp = jsonObject.getJSONObject("busiResp"); + OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class); + return orderInfo; + } + + /** + * (补偿单)拉起支付 + * + * @param tradePayOffData + * @return + */ + public static PayInfo tradePayOff(TradePayOffData tradePayOffData) { + TradeRequest request = new TradeRequest<TradePayOffData>(); + request.setSceneId("1774717104844095488"); + request.setAppId(QianYunTongProperties.appkey); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradePayOffData); + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【(补偿单)拉起支付】请求地址:" + url); + log.info("【(补偿单)拉起支付】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【(补偿单)拉起支付】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if (!"000000".equals(resCode)) { + log.error("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg")); + } + JSONObject busiResp = jsonObject.getJSONObject("busiResp"); + PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class); + return payInfo; + } + + + /** + * 查询支付单信息 + * @param getPaymentInfoDataRequest + * @return + */ + public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest){ + GetPaymentInfoRequest request = new GetPaymentInfoRequest(); + request.setRequstType("POST"); + request.setBusType(1); + request.setData(getPaymentInfoDataRequest); + + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentInfo"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【查询支付单信息】请求地址:" + url); + log.info("【查询支付单信息】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【查询支付单信息】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("retCode"); + if(!"0".equals(resCode)){ + log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); + throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); + } + JSONObject object = jsonObject.getJSONObject("object"); + String retCode = object.getString("retCode"); + if(!"000000".equals(retCode)){ + log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); + throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); + } + GetPaymentInfo payInfo = object.getObject("data", GetPaymentInfo.class); + return payInfo; + } + + + /** + * (补偿单)支付成功通知 + * @param request + * @return + */ + public static OrderInfo paymentOrder(PaymentOrderRequest request){ + //请求路径 + String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentOrder"; + //私钥文件 + String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = QianYunTongProperties.appkey;//appkey + Map<String, String> headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Map<String, Object> contentMap = new HashMap<String, Object>(); + Date nowdate = new Date(); + SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); + + String timeStamp = date.format(nowdate); + String messageId = UUIDUtil.getRandomCode(); + contentMap.put(SystemParameterNames.getAppKey(), appKey); + contentMap.put(SystemParameterNames.getMessage_id(), messageId); + contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); + contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + contentMap.put("content", new Gson().toJson(request)); + log.info("【(补偿单)支付成功通知】请求地址:" + url); + log.info("【(补偿单)支付成功通知】请求参数:" + JSON.toJSONString(contentMap)); + String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); + log.info("【(补偿单)支付成功通知】请求结果:" + result); + JSONObject jsonObject = JSON.parseObject(result); + String resCode = jsonObject.getString("resCode"); + if(!"0".equals(resCode)){ + log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); + throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); + } + OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class); + return orderInfo; + } + + + + + + + + +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java index 99a7c02..84d54b2 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java @@ -62,6 +62,10 @@ * 向UAAS服务请求到的secret_key */ private String secretKey; + /** + * 场景编号 + */ + String sceneId; public QianYunTongConfig getQianYunTongConfig() { @@ -77,6 +81,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); + this.sceneId = "1948289607125864448"; } if("test".equals(activeProfile)){ this.setAppkey("10001104"); @@ -90,6 +95,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); + this.sceneId = "1948289607125864448"; } if("prod".equals(activeProfile)){ this.setAppkey("10001104"); @@ -103,6 +109,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); + this.sceneId = ""; } return this; } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java index d06297f..0cf0368 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java @@ -9,41 +9,6 @@ public interface QianYunTongProperties { /************************************开发/测试start***********************************/ -// /** -// * appkey -// */ -// String appkey = "10001104"; -// /** -// * 私钥地址 -// */ -// String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; -// /** -// * 私钥地址 -// */ -// String privateKeyPath = "/root/server/app/key/private_key_test.pem"; -// /** -// * 消费者账号 -// */ -// String userName = "xiaofei"; -// /** -// * 状态 -// * 1:生产环境 -// * 2:测试环境 -// */ -// String status = "1"; -// /** -// * API地址 -// */ -// String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; -// /** -// * 桶名 -// */ -// String bucketName = "bucuTest0625"; - - /************************************开发/测试end***********************************/ - - /************************************生产start***********************************/ - /** * appkey */ @@ -51,15 +16,15 @@ /** * 私钥地址 */ -// String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem"; + String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; /** * 私钥地址 */ - String privateKeyPath = "/root/server/app/key/private_key.pem"; +// String privateKeyPath = "/root/server/app/key/private_key_test.pem"; /** * 消费者账号 */ - String userName = "xiwang"; + String userName = "xiaofei"; /** * 状态 * 1:生产环境 @@ -69,11 +34,50 @@ /** * API地址 */ - String apiUrl = "http://jjzhongtai.stqcloud.com:10010"; + String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; /** * 桶名 */ - String bucketName = "qyt20250702"; + String bucketName = "bucuTest0625"; + /** + * 场景编号 + */ + String sceneId = "1948289607125864448"; + + /************************************开发/测试end***********************************/ + + /************************************生产start***********************************/ + +// /** +// * appkey +// */ +// String appkey = "10001104"; +// /** +// * 私钥地址 +// */ +//// String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem"; +// /** +// * 私钥地址 +// */ +// String privateKeyPath = "/root/server/app/key/private_key.pem"; +// /** +// * 消费者账号 +// */ +// String userName = "xiwang"; +// /** +// * 状态 +// * 1:生产环境 +// * 2:测试环境 +// */ +// String status = "1"; +// /** +// * API地址 +// */ +// String apiUrl = "http://jjzhongtai.stqcloud.com:10010"; +// /** +// * 桶名 +// */ +// String bucketName = "qyt20250702"; /************************************生产end***********************************/ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java new file mode 100644 index 0000000..2201301 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java @@ -0,0 +1,53 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author zhibing.pu + * @Date 2025/7/24 9:35 + */ +@Data +public class CreateOrderRequest { + /** + * 司机id + */ + private String treatShopId; + /** + * 应用场景标识 + */ + private String orderAppId; + /** + * 场景标识 + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”} + */ + private String field1; + /** + * 订单总金额,单位元 + */ + private BigDecimal charge; + /** + * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY + */ + private String channelSource; + /** + * 行程单ID + */ + private String orderId; + /** + * 业务侧订单号 + */ + private String orderNo; + /** + * 下单人ID + */ + private String customerId; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java new file mode 100644 index 0000000..8ce9043 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java @@ -0,0 +1,43 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 16:31 + */ +@Data +public class CreateTravelItineraryRequest { + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 业务侧订单号 + */ + private String orderNo; + /** + * 乘客ID + */ + private String customerId; + /** + * 司机ID + */ + private String driverId; + /** + * 推广员ID + */ + private String promoterId; + /** + * 服务商商户ID + */ + private String supplierShopId; + /** + * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车 + */ + private Integer serviceType; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java new file mode 100644 index 0000000..4718623 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java @@ -0,0 +1,45 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 18:24 + */ +@Data +public class GetPaymentInfo { + /** + * 支付流水号 + */ + private String payId; + /** + * 订单中心行程单ID + */ + private String partnerPayId; + /** + * 接入模式:PC H5 APP + */ + private String accessMode; + /** + * 用户标识 + */ + private String customerId; + /** + * 商户标识 + */ + private String partnerId; + /** + * 币种 + */ + private String currency; + /** + * 支付总金额 + */ + private String totalFee; + /** + * 商品信息 + */ + private List<GoodsInfoRequest> goodsInfo; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java new file mode 100644 index 0000000..c7828b8 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java @@ -0,0 +1,19 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 17:08 + */ +@Data +public class GetPaymentInfoDataRequest { + /** + * 支付单标识。传行程单ID + */ + private String partnerPayId; + /** + * 商户号,由支付中心分配 + */ + private String partnerId; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java new file mode 100644 index 0000000..dfd62c0 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java @@ -0,0 +1,23 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 17:03 + */ +@Data +public class GetPaymentInfoRequest { + /** + * 默认传POST + */ + private String requstType; + /** + * 默认传1 + */ + private Integer busType; + /** + * 业务参数 + */ + private GetPaymentInfoDataRequest data; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java new file mode 100644 index 0000000..fa978a7 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java @@ -0,0 +1,47 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 16:31 + */ +@Data +public class GetTravelItineraryListRequest { + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 业务侧订单号 + */ + private String orderNo; + /** + * 乘客ID + */ + private String customerId; + /** + * 司机ID + */ + private String driverId; + /** + * 推广员ID + */ + private String promoterId; + /** + * 服务商商户ID + */ + private String supplierShopId; + /** + * 每页条数 + */ + private Integer pageSize; + /** + * 当前页码 + */ + private Integer pageNum; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java new file mode 100644 index 0000000..b3d7f21 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java @@ -0,0 +1,39 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:13 + */ +@Data +public class GoodsInfoRequest { + /** + * 企业ID(补偿场景新创建的订单支付传备用金企业ID) + */ + private String id; + /** + * 子商户微信appId(证联预下单支付必填) + */ + private String subAppId; + /** + * 付款人的openId(证联预下单支付必填) + */ + private String subOpenId; + /** + * 分账标识。0:不分账,1:分账 + */ + private String profitSharing; + /** + * 地区标识,默认传520100 + */ + private String areaInfo; + /** + * 是否匿名。默认传0 + */ + private String payType; + /** + * 业务类型,默认传10408 + */ + private String businessType; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java new file mode 100644 index 0000000..eda232f --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java @@ -0,0 +1,27 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 16:45 + */ +@Data +public class ListPage<T> { + /** + * 总条数 + */ + private Integer total; + /** + * 当前页码 + */ + private Integer pageNum; + /** + * 每页条数 + */ + private Integer pageSize; + /** + * 数据列表 + */ + private T list; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java new file mode 100644 index 0000000..f7ff87c --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java @@ -0,0 +1,39 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 16:31 + */ +@Data +public class ModifyTravelItineraryRequest { + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 行程单ID + */ + private String orderId; + /** + * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中 + */ + private Integer status; + /** + * 司机ID + */ + private String driverId; + /** + * 推广员ID + */ + private String promoterId; + /** + * 服务商商户ID + */ + private String supplierShopId; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java new file mode 100644 index 0000000..ef627a3 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java @@ -0,0 +1,19 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 9:44 + */ +@Data +public class OrderInfo { + /** + * 订单id + */ + private String orderId; + /** + * 订单状态 + */ + private String status; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java new file mode 100644 index 0000000..c990caa --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:18 + */ +@Data +public class PayInfo { + /** + * 证联返回码000000:请求成功 + */ + private String retCode; + /** + * 证联返回信息 + */ + private String retMsg; + /** + * true、false + */ + private String success; + /** + * 证联返回数据 + */ + private PayInfoData data; + /** + * 签名 + */ + private String sign; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java new file mode 100644 index 0000000..24cf5e5 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java @@ -0,0 +1,42 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:18 + */ +@Data +public class PayInfoData { + /** + * 收银台链接 + */ + private String redirectUrl; + /** + * 支付流水号 + */ + private String payId; + /** + * 支付工单状态 + * 0 待支付 + * 1 部分支付成功 + * 2 支付成功 + * 3 支付失败 + */ + private String status; + /** + * 支付时间,格式:yyyy-MM-dd HH:mm:ss + */ + private String payTime; + /** + * 扣款金额 单位分 + */ + private String payFee; + /** + * 支付信息 + */ + private List<PaymentInfo> paymentInfos; + +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java new file mode 100644 index 0000000..7db70c7 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:32 + */ +@Data +public class PaymentInfo { + /** + * 支付模式。此场景下默认传501212(测试和生产一致) + */ + private String payModeId; + /** + * 支付交易明细标识 + */ + private String payItemId; + /** + * 支付金额 + */ + private String payFee; + /** + * 支付状态 + */ + private String status; + /** + * 支付时间 + */ + private String payTime; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java new file mode 100644 index 0000000..dbd52bc --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java @@ -0,0 +1,15 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:32 + */ +@Data +public class PaymentInfoRequest { + /** + * 支付模式。此场景下默认传501212(测试和生产一致) + */ + private String payModeId; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java new file mode 100644 index 0000000..4fbf0ce --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java @@ -0,0 +1,57 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author zhibing.pu + * @Date 2025/7/24 18:29 + */ +@Data +public class PaymentOrderRequest { + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 场景应用标识。默认52270015 + */ + private String mhltiCenterAppId; + /** + * 支付流水明细 + */ + private String payItemId; + /** + * 支付明细json串 + */ + private String paymentInfo; + /** + * 订单ID + */ + private String orderId; + /** + * 支付金额,单位元 + */ + private BigDecimal charge; + /** + * 支付时间 + */ + private String payTime; + /** + * 支付流水号 + */ + private String paymentSerialNumber; + /** + * 付款类型,4、线上支付 + */ + private Integer payType; + /** + * 付款方式,6:微信 7:支付宝 8:银行卡 9:银联二维码 10银联购物车收银台 + */ + private Integer payChannel; + /** + * 是否补偿单。1、是,0、否 + */ + private Integer isCompensate; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java new file mode 100644 index 0000000..801e14d --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java @@ -0,0 +1,27 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 19:31 + */ +@Data +public class QYTPaymentCallback { + /** + * 加密字符串 + */ + private String sign; + /** + * 时间戳 + */ + private String timeStamp; + /** + * 请求调用唯一标识 + */ + private String messageId; + /** + * 支付结果信息 + */ + private QYTPaymentCallbackData data; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java new file mode 100644 index 0000000..4bf8523 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java @@ -0,0 +1,41 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 19:34 + */ +@Data +public class QYTPaymentCallbackData { + /** + * 商户单标识。行程单ID + */ + private String partnerPayId; + /** + * 支付中心商户号 + */ + private String partnerId; + /** + * 支付工单标识 + */ + private String payId; + /** + * 支付状态。1.未支付 2已支付 + */ + private String status; + /** + * 支付时间,格式:YYYY-MM-DD HH:mm:ss + */ + private String payTime; + /** + * 扣款总金额 单位分 + */ + private String payFee; + /** + * 支付详细信息 + */ + private List<QYTPaymentInfoCallback> paymentInfos; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java new file mode 100644 index 0000000..19c03d3 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java @@ -0,0 +1,35 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 19:37 + */ +@Data +public class QYTPaymentInfoCallback { + /** + * 支付交易明细标识 + */ + private String payItemId; + /** + * 支付模式 + */ + private String payModeId; + /** + * 支付金额,单位分 + */ + private String payFee; + /** + * 实付金额,单位分 + */ + private String realFee; + /** + * 支付状态。1.未支付 2已支付 + */ + private String status; + /** + * 支付时间,格式:YYYY-MM-DD HH:mm:ss + */ + private String payTime; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java new file mode 100644 index 0000000..2afc392 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java @@ -0,0 +1,19 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:17 + */ +@Data +public class TradeOrderCreate { + /** + * 订单信息 + */ + private OrderInfo orderInfo; + /** + * 支付接口调用信息 + */ + private PayInfo payInfo; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java new file mode 100644 index 0000000..fa53305 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java @@ -0,0 +1,95 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:03 + */ +@Data +public class TradeOrderCreateData { + /** + * 司机id + */ + private String treatShopId; + /** + * 应用场景标识 + */ + private String orderAppId; + /** + * 场景标识 + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”} + */ + private String field1; + /** + * 订单总金额,单位元 + */ + private BigDecimal charge; + /** + * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY + */ + private String channelSource; + /** + * 行程单ID + */ + private String orderId; + /** + * 业务侧订单号 + */ + private String orderNo; + /** + * 下单人ID + */ + private String customerId; + /** + * 商户号,由支付中心分配。测试环境5400004 + */ + private String payPartnerId; + /** + * 商户单标识。订单中心行程单号,每次请求请保持唯一性。 + */ + private String partnerPayId; + /** + * 币种。RMB(人民币);USD(美元) + */ + private String currency; + /** + * 交易总金额,单位分。 + */ + private String totalFee; + /** + * 前台通知URL地址。 + */ + private String retUrl; + /** + * 用户IP + */ + private String clientIp; + /** + * Y代表要登录,跳到标准收银台 + * N代表不需要登录,跳到无支付帐号收银台 + */ + private String needLoginFlag; + /** + * 支付单描述 + */ + private String orderDesc; + /** + * 接入模式:PC、H5、APP + */ + private String accessMode; + /** + * 支付信息 + */ + private List<GoodsInfoRequest> goodsInfo; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java new file mode 100644 index 0000000..554c2d9 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java @@ -0,0 +1,58 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:23 + */ +@Data +public class TradePayOff1Data { + /** + * 商户号,由支付中心分配。测试环境5400004 + */ + private String partnerId; + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 商户单标识。订单中心订单号,每次请求请保持唯一性。 + */ + private String partnerPayId; + /** + * 币种。RMB(人民币);USD(美元) + */ + private String currency; + /** + * 交易总金额,单位分。 + */ + private String totalFee; + /** + * 前台通知URL地址。 + */ + private String retUrl; + /** + * 用户IP + */ + private String clientIp; + /** + * Y代表要登录,跳到标准收银台 + * N代表不需要登录,跳到无支付帐号收银台 + */ + private String needLoginFlag; + /** + * 支付单描述 + */ + private String orderDesc; + /** + * 接入模式:PC、H5、APP + */ + private String accessMode; + /** + * 商品描述信息。Json数组 + */ + private List<GoodsInfoRequest> goodsInfo; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java new file mode 100644 index 0000000..b09b115 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java @@ -0,0 +1,63 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import com.alipay.api.domain.GoodsInfo; +import lombok.Data; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:23 + */ +@Data +public class TradePayOffData { + /** + * 商户号,由支付中心分配。测试环境5400004 + */ + private String partnerId; + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 商户单标识。订单中心订单号,每次请求请保持唯一性。 + */ + private String partnerPayId; + /** + * 币种。RMB(人民币);USD(美元) + */ + private String currency; + /** + * 交易总金额,单位分。 + */ + private String totalFee; + /** + * 前台通知URL地址。 + */ + private String retUrl; + /** + * 用户IP + */ + private String clientIp; + /** + * Y代表要登录,跳到标准收银台 + * N代表不需要登录,跳到无支付帐号收银台 + */ + private String needLoginFlag; + /** + * 支付单描述 + */ + private String orderDesc; + /** + * 接入模式:PC、H5、APP + */ + private String accessMode; + /** + * 支付信息 + */ + private List<PaymentInfoRequest> paymentInfos; + /** + * 商品描述信息。Json数组 + */ + private List<GoodsInfo> goodsInfo; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java new file mode 100644 index 0000000..b2ce9bb --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java @@ -0,0 +1,31 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:22 + */ +@Data +public class TradeRequest<T> { + /** + * 场景编号.交易中心提供。测试环境:1948289607125864448 + */ + private String sceneId; + /** + * 应用编号。中台应用appKey + */ + private String appId; + /** + * 场景版本。交易中心提供。测试环境1 + */ + private Integer configVersion; + /** + * 请求ID。每次调用唯一标识 + */ + private String requestId; + /** + * 业务数据 + */ + private T data; +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java new file mode 100644 index 0000000..27ffc26 --- /dev/null +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java @@ -0,0 +1,64 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 16:48 + */ +@Data +public class TravelItinerary { + /** + * 场景标识。交通场景传”TRAFFIC” + */ + private String scene; + /** + * 租户ID。地区行政编码。黔南州传522700 + */ + private String partnerId; + /** + * 业务侧订单号 + */ + private String orderNo; + /** + * 乘客ID + */ + private String customerId; + /** + * 司机ID + */ + private String driverId; + /** + * 订单号 + */ + private String orderId; + /** + * 推广员ID + */ + private String promoterId; + /** + * 服务商商户ID + */ + private String supplierShopId; + /** + * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车 + */ + private Integer serviceType; + /** + * 订单状态。1、待支付,11、已完结(可结算) + */ + private Integer orderStatus; + /** + * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中 + */ + private Integer status; + /** + * 创建时间 + */ + private String createTime; + /** + * 更新时间 + */ + private String updateTime; + +} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java index bbe6942..fda6a88 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java @@ -41,7 +41,6 @@ tokenRequest.setAppId(zhengLianConfig.getAppid()); - tokenRequest.setType("04"); String reqBO = JSON.toJSONString(tokenRequest); // 生成对称加密秘钥 String key = ZhengLianUtil.generateKey(16); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java index e78876c..002db53 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java @@ -58,8 +58,8 @@ this.merchNo = "B00000871"; this.encrpNo = "1055490595"; this.signNo = "1066348524"; - this.cer = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\1055490595.cer"; - this.sm2 = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\871_111111.sm2"; + this.cer = "C:\\Users\\Administrator\\Desktop\\1055490595.cer"; + this.sm2 = "C:\\Users\\Administrator\\Desktop\\871_111111.sm2"; this.password = "111111"; } if("test".equals(activeProfile)){ diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java index 7c1d683..b89c824 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java @@ -13,6 +13,10 @@ @Document(collection = "driver_position") public class DriverPosition { @Id + private String id; + /** + * 司机id + */ private Integer driverId; /** * 点位 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java index 53706e5..021936b 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; -import com.stylefeng.guns.modular.system.model.BaseBean; import java.math.BigDecimal; import java.util.Date; @@ -360,6 +359,8 @@ private String promotionUser; private String promotionPhone; + + private String travelId; public String getPromotionUser() { @@ -945,7 +946,15 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } - + + public String getTravelId() { + return travelId; + } + + public void setTravelId(String travelId) { + this.travelId = travelId; + } + @Override public String toString() { return "OrderTaxi{" + diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 3531b3c..7bcf42c 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -12,6 +12,9 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -220,7 +223,38 @@ orderTaxi.setPromotionPhone(driver1.getPhone()); orderTaxi.setPromotionDriverId(promotion); } - + + if(null == oldDriverId){ + UserInfo userInfo = userInfoMapper.selectById(orderTaxi.getUserId()); + Company company = companyService.selectById(driver.getCompanyId()); + //调三方订单中心创建行程单 + CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); + request.setOrderNo("TA" + orderTaxi.getId()); + request.setCustomerId(userInfo.getOnconUUID()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setServiceType(1); + String travelItinerary = OrderUtil.createTravelItinerary(request); + orderTaxi.setTravelId(travelItinerary); + }else{ + //改派抢单 + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderTaxi.getTravelId()); + request1.setStatus(orderTaxi.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); + } this.updateById(orderTaxi); if(orderTaxi.getType() == 2){ @@ -485,6 +519,20 @@ break; } this.updateById(orderTaxi); + + Driver driver = driverService.selectById(orderTaxi.getDriverId()); + Company company = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + request.setDriverId(driver.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); // TODO: 2020/6/5 推送状态 new Thread(new Runnable() { @@ -528,9 +576,22 @@ orderTaxi.setState(7); } this.updateById(orderTaxi); + + Driver driver = driverService.selectById(orderTaxi.getDriverId()); + Company company = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + request.setDriverId(driver.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + request.setSupplierShopId(company.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); //回滚司机状态为空闲 - Driver driver = driverService.selectById(orderTaxi.getDriverId()); driver.setState(2); driverService.updateById(driver); @@ -568,9 +629,22 @@ orderTaxi.setState(7); } this.updateById(orderTaxi); + + Driver driver = driverService.selectById(orderTaxi.getDriverId()); + Company company1 = companyService.selectById(driver.getCompanyId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); + request1.setOrderId(orderTaxi.getTravelId()); + request1.setStatus(orderTaxi.getState()); + request1.setDriverId(driver.getEmpId().toString()); + if(2 == orderTaxi.getPromotion()){ + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request1.setPromoterId(driver1.getEmpId().toString()); + } + request1.setSupplierShopId(company1.getEnterCode()); + OrderUtil.modifyTravelItinerary(request1); //回滚司机状态为空闲 - Driver driver = driverService.selectById(orderTaxi.getDriverId()); driver.setState(2); driverService.updateById(driver); diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java index 543c653..49643d3 100644 --- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java +++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java @@ -1,11 +1,36 @@ -//package com.stylefeng.guns; -// -//import org.junit.runner.RunWith; -//import org.springframework.boot.test.context.SpringBootTest; -//import org.springframework.test.context.junit4.SpringRunner; -// -//@RunWith(SpringRunner.class) -//@SpringBootTest -//public class GunsApplicationTest { -// -//} +package com.stylefeng.guns; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class GunsApplicationTest { + + @Autowired + private MongoTemplate mongoTemplate; + + + @Test + public void test(){ +// GeoJsonPoint point = new GeoJsonPoint(new Point(Double.parseDouble("104.043149"), +// Double.parseDouble("30.642483"))); +// DriverPosition position = mongoTemplate.findOne(Query.query(Criteria.where("driverId") +// .is(14)), DriverPosition.class); +// if(null == position){ +// position = new DriverPosition(); +// } +// position.setDriverId(14); +// position.setPoint(point); +// mongoTemplate.save(position); + + +// Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble("104.043149"), Double.parseDouble("30.642483"))).maxDistance(5000)); +// List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); +// System.err.println(driverPositions); + } +} diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java index 595c397..c2a291d 100644 --- a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java +++ b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java @@ -23,7 +23,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { -// System.err.println(insocket.getAddress() + ": 收到客户端数据......."); + System.err.println(insocket.getAddress() + ": 收到客户端数据......."); } try { // 调用service @@ -39,7 +39,7 @@ protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { -// System.err.println(insocket.getAddress() + ": 收到客户端数据......."); + System.err.println(insocket.getAddress() + ": 收到客户端数据......."); } try { // 调用service @@ -70,7 +70,7 @@ public void channelActive(final ChannelHandlerContext ctx) throws Exception { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { -// System.err.println(insocket.getAddress() + ": Connect successful......"); + System.err.println(insocket.getAddress() + ": Connect successful......"); } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index 9c730f0..87893c0 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -14,12 +14,9 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.geo.GeoResult; -import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -140,19 +137,15 @@ }) public ResultUtil<List<Map<String, Object>>> queryNearbyCar(String lon, String lat){ //mongodb查询附近5公里范围内的坐标 - NearQuery query = NearQuery.near(new Point(Double.parseDouble(lon), Double.parseDouble(lat))); - query.query(Query.query(Criteria.where("point"))); - query.maxDistance(5000); - GeoResults<DriverPosition> results = mongoTemplate.geoNear(query, DriverPosition.class); + Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000)); + List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); List<Map<String, Object>> collect = new ArrayList<>(); - if(collect.size() > 0){ - List<GeoResult<DriverPosition>> content1 = results.getContent(); - List<DriverPosition> positionList = content1.stream().map(GeoResult::getContent).collect(Collectors.toList()); - List<Integer> driverIds = positionList.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); - List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("driverId", driverIds) + if(driverPositions.size() > 0){ + List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); + List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds) .eq("authState", 2).eq("state", 2)); collect = drivers.stream().map(driver -> { - Optional<DriverPosition> driverPosition = positionList.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); + Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Map<String, Object> map = new HashMap<>(); map.put("driverId", driver.getId()); map.put("name", driver.getName()); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 4b70b28..748b610 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -22,6 +22,8 @@ import com.stylefeng.guns.modular.system.pdf.TripSheetGenerator; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTPaymentCallback; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -51,6 +53,8 @@ import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; /** @@ -61,86 +65,94 @@ @RestController @RequestMapping("") public class OrderController { - - @Autowired - private IOrderTaxiService orderTaxiService; - - @Autowired - private IUserInfoService userInfoService; - - @Autowired - private IOrderPositionService orderPositionService; - - @Autowired - private PushUtil pushUtil; - - @Autowired - private IOrderService orderService; + + @Autowired + private IOrderTaxiService orderTaxiService; + + @Autowired + private IUserInfoService userInfoService; + + @Autowired + private IOrderPositionService orderPositionService; + + @Autowired + private PushUtil pushUtil; + + @Autowired + private IOrderService orderService; + + @Autowired + private IDriverService driverService; + + @Autowired + private WeChatUtil weChatUtil; + + @Autowired + private IOrderPrivateCarService orderPrivateCarService; + + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; + + @Autowired + private IComplaintService complaintService; + + @Autowired + private IOrderEvaluateService orderEvaluateService; + + @Autowired + private IOrderCrossCityService orderCrossCityService; + + @Autowired + private IOrderLogisticsService orderLogisticsService; + + @Autowired + private IOrderCharteredCarService orderCharteredCarService; + + @Autowired + private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; + + @Autowired + private ITransactionDetailsService transactionDetailsService; + + @Autowired + private IOrderCancelService orderCancelService; + + @Autowired + private PayMoneyUtil payMoneyUtil; + + @Autowired + private IPaymentRecordService paymentRecordService; + + @Autowired + private ITaxiCardService taxiCardService; + + @Autowired + private IOrderCallService orderCallService; + + @Autowired + private IOrderAdditionalFeeService orderAdditionalFeeService; + + @Autowired + private IAdditionalFeeService additionalFeeService; + + @Autowired + private ITEnterpriseWithdrawalService enterpriseWithdrawalService; + @Autowired + private ICompanyService companyService; + @Autowired + private IUserCouponRecordService userCouponRecordService; + @Value("${pushMinistryOfTransport}") + private boolean pushMinistryOfTransport; + + @Resource + private SystemPriceMapper systemPriceMapper; + + @Resource + private RedisTemplate<String, Object> redisTemplate; + + @Resource + private ISystemPriceCityService systemPriceCityService; - @Autowired - private IDriverService driverService; - - @Autowired - private WeChatUtil weChatUtil; - - @Autowired - private IOrderPrivateCarService orderPrivateCarService; - - @Autowired - private GDMapGeocodingUtil gdMapGeocodingUtil; - - @Autowired - private IComplaintService complaintService; - - @Autowired - private IOrderEvaluateService orderEvaluateService; - - @Autowired - private IOrderCrossCityService orderCrossCityService; - - @Autowired - private IOrderLogisticsService orderLogisticsService; - - @Autowired - private IOrderCharteredCarService orderCharteredCarService; - - @Autowired - private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; - - @Autowired - private ITransactionDetailsService transactionDetailsService; - - @Autowired - private IOrderCancelService orderCancelService; - - @Autowired - private PayMoneyUtil payMoneyUtil; - - @Autowired - private IPaymentRecordService paymentRecordService; - - @Autowired - private ITaxiCardService taxiCardService; - - @Autowired - private IOrderCallService orderCallService; - - @Autowired - private IOrderAdditionalFeeService orderAdditionalFeeService; - - @Autowired - private IAdditionalFeeService additionalFeeService; - - @Autowired - private ITEnterpriseWithdrawalService enterpriseWithdrawalService; - @Autowired - private ICompanyService companyService; - @Autowired - private IUserCouponRecordService userCouponRecordService; - @Value("${pushMinistryOfTransport}") - private boolean pushMinistryOfTransport; - - @Value("${trip.sheet.filePath}") private String filePath; @Autowired @@ -149,2051 +161,2074 @@ private TripSheetGenerator tripSheetGenerator; @Autowired private IServerCarModelService serverCarModelService; - - - @Resource - private SystemPriceMapper systemPriceMapper; - @Resource - private RedisTemplate<String, Object> redisTemplate; - @Resource - private ISystemPriceCityService systemPriceCityService; - - - /** - * 获取正在进行中的订单 - * - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryServingOrder") - @ApiOperation(value = "获取正在进行中的订单", tags = {"用户端-首页"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - List<OrderStatusWarpper> data = new ArrayList<>(); - List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); - for(OrderPrivateCar orderPrivateCar : orderPrivateCars){ - if(orderPrivateCar.getState() == 11){ - orderPrivateCar.setState(orderPrivateCar.getOldState()); - } - OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); - orderStatusWarpper.setOrderId(orderPrivateCar.getId()); - orderStatusWarpper.setOrderType(1); - orderStatusWarpper.setState(orderPrivateCar.getState()); - orderStatusWarpper.setRideType(orderPrivateCar.getRideType()); - data.add(orderStatusWarpper); - } - List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); - for(OrderTaxi orderTaxi : list){ - if(orderTaxi.getState() == 11){ - orderTaxi.setState(orderTaxi.getOldState()); - } - OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); - orderStatusWarpper.setOrderId(orderTaxi.getId()); - orderStatusWarpper.setOrderType(2); - orderStatusWarpper.setState(orderTaxi.getState()); - orderStatusWarpper.setRideType(1); - data.add(orderStatusWarpper); - } - List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); - for(OrderCrossCity orderCrossCity : orderCrossCities){ - if(orderCrossCity.getState() == 11){ - orderCrossCity.setState(orderCrossCity.getOldState()); - } - OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); - orderStatusWarpper.setOrderId(orderCrossCity.getId()); - orderStatusWarpper.setOrderType(3); - orderStatusWarpper.setState(orderCrossCity.getState()); - orderStatusWarpper.setRideType(3); - data.add(orderStatusWarpper); - } - return ResultUtil.success(data); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 获取个人中心订单列表 - * @param type - * @param pageNum - * @param size - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryMyOrderList") - @ApiOperation(value = "获取个人中心订单列表", tags = {"用户端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流, 5=跨城小件物流,6=包车,7=助老模式)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), - @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - List<Map<String, Object>> list = null; - switch (type){ - case 1: - list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size); - break; - case 2: - list = orderTaxiService.queryMyOrderList(uid, pageNum, size); - break; - case 3: - list = orderCrossCityService.queryMyOrderList(uid, pageNum, size); - break; - case 4: - list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size); - break; - case 5: - list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size); - break; - case 6: - list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size); - break; - case 7: + + + /** + * 获取正在进行中的订单 + * + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryServingOrder") + @ApiOperation(value = "获取正在进行中的订单", tags = {"用户端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + List<OrderStatusWarpper> data = new ArrayList<>(); + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); + for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { + if (orderPrivateCar.getState() == 11) { + orderPrivateCar.setState(orderPrivateCar.getOldState()); + } + OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); + orderStatusWarpper.setOrderId(orderPrivateCar.getId()); + orderStatusWarpper.setOrderType(1); + orderStatusWarpper.setState(orderPrivateCar.getState()); + orderStatusWarpper.setRideType(orderPrivateCar.getRideType()); + data.add(orderStatusWarpper); + } + List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); + for (OrderTaxi orderTaxi : list) { + if (orderTaxi.getState() == 11) { + orderTaxi.setState(orderTaxi.getOldState()); + } + OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); + orderStatusWarpper.setOrderId(orderTaxi.getId()); + orderStatusWarpper.setOrderType(2); + orderStatusWarpper.setState(orderTaxi.getState()); + orderStatusWarpper.setRideType(1); + data.add(orderStatusWarpper); + } + List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12); + for (OrderCrossCity orderCrossCity : orderCrossCities) { + if (orderCrossCity.getState() == 11) { + orderCrossCity.setState(orderCrossCity.getOldState()); + } + OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper(); + orderStatusWarpper.setOrderId(orderCrossCity.getId()); + orderStatusWarpper.setOrderType(3); + orderStatusWarpper.setState(orderCrossCity.getState()); + orderStatusWarpper.setRideType(3); + data.add(orderStatusWarpper); + } + return ResultUtil.success(data); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取个人中心订单列表 + * + * @param type + * @param pageNum + * @param size + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryMyOrderList") + @ApiOperation(value = "获取个人中心订单列表", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流, 5=跨城小件物流,6=包车,7=助老模式)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + List<Map<String, Object>> list = null; + switch (type) { + case 1: + list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size); + break; + case 2: + list = orderTaxiService.queryMyOrderList(uid, pageNum, size); + break; + case 3: + list = orderCrossCityService.queryMyOrderList(uid, pageNum, size); + break; + case 4: + list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size); + break; + case 5: + list = orderLogisticsService.queryMyOrderList(uid, type, pageNum, size); + break; + case 6: + list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size); + break; + case 7: // list = orderCallService.queryMyOrderList(uid, pageNum, size); - break; - } - return ResultUtil.success(OrderWarpper.getOrderWarpper(list)); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - /** - * 获取消费记录 - * @param pageNum - * @param size - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryMyTravelRecord") - @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), - @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - Integer page = pageNum; - pageNum = (pageNum - 1) * size; - List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>() - .eq("type", 1).eq("userType", 1).eq("userId", uid).orderBy("insertTime desc limit " + pageNum + ", " + size)); - List<Map<String, Object>> list = new ArrayList<>(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - for(TransactionDetails t : transactionDetails){ - Map<String, Object> map = new HashMap<>(); - map.put("money", t.getState() == 1 ? t.getMoney() : -1 * t.getMoney()); - map.put("time", sdf.format(t.getInsertTime())); - map.put("name", t.getRemark()); - map.put("insertTime", Double.valueOf(t.getInsertTime().getTime() / 1000).intValue()); - list.add(map); - } - - List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list); - return ResultUtil.success(orderWarpper); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * 发票页获取订单列表 - * @param type - * @param orderType - * @param startTime - * @param endTime - * @param startMoney - * @param endMoney - * @param pageNum - * @param size - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryInvoiceOrder") - @ApiOperation(value = "发票页获取订单列表", tags = {"用户端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单开票状态(1=未开票,2=其他)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = false, dataType = "int"), - @ApiImplicitParam(value = "开始日期", name = "startTime", required = false, dataType = "string"), - @ApiImplicitParam(value = "结束日期", name = "endTime", required = false, dataType = "string"), - @ApiImplicitParam(value = "开始金额", name = "startMoney", required = false, dataType = "double"), - @ApiImplicitParam(value = "结束金额", name = "endMoney", required = false, dataType = "double"), - @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), - @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime, - Date endTime, Double startMoney, Double endMoney, - Integer pageNum, Integer size, HttpServletRequest request){ - Integer page = pageNum; - pageNum = (pageNum - 1) * size; - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - List<Map<String, Object>> list = new ArrayList<>(); - if(null != orderType){ - switch (orderType){ - case 1://专车 - list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - break; - case 2://出租车 - list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - break; - case 3://跨城 - list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - break; - case 4://同城小件物流 - list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); - break; - case 5://跨城小件物流 - list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); - break; - } - }else{ - //专车 - List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - list.addAll(maps); - //出租车 - List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - list.addAll(list1); - //跨城 - List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); - list.addAll(list2); - //同城小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); - list.addAll(list3); - //跨城小件物流 - List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); - list.addAll(list4); - } - - //分页 - if(list.size() >= page * size){ - list = list.subList(pageNum, pageNum + size); - }else if(pageNum < list.size() && list.size() < page * size){ - list = list.subList(pageNum, list.size()); - }else{ - list = new ArrayList<>(); - } - - return ResultUtil.success(OrderWarpper.getOrderWarpper(list)); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 继续等待推单操作 - * @param id - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/pushOrderTaxi") - @ApiOperation(value = "继续等待推单操作", tags = {"用户端-出租车", "用户端-专车"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil pushOrderTaxi(Integer id, Integer orderType){ - try { - switch (orderType){ - case 1: - return orderPrivateCarService.pushOrderPrivateCar(id); - case 2: - return orderTaxiService.pushOrderTaxi(id); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * 获取服务中的详情数据 - * @param orderId - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryOrderInfo") - @ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "",response = OrderInfoWarpper.class) - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - Map<String, Object> map = null; - List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); - switch (orderType){ - case 1://专车 - map = orderPrivateCarService.queryOrderInfo(uid, orderId); - break; - case 2://出租车 - map = orderTaxiService.queryOrderInfo(orderId); - break; - case 3://跨城 - map = orderCrossCityService.queryOrderInfo(orderId); - break; - } - - if(map.get("companyId") != null){ - Company companyId = companyService.selectById(map.get("companyId").toString()); - map.put("companyName", companyId.getName()); - }else { - String string = map.get("driverId").toString(); - Driver driver = driverService.selectById(string); - Company company = companyService.selectById(driver.getCompanyId()); - map.put("companyName", company.getName()); - } - if(map.get("telX") != null){ - map.put("driverPhone", map.get("telX")); - } - List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); - orderAdditionalFees.forEach(orderAdditionalFee -> { - AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); - OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); - orderAdditionalFeeWarpper.setName(additionalFee.getName()); - orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); - list.add(orderAdditionalFeeWarpper); - }); - OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map, list); - orderType = orderInfoWarpper.getOrderType(); - if(orderType==1){ - - if(orderInfoWarpper.getPid()!=0){ - orderId=orderInfoWarpper.getPid(); - } - List<Map<String, Object>> orderList= orderPrivateCarService.queryOrderInfo2(orderId,4,null,null); - if(!orderList.isEmpty()){ - orderInfoWarpper.setMeetOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class)); - }else{ - orderInfoWarpper.setMeetOrderList(new ArrayList<>()); - } - orderList= orderPrivateCarService.queryOrderInfo2(orderId,6,null,null); - if(orderInfoWarpper.getState()>1 && orderInfoWarpper.getDriverId()!=0){ - String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); - if(value==null || value.equals("")){ - if(orderList.isEmpty()){ - orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0"); - }else{ - List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId,5,"0","0"); - if(!orderList1.isEmpty()){ - orderList.addAll(orderList1); - } - } - }else{ - if(orderList.isEmpty()){ - orderList= orderPrivateCarService.queryOrderInfo2(orderId,5,value.split(",")[0],value.split(",")[1]); - }else{ - List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId,5,value.split(",")[0],value.split(",")[1]); - if(!orderList1.isEmpty()){ - orderList.addAll(orderList1); - } - } - } - } - - - - if(!orderList.isEmpty()){ - orderInfoWarpper.setGiveOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class)); - }else{ - orderInfoWarpper.setGiveOrderList(new ArrayList<>()); - } - - OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); - if(orderPrivateCar.getState()>1) { - Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); - String provinceCode = geocode.get("provinceCode"); - String cityCode = geocode.get("cityCode"); - String districtCode = geocode.get("districtCode"); - //获取匹配的城市价格配置 - SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(provinceCode, cityCode, districtCode); - if (null == systemPriceCity) { - return ResultUtil.error("请先配置价格规则"); - } - Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId(), systemPriceCity.getId()); - System.out.println("参数:" + orderPrivateCar.getCompanyId() + "|" + orderPrivateCar.getServerCarModelId()); - System.out.println("query1:" + query1); - //开始根据不同的方式计算金额 - if (query1 != null) { - JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费 - JSONObject contentPutOne = JSON.parseObject(query1.get("contentPutOne").toString());//一人拼成 - JSONObject contentNotOne = JSON.parseObject(query1.get("contentNotOne").toString());//一人未拼成 - JSONObject contentPutTwo = JSON.parseObject(query1.get("contentPutTwo").toString());//2人拼成 - JSONObject contentNotTwo = JSON.parseObject(query1.get("contentNotTwo").toString());//2人未拼成 - JSONObject contentPutThree = JSON.parseObject(query1.get("contentPutThree").toString());//3人拼成 - JSONObject contentNotThree = JSON.parseObject(query1.get("contentNotThree").toString());//3人未拼成 - JSONObject contentExclusive = JSON.parseObject(query1.get("contentExclusive").toString());//独享 - JSONObject contentPrice = JSON.parseObject(query1.get("contentPrice").toString());//一口价 - //一口价 - orderInfoWarpper.setFareTypeNote1(query1.get("fareTypeNote1").toString()); - orderInfoWarpper.setFareTypeNote2(query1.get("fareTypeNote2").toString()); - orderInfoWarpper.setFareTypeNote3(query1.get("fareTypeNote3").toString()); - orderInfoWarpper.setContentPutOne(contentPutOne); - orderInfoWarpper.setContentNotOne(contentNotOne); - - orderInfoWarpper.setContentPutTwo(contentPutTwo); - orderInfoWarpper.setContentNotTwo(contentNotTwo); - - orderInfoWarpper.setContentPutThree(contentPutThree); - orderInfoWarpper.setContentNotThree(contentNotThree); - - - orderInfoWarpper.setContentExclusive(contentExclusive); - orderInfoWarpper.setContentPrice(contentPrice); - } - }else{ - orderInfoWarpper.setContentPutOne(new JSONObject()); - orderInfoWarpper.setContentNotOne(new JSONObject()); - - orderInfoWarpper.setContentPutTwo(new JSONObject()); - orderInfoWarpper.setContentNotTwo(new JSONObject()); - - orderInfoWarpper.setContentPutThree(new JSONObject()); - orderInfoWarpper.setContentNotThree(new JSONObject()); - - - orderInfoWarpper.setContentExclusive(new JSONObject()); - orderInfoWarpper.setContentPrice(new JSONObject()); - } - - }else{ - orderInfoWarpper.setContentPutOne(new JSONObject()); - orderInfoWarpper.setContentNotOne(new JSONObject()); - - orderInfoWarpper.setContentPutTwo(new JSONObject()); - orderInfoWarpper.setContentNotTwo(new JSONObject()); - - orderInfoWarpper.setContentPutThree(new JSONObject()); - orderInfoWarpper.setContentNotThree(new JSONObject()); - - - orderInfoWarpper.setContentExclusive(new JSONObject()); - orderInfoWarpper.setContentPrice(new JSONObject()); - } - String arriveTime = orderInfoWarpper.getArriveTime(); - if(ToolUtil.isNotEmpty(arriveTime)){ - orderInfoWarpper.setTime(arriveTime.substring(11,arriveTime.length()-3)); - } - return ResultUtil.success(orderInfoWarpper); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - @ResponseBody - @PostMapping("/api/order/addAppeal") - @ApiOperation(value = "发起申诉", tags = {"用户端-服务中"}, notes = "",response = OrderInfoWarpper.class) - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "申诉描述", name = "abnormalIntro", required = true, dataType = "String"), - @ApiImplicitParam(value = "申诉图片", name = "abnormalImg", required = true, dataType = "String"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<OrderInfoWarpper> addAppeal(Integer orderId, Integer orderType,String abnormalIntro, String abnormalImg, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1://专车 - orderPrivateCarService.addAppeal(uid, orderId,abnormalIntro,abnormalImg); - break; - case 2://出租车 - orderTaxiService.addAppeal(uid,orderId,abnormalIntro,abnormalImg); - break; - case 3://跨城 - orderCrossCityService.addAppeal(uid,orderId,abnormalIntro,abnormalImg); - break; - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 获取服务中的详情数据 - * @param orderId - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/base/order/queryOrderInfo_") - @ApiOperation(value = "获取服务中的详情数据", tags = {"分享专用"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - }) - public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType){ - try { - Map<String, Object> map = null; - List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); - switch (orderType){ - case 1://专车 - map = orderPrivateCarService.queryOrderInfo(null, orderId); - break; - case 2://出租车 - map = orderTaxiService.queryOrderInfo(orderId); - break; - case 3://跨城 - map = orderCrossCityService.queryOrderInfo(orderId); - break; - } - if(null != map.get("telX")){ - map.put("driverPhone", map.get("telX")); - } - List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); - orderAdditionalFees.forEach(orderAdditionalFee -> { - AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); - OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); - orderAdditionalFeeWarpper.setName(additionalFee.getName()); - orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); - list.add(orderAdditionalFeeWarpper); - }); - return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list)); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 获取订单取消支付页面详情 - * @param orderId - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryCancelPage") - @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - Map<String, Object> map = null; - List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); - switch (orderType) { - case 1://专车 - map = orderPrivateCarService.queryOrderInfo(uid, orderId); - ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId); - map.put("cancelPayMoney", res.getData().getAmount()); - break; - case 2://出租车 - map = orderTaxiService.queryOrderInfo(orderId); - ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId); - map.put("cancelPayMoney", re.getData().getAmount()); - break; - case 3://跨城 - map = orderCrossCityService.queryOrderInfo(orderId); - ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId); - map.put("cancelPayMoney", r.getData().getAmount()); - break; - } - if(null != map.get("telX")){ - map.put("driverPhone", map.get("telX")); - } - List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); - orderAdditionalFees.forEach(orderAdditionalFee -> { - AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); - OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); - orderAdditionalFeeWarpper.setName(additionalFee.getName()); - orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); - list.add(orderAdditionalFeeWarpper); - }); - return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list)); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * 获取订单轨迹坐标 - * @param orderId - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/api/order/queryTrack") - @ApiOperation(value = "获取订单轨迹坐标", tags = {"用户端-个人中心"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil queryTrack(Integer orderId, Integer orderType){ - try { - List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType); - return ResultUtil.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 获取订单轨迹坐标 - * @param orderId - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/base/order/queryTrack_") - @ApiOperation(value = "获取订单轨迹坐标", tags = {"分享专用"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), - }) - public ResultUtil queryTrack_(Integer orderId, Integer orderType){ - try { - List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType); - return ResultUtil.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * 发送订单状态 - * @param id - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/base/order/sendOrderState") - public ResultUtil cancelOrder(Integer id, Integer orderType){ - try { - Integer driverId = null; - Integer userId = null; - Integer state = 0; - switch (orderType){ - case 1: - OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id); - driverId = orderPrivateCar.getDriverId(); - userId = orderPrivateCar.getUserId(); - state = orderPrivateCar.getState(); - if(null != driverId){ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); - } - break; - case 2: - OrderTaxi orderTaxi = orderTaxiService.selectById(id); - driverId = orderTaxi.getDriverId(); - userId = orderTaxi.getUserId(); - state = orderTaxi.getState(); - if(null != driverId){ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); - } - break; - case 3: - OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id); - driverId = orderCrossCity.getDriverId(); - userId = orderCrossCity.getUserId(); - state = orderCrossCity.getState(); - if(orderCrossCity.getPayMoney() == null && state == 10){//支付的情况才推送取消 - break; - }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); - } - break; - case 4: - OrderLogistics orderLogistics = orderLogisticsService.selectById(id); - driverId = orderLogistics.getDriverId(); - userId = orderLogistics.getUserId(); - state = orderLogistics.getState(); - if(orderLogistics.getPayMoney() == null && state == 10){//支付的情况才推送取消 - break; - }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); - } - break; - case 5: - OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id); - driverId = orderLogistics1.getDriverId(); - userId = orderLogistics1.getUserId(); - state = orderLogistics1.getState(); - if(orderLogistics1.getPayMoney() == null && state == 10){//支付的情况才推送取消 - break; - }else{ - pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); - } - break; - } - pushUtil.pushOrderState(1, userId, id, orderType, state, 0); - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * APP调用微信小程序支付 - * @param orderId - * @param orderType - * @param type - * @param content - * @return - */ - @ResponseBody - @PostMapping("/base/order/weChatPay") - @ApiOperation(value = "APP调用微信小程序支付", tags = {"用户端-服务中"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "业务类型(1=订单完成支付,2=订单取消支付,3=司机端改派支付,4=余额充值,5=小件物流差价支付)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), - @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"), - @ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string") - }) - public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content){ - try { - return orderService.weChatPay(orderId, orderType, type, userType, uid, content); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - @ResponseBody - @PostMapping("/base/order/queryUserOpenId") - @ApiOperation(value = "获取用户的微信openid", tags = {"用户端-服务中"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), - @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int") - }) - public ResultUtil queryUserOpenId(Integer uid, Integer userType){ - if(userType == 2){ - Driver driver = driverService.selectById(uid); - return ResultUtil.success(driver.getAppletsOpenId()); - } - if(userType == 1){ - UserInfo userInfo = userInfoService.selectById(uid); - return ResultUtil.success(userInfo.getAppletsOpenId()); - } - return ResultUtil.success(); - } - - - @ResponseBody - @PostMapping("/base/order/getWeChatOpenId") - @ApiOperation(value = "用户授权获取小程序openid", tags = {"用户端-服务中"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), - @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"), - @ApiImplicitParam(value = "小程序授权临时凭证", name = "jscode", required = true, dataType = "string"), - }) - public ResultUtil getWeChatOpenId(Integer uid, Integer userType, String jscode){ - Map<String, String> map = weChatUtil.code2Session(jscode); - if(userType == 2){ - Driver driver = driverService.selectById(uid); - driver.setAppletsOpenId(map.get("openid")); - driverService.updateById(driver); - } - if(userType == 1){ - UserInfo userInfo = userInfoService.selectById(uid); - userInfo.setAppletsOpenId(map.get("openid")); - userInfoService.updateById(userInfo); - } - return ResultUtil.success(); - } - - - - /** - * 获取预计行驶时间 - * @param slon - * @param slat - * @param elon - * @param elat - * @return - */ - @ResponseBody - @PostMapping("/base/taxi/queryExpectedTime") - @ApiOperation(value = "选择地点和终点后获取预计行驶时长", tags = {"用户端-出租车", "用户端-专车"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "起点经度", name = "slon", required = true, dataType = "double"), - @ApiImplicitParam(value = "起点纬度", name = "slat", required = true, dataType = "double"), - @ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"), - @ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double") - }) - public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat){ - try { - return orderService.queryExpectedTime(slon, slat, elon, elat); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 获取取消订单需要支付的费用金额 - * @param id - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/queryCancleAmount") - @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType){ - try { - switch (orderType){ - case 1: - return orderPrivateCarService.queryCancleAmount(id); - case 2: - return orderTaxiService.queryCancleAmount(id); - case 3: - return orderCrossCityService.queryCancleAmount(id); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 添加取消记录 - * @param id - * @param reason - * @param remark - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/addCancle") - @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"), - @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1: - return orderPrivateCarService.addCancle(id, reason, remark, uid); - case 2: - return orderTaxiService.addCancle(id, reason, remark, uid); - case 3: - return orderCrossCityService.addCancle(id, reason, remark, uid); - case 4: - return orderLogisticsService.addCancle(id, reason, remark, uid); - case 5: - return orderLogisticsService.addCancle(id, reason, remark, uid); - case 6: - return orderCharteredCarService.addCancle(id, reason, remark, uid); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 取消操作支付 - * @param id - * @param payType - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/cancleOrderTaxi") - @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), - @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"), - @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1: - return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type); - case 2: - return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); - case 3: - return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 投诉操作 - * @param driverId - * @param reason - * @param description - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/complaintService") - @ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), - @ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"), - @ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil complaintService(Integer driverId, String reason, String description, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - complaintService.saveData(driverId, reason, description, uid); - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 支付页面获取可用优惠券数量和余额 - * @param orderId - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/queryBalance") - @ApiOperation(value = "支付页面获取可用优惠券数量和余额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "balance=余额,coupon=优惠券") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil queryBalance(Integer orderId, Integer orderType, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - Map<String, Object> map = new HashMap<>(); - switch (orderType){ - case 1: - map = orderPrivateCarService.queryBalance(orderId, uid); - break; - case 2: - map = orderTaxiService.queryBalance(orderId, uid); - break; - case 3: - map = orderCrossCityService.queryBalance(orderId, uid); - break; - case 4: - map = orderLogisticsService.queryBalance(orderId, uid); - break; - case 5: - map = orderLogisticsService.queryBalance(orderId, uid); - break; - } - return ResultUtil.success(map); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 支付页面获取余额和优惠数据 - * @param orderId - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/queryBalance1") - @ApiOperation(value = "1.0-支付页面获取余额和优惠数据", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城","用户端-小件物流"}) - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<PreferentialDataVo> queryBalance1(Integer orderId, Integer orderType, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - PreferentialDataVo map = new PreferentialDataVo(); - switch (orderType){ - case 1: - map = orderPrivateCarService.queryBalance1(orderId, uid); - break; - case 2: - map = orderTaxiService.queryBalance1(orderId, uid); - break; - case 3: - map = orderCrossCityService.queryBalance1(orderId, uid); - break; - case 4: - map = orderLogisticsService.queryBalance1(orderId, uid); - break; - case 5: - map = orderLogisticsService.queryBalance1(orderId, uid); - break; - case 6: - map = orderCharteredCarService.queryBalance1(orderId, uid); - break; - case 7: + break; + } + return ResultUtil.success(OrderWarpper.getOrderWarpper(list)); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + /** + * 获取消费记录 + * + * @param pageNum + * @param size + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryMyTravelRecord") + @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + Integer page = pageNum; + pageNum = (pageNum - 1) * size; + List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>() + .eq("type", 1).eq("userType", 1).eq("userId", uid).orderBy("insertTime desc limit " + pageNum + ", " + size)); + List<Map<String, Object>> list = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + for (TransactionDetails t : transactionDetails) { + Map<String, Object> map = new HashMap<>(); + map.put("money", t.getState() == 1 ? t.getMoney() : -1 * t.getMoney()); + map.put("time", sdf.format(t.getInsertTime())); + map.put("name", t.getRemark()); + map.put("insertTime", Double.valueOf(t.getInsertTime().getTime() / 1000).intValue()); + list.add(map); + } + + List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list); + return ResultUtil.success(orderWarpper); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 发票页获取订单列表 + * + * @param type + * @param orderType + * @param startTime + * @param endTime + * @param startMoney + * @param endMoney + * @param pageNum + * @param size + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryInvoiceOrder") + @ApiOperation(value = "发票页获取订单列表", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单开票状态(1=未开票,2=其他)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = false, dataType = "int"), + @ApiImplicitParam(value = "开始日期", name = "startTime", required = false, dataType = "string"), + @ApiImplicitParam(value = "结束日期", name = "endTime", required = false, dataType = "string"), + @ApiImplicitParam(value = "开始金额", name = "startMoney", required = false, dataType = "double"), + @ApiImplicitParam(value = "结束金额", name = "endMoney", required = false, dataType = "double"), + @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime, + Date endTime, Double startMoney, Double endMoney, + Integer pageNum, Integer size, HttpServletRequest request) { + Integer page = pageNum; + pageNum = (pageNum - 1) * size; + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + List<Map<String, Object>> list = new ArrayList<>(); + if (null != orderType) { + switch (orderType) { + case 1://专车 + list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + break; + case 2://出租车 + list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + break; + case 3://跨城 + list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + break; + case 4://同城小件物流 + list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); + break; + case 5://跨城小件物流 + list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); + break; + } + } else { + //专车 + List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + list.addAll(maps); + //出租车 + List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + list.addAll(list1); + //跨城 + List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid); + list.addAll(list2); + //同城小件物流 + List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); + list.addAll(list3); + //跨城小件物流 + List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType); + list.addAll(list4); + } + + //分页 + if (list.size() >= page * size) { + list = list.subList(pageNum, pageNum + size); + } else if (pageNum < list.size() && list.size() < page * size) { + list = list.subList(pageNum, list.size()); + } else { + list = new ArrayList<>(); + } + + return ResultUtil.success(OrderWarpper.getOrderWarpper(list)); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 继续等待推单操作 + * + * @param id + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/pushOrderTaxi") + @ApiOperation(value = "继续等待推单操作", tags = {"用户端-出租车", "用户端-专车"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil pushOrderTaxi(Integer id, Integer orderType) { + try { + switch (orderType) { + case 1: + return orderPrivateCarService.pushOrderPrivateCar(id); + case 2: + return orderTaxiService.pushOrderTaxi(id); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取服务中的详情数据 + * + * @param orderId + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryOrderInfo") + @ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class) + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + Map<String, Object> map = null; + List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); + switch (orderType) { + case 1://专车 + map = orderPrivateCarService.queryOrderInfo(uid, orderId); + break; + case 2://出租车 + map = orderTaxiService.queryOrderInfo(orderId); + break; + case 3://跨城 + map = orderCrossCityService.queryOrderInfo(orderId); + break; + } + + if (map.get("companyId") != null) { + Company companyId = companyService.selectById(map.get("companyId").toString()); + map.put("companyName", companyId.getName()); + } else { + map.put("companyName", ""); + } + if (map.get("telX") != null) { + map.put("driverPhone", map.get("telX")); + } + List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); + orderAdditionalFees.forEach(orderAdditionalFee -> { + AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); + OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); + orderAdditionalFeeWarpper.setName(additionalFee.getName()); + orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); + list.add(orderAdditionalFeeWarpper); + }); + OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map, list); + orderType = orderInfoWarpper.getOrderType(); + if (orderType == 1) { + + if (orderInfoWarpper.getPid() != 0) { + orderId = orderInfoWarpper.getPid(); + } + List<Map<String, Object>> orderList = orderPrivateCarService.queryOrderInfo2(orderId, 4, null, null); + if (!orderList.isEmpty()) { + orderInfoWarpper.setMeetOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class)); + } else { + orderInfoWarpper.setMeetOrderList(new ArrayList<>()); + } + orderList = orderPrivateCarService.queryOrderInfo2(orderId, 6, null, null); + if (orderInfoWarpper.getState() > 1 && orderInfoWarpper.getDriverId() != 0) { + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); + if (value == null || value.equals("")) { + if (orderList.isEmpty()) { + orderList = orderPrivateCarService.queryOrderInfo2(orderId, 5, "0", "0"); + } else { + List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId, 5, "0", "0"); + if (!orderList1.isEmpty()) { + orderList.addAll(orderList1); + } + } + } else { + if (orderList.isEmpty()) { + orderList = orderPrivateCarService.queryOrderInfo2(orderId, 5, value.split(",")[0], value.split(",")[1]); + } else { + List<Map<String, Object>> orderList1 = orderPrivateCarService.queryOrderInfo2(orderId, 5, value.split(",")[0], value.split(",")[1]); + if (!orderList1.isEmpty()) { + orderList.addAll(orderList1); + } + } + } + } + + + if (!orderList.isEmpty()) { + orderInfoWarpper.setGiveOrderList(JSON.parseArray(JSON.toJSONString(orderList), OrderCrossCityInfoWrapper.class)); + } else { + orderInfoWarpper.setGiveOrderList(new ArrayList<>()); + } + + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + if (orderPrivateCar.getState() > 1) { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); + String provinceCode = geocode.get("provinceCode"); + String cityCode = geocode.get("cityCode"); + String districtCode = geocode.get("districtCode"); + //获取匹配的城市价格配置 + SystemPriceCity systemPriceCity = systemPriceCityService.queryOne(provinceCode, cityCode, districtCode); + if (null == systemPriceCity) { + return ResultUtil.error("请先配置价格规则"); + } + Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId(), systemPriceCity.getId()); + System.out.println("参数:" + orderPrivateCar.getCompanyId() + "|" + orderPrivateCar.getServerCarModelId()); + System.out.println("query1:" + query1); + //开始根据不同的方式计算金额 + if (query1 != null) { + JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());//等待费 + JSONObject contentPutOne = JSON.parseObject(query1.get("contentPutOne").toString());//一人拼成 + JSONObject contentNotOne = JSON.parseObject(query1.get("contentNotOne").toString());//一人未拼成 + JSONObject contentPutTwo = JSON.parseObject(query1.get("contentPutTwo").toString());//2人拼成 + JSONObject contentNotTwo = JSON.parseObject(query1.get("contentNotTwo").toString());//2人未拼成 + JSONObject contentPutThree = JSON.parseObject(query1.get("contentPutThree").toString());//3人拼成 + JSONObject contentNotThree = JSON.parseObject(query1.get("contentNotThree").toString());//3人未拼成 + JSONObject contentExclusive = JSON.parseObject(query1.get("contentExclusive").toString());//独享 + JSONObject contentPrice = JSON.parseObject(query1.get("contentPrice").toString());//一口价 + //一口价 + orderInfoWarpper.setFareTypeNote1(query1.get("fareTypeNote1").toString()); + orderInfoWarpper.setFareTypeNote2(query1.get("fareTypeNote2").toString()); + orderInfoWarpper.setFareTypeNote3(query1.get("fareTypeNote3").toString()); + orderInfoWarpper.setContentPutOne(contentPutOne); + orderInfoWarpper.setContentNotOne(contentNotOne); + + orderInfoWarpper.setContentPutTwo(contentPutTwo); + orderInfoWarpper.setContentNotTwo(contentNotTwo); + + orderInfoWarpper.setContentPutThree(contentPutThree); + orderInfoWarpper.setContentNotThree(contentNotThree); + + + orderInfoWarpper.setContentExclusive(contentExclusive); + orderInfoWarpper.setContentPrice(contentPrice); + } + } else { + orderInfoWarpper.setContentPutOne(new JSONObject()); + orderInfoWarpper.setContentNotOne(new JSONObject()); + + orderInfoWarpper.setContentPutTwo(new JSONObject()); + orderInfoWarpper.setContentNotTwo(new JSONObject()); + + orderInfoWarpper.setContentPutThree(new JSONObject()); + orderInfoWarpper.setContentNotThree(new JSONObject()); + + + orderInfoWarpper.setContentExclusive(new JSONObject()); + orderInfoWarpper.setContentPrice(new JSONObject()); + } + + } else { + orderInfoWarpper.setContentPutOne(new JSONObject()); + orderInfoWarpper.setContentNotOne(new JSONObject()); + + orderInfoWarpper.setContentPutTwo(new JSONObject()); + orderInfoWarpper.setContentNotTwo(new JSONObject()); + + orderInfoWarpper.setContentPutThree(new JSONObject()); + orderInfoWarpper.setContentNotThree(new JSONObject()); + + + orderInfoWarpper.setContentExclusive(new JSONObject()); + orderInfoWarpper.setContentPrice(new JSONObject()); + } + String arriveTime = orderInfoWarpper.getArriveTime(); + if (ToolUtil.isNotEmpty(arriveTime)) { + orderInfoWarpper.setTime(arriveTime.substring(11, arriveTime.length() - 3)); + } + return ResultUtil.success(orderInfoWarpper); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + @ResponseBody + @PostMapping("/api/order/addAppeal") + @ApiOperation(value = "发起申诉", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class) + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "申诉描述", name = "abnormalIntro", required = true, dataType = "String"), + @ApiImplicitParam(value = "申诉图片", name = "abnormalImg", required = true, dataType = "String"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<OrderInfoWarpper> addAppeal(Integer orderId, Integer orderType, String abnormalIntro, String abnormalImg, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1://专车 + orderPrivateCarService.addAppeal(uid, orderId, abnormalIntro, abnormalImg); + break; + case 2://出租车 + orderTaxiService.addAppeal(uid, orderId, abnormalIntro, abnormalImg); + break; + case 3://跨城 + orderCrossCityService.addAppeal(uid, orderId, abnormalIntro, abnormalImg); + break; + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取服务中的详情数据 + * + * @param orderId + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/base/order/queryOrderInfo_") + @ApiOperation(value = "获取服务中的详情数据", tags = {"分享专用"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + }) + public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType) { + try { + Map<String, Object> map = null; + List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); + switch (orderType) { + case 1://专车 + map = orderPrivateCarService.queryOrderInfo(null, orderId); + break; + case 2://出租车 + map = orderTaxiService.queryOrderInfo(orderId); + break; + case 3://跨城 + map = orderCrossCityService.queryOrderInfo(orderId); + break; + } + if (null != map.get("telX")) { + map.put("driverPhone", map.get("telX")); + } + List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); + orderAdditionalFees.forEach(orderAdditionalFee -> { + AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); + OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); + orderAdditionalFeeWarpper.setName(additionalFee.getName()); + orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); + list.add(orderAdditionalFeeWarpper); + }); + return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list)); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取订单取消支付页面详情 + * + * @param orderId + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryCancelPage") + @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + Map<String, Object> map = null; + List<OrderAdditionalFeeWarpper> list = new ArrayList<>(); + switch (orderType) { + case 1://专车 + map = orderPrivateCarService.queryOrderInfo(uid, orderId); + ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId); + map.put("cancelPayMoney", res.getData().getAmount()); + break; + case 2://出租车 + map = orderTaxiService.queryOrderInfo(orderId); + ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId); + map.put("cancelPayMoney", re.getData().getAmount()); + break; + case 3://跨城 + map = orderCrossCityService.queryOrderInfo(orderId); + ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId); + map.put("cancelPayMoney", r.getData().getAmount()); + break; + } + if (null != map.get("telX")) { + map.put("driverPhone", map.get("telX")); + } + List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", orderType).eq("orderId", orderId)); + orderAdditionalFees.forEach(orderAdditionalFee -> { + AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId()); + OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper(); + orderAdditionalFeeWarpper.setName(additionalFee.getName()); + orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount()); + list.add(orderAdditionalFeeWarpper); + }); + return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map, list)); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取订单轨迹坐标 + * + * @param orderId + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/api/order/queryTrack") + @ApiOperation(value = "获取订单轨迹坐标", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil queryTrack(Integer orderId, Integer orderType) { + try { + List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType); + return ResultUtil.success(list); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取订单轨迹坐标 + * + * @param orderId + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/base/order/queryTrack_") + @ApiOperation(value = "获取订单轨迹坐标", tags = {"分享专用"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"), + }) + public ResultUtil queryTrack_(Integer orderId, Integer orderType) { + try { + List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType); + return ResultUtil.success(list); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 发送订单状态 + * + * @param id + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/base/order/sendOrderState") + public ResultUtil cancelOrder(Integer id, Integer orderType) { + try { + Integer driverId = null; + Integer userId = null; + Integer state = 0; + switch (orderType) { + case 1: + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id); + driverId = orderPrivateCar.getDriverId(); + userId = orderPrivateCar.getUserId(); + state = orderPrivateCar.getState(); + if (null != driverId) { + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + } + break; + case 2: + OrderTaxi orderTaxi = orderTaxiService.selectById(id); + driverId = orderTaxi.getDriverId(); + userId = orderTaxi.getUserId(); + state = orderTaxi.getState(); + if (null != driverId) { + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + } + break; + case 3: + OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id); + driverId = orderCrossCity.getDriverId(); + userId = orderCrossCity.getUserId(); + state = orderCrossCity.getState(); + if (orderCrossCity.getPayMoney() == null && state == 10) {//支付的情况才推送取消 + break; + } else { + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + } + break; + case 4: + OrderLogistics orderLogistics = orderLogisticsService.selectById(id); + driverId = orderLogistics.getDriverId(); + userId = orderLogistics.getUserId(); + state = orderLogistics.getState(); + if (orderLogistics.getPayMoney() == null && state == 10) {//支付的情况才推送取消 + break; + } else { + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + } + break; + case 5: + OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id); + driverId = orderLogistics1.getDriverId(); + userId = orderLogistics1.getUserId(); + state = orderLogistics1.getState(); + if (orderLogistics1.getPayMoney() == null && state == 10) {//支付的情况才推送取消 + break; + } else { + pushUtil.pushOrderState(2, driverId, id, orderType, state, 0); + } + break; + } + pushUtil.pushOrderState(1, userId, id, orderType, state, 0); + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * APP调用微信小程序支付 + * + * @param orderId + * @param orderType + * @param type + * @param content + * @return + */ + @ResponseBody + @PostMapping("/base/order/weChatPay") + @ApiOperation(value = "APP调用微信小程序支付", tags = {"用户端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "业务类型(1=订单完成支付,2=订单取消支付,3=司机端改派支付,4=余额充值,5=小件物流差价支付)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), + @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"), + @ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string") + }) + public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content) { + try { + return orderService.weChatPay(orderId, orderType, type, userType, uid, content); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + @ResponseBody + @PostMapping("/base/order/queryUserOpenId") + @ApiOperation(value = "获取用户的微信openid", tags = {"用户端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), + @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int") + }) + public ResultUtil queryUserOpenId(Integer uid, Integer userType) { + if (userType == 2) { + Driver driver = driverService.selectById(uid); + return ResultUtil.success(driver.getAppletsOpenId()); + } + if (userType == 1) { + UserInfo userInfo = userInfoService.selectById(uid); + return ResultUtil.success(userInfo.getAppletsOpenId()); + } + return ResultUtil.success(); + } + + + @ResponseBody + @PostMapping("/base/order/getWeChatOpenId") + @ApiOperation(value = "用户授权获取小程序openid", tags = {"用户端-服务中"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"), + @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"), + @ApiImplicitParam(value = "小程序授权临时凭证", name = "jscode", required = true, dataType = "string"), + }) + public ResultUtil getWeChatOpenId(Integer uid, Integer userType, String jscode) { + Map<String, String> map = weChatUtil.code2Session(jscode); + if (userType == 2) { + Driver driver = driverService.selectById(uid); + driver.setAppletsOpenId(map.get("openid")); + driverService.updateById(driver); + } + if (userType == 1) { + UserInfo userInfo = userInfoService.selectById(uid); + userInfo.setAppletsOpenId(map.get("openid")); + userInfoService.updateById(userInfo); + } + return ResultUtil.success(); + } + + + /** + * 获取预计行驶时间 + * + * @param slon + * @param slat + * @param elon + * @param elat + * @return + */ + @ResponseBody + @PostMapping("/base/taxi/queryExpectedTime") + @ApiOperation(value = "选择地点和终点后获取预计行驶时长", tags = {"用户端-出租车", "用户端-专车"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "起点经度", name = "slon", required = true, dataType = "double"), + @ApiImplicitParam(value = "起点纬度", name = "slat", required = true, dataType = "double"), + @ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"), + @ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double") + }) + public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) { + try { + return orderService.queryExpectedTime(slon, slat, elon, elat); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取取消订单需要支付的费用金额 + * + * @param id + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/queryCancleAmount") + @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType) { + try { + switch (orderType) { + case 1: + return orderPrivateCarService.queryCancleAmount(id); + case 2: + return orderTaxiService.queryCancleAmount(id); + case 3: + return orderCrossCityService.queryCancleAmount(id); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 添加取消记录 + * + * @param id + * @param reason + * @param remark + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/addCancle") + @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"), + @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1: + return orderPrivateCarService.addCancle(id, reason, remark, uid); + case 2: + return orderTaxiService.addCancle(id, reason, remark, uid); + case 3: + return orderCrossCityService.addCancle(id, reason, remark, uid); + case 4: + return orderLogisticsService.addCancle(id, reason, remark, uid); + case 5: + return orderLogisticsService.addCancle(id, reason, remark, uid); + case 6: + return orderCharteredCarService.addCancle(id, reason, remark, uid); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 取消操作支付 + * + * @param id + * @param payType + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/cancleOrderTaxi") + @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"), + @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1: + return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type); + case 2: + return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); + case 3: + return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 投诉操作 + * + * @param driverId + * @param reason + * @param description + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/complaintService") + @ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), + @ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"), + @ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil complaintService(Integer driverId, String reason, String description, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + complaintService.saveData(driverId, reason, description, uid); + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 支付页面获取可用优惠券数量和余额 + * + * @param orderId + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/queryBalance") + @ApiOperation(value = "支付页面获取可用优惠券数量和余额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "balance=余额,coupon=优惠券") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil queryBalance(Integer orderId, Integer orderType, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + Map<String, Object> map = new HashMap<>(); + switch (orderType) { + case 1: + map = orderPrivateCarService.queryBalance(orderId, uid); + break; + case 2: + map = orderTaxiService.queryBalance(orderId, uid); + break; + case 3: + map = orderCrossCityService.queryBalance(orderId, uid); + break; + case 4: + map = orderLogisticsService.queryBalance(orderId, uid); + break; + case 5: + map = orderLogisticsService.queryBalance(orderId, uid); + break; + } + return ResultUtil.success(map); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 支付页面获取余额和优惠数据 + * + * @param orderId + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/queryBalance1") + @ApiOperation(value = "1.0-支付页面获取余额和优惠数据", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<PreferentialDataVo> queryBalance1(Integer orderId, Integer orderType, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + PreferentialDataVo map = new PreferentialDataVo(); + switch (orderType) { + case 1: + map = orderPrivateCarService.queryBalance1(orderId, uid); + break; + case 2: + map = orderTaxiService.queryBalance1(orderId, uid); + break; + case 3: + map = orderCrossCityService.queryBalance1(orderId, uid); + break; + case 4: + map = orderLogisticsService.queryBalance1(orderId, uid); + break; + case 5: + map = orderLogisticsService.queryBalance1(orderId, uid); + break; + case 6: + map = orderCharteredCarService.queryBalance1(orderId, uid); + break; + case 7: // map = orde.queryBalance1(orderId, uid); - break; - } - return ResultUtil.success(map); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 获取支付页面的优惠券列表 - * @param orderId - * @param pageNum - * @param size - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/queryCoupon") - @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), - @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - List<Map<String, Object>> list = new ArrayList<>(); - switch (orderType){ - case 1: - list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size); - break; - case 2: - list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); - break; - case 3: - list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); - break; - } - return ResultUtil.success(CouponWarpper.getCouponWarppers(list)); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - @ResponseBody - @PostMapping("/api/taxi/queryCouponList") - @ApiOperation(value = "1.0-获取支付页面的优惠券和打车卡列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城","用户端-小件物流"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), - @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<List<CouponsListVo>> queryCouponList(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - List<CouponsListVo> list = new ArrayList<>(); - switch (orderType){ - case 1: - list = orderPrivateCarService.queryCouponList(orderId, uid, pageNum, size); - break; - case 2: - list = orderTaxiService.queryCouponList(orderId, uid, pageNum, size); - break; - case 3: - list = orderCrossCityService.queryCouponList(orderId, uid, pageNum, size); - break; - case 4: - list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size); - break; - case 5: - list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size); - break; - } - return ResultUtil.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 订单完成支付订单操作 - * @param payType - * @param orderId - * @param request - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/payTaxiOrder") - @ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"), - @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1: - return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type); - case 2: - return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type); - case 3: - return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type); - case 4: - return orderLogisticsService.payLogisticsOrder(payType, orderId, type); - case 5: - return orderLogisticsService.payLogisticsOrder(payType, orderId, type); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - @ResponseBody - @PostMapping("/api/taxi/payTaxiOrder1") - @ApiOperation(value = "1.0-订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "优惠数据id", name = "objectId", required = false, dataType = "int"), - @ApiImplicitParam(value = "数据类型(1=优惠券,2=打车卡)", name = "objectType", required = false, dataType = "int"), - @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type, HttpServletRequest request){ - System.out.println(objectType); - System.out.println(objectId); - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1: - return orderPrivateCarService.payPrivateCarOrder1(payType, orderId, objectId, objectType, type); - case 2: - return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type); - case 3: - return orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type); - case 4: - return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type); - case 5: - return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 订单完成后添加评价操作 - * @param orderId - * @param fraction - * @param content - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/orderEvaluate") - @ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"), - @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content){ - try { - ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content); - if(resultUtil.getCode() == 200){ - switch (orderType){ - case 1: - OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); - orderPrivateCar.setState(9); - orderPrivateCarService.updateById(orderPrivateCar); - new Thread(new Runnable() { - @Override - public void run() { - if(pushMinistryOfTransport){//上传数据 - pushMinistryOfTransportUtil.ratedPassenger(Integer.valueOf(resultUtil.getData().toString())); - pushMinistryOfTransportUtil.ratedDriver(orderPrivateCar.getDriverId()); - } - } - }).start(); - break; - case 2: - OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); - orderTaxi.setState(9); - orderTaxiService.updateById(orderTaxi); - break; - case 3: - OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); - orderCrossCity.setState(9); - orderCrossCityService.updateById(orderCrossCity); - break; - } - } - return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil; - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - /** - * 评论成功后获取红包金额 - * @param orderId - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/queryRedMoney") - @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType){ - try { - switch (orderType){ - case 1: - return orderPrivateCarService.queryRedMoney(orderId); - case 2: - return orderTaxiService.queryRedMoney(orderId); - case 3: - return orderCrossCityService.queryRedMoney(orderId); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - /** - * 分享成功后添加红包操作 - * @param orderId - * @return - */ - @ResponseBody - @PostMapping("/api/taxi/shareRedEnvelope") - @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType){ - try { - switch (orderType){ - case 1: - return orderPrivateCarService.shareRedEnvelope(orderId); - case 2: - return orderTaxiService.shareRedEnvelope(orderId); - case 3: - return orderCrossCityService.shareRedEnvelope(orderId); - } - return ResultUtil.success(); - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - - - - - - /** - * 取消订单微信回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/wxCancelOrderTaxi") - public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - if(null != map){ - String order_id = map.get("transaction_id"); - String out_trade_no = map.get("out_trade_no"); - String result = map.get("result"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1); - break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 1); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); - break; - } - } + break; + } + return ResultUtil.success(map); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 获取支付页面的优惠券列表 + * + * @param orderId + * @param pageNum + * @param size + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/queryCoupon") + @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + List<Map<String, Object>> list = new ArrayList<>(); + switch (orderType) { + case 1: + list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size); + break; + case 2: + list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); + break; + case 3: + list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); + break; + } + return ResultUtil.success(CouponWarpper.getCouponWarppers(list)); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + @ResponseBody + @PostMapping("/api/taxi/queryCouponList") + @ApiOperation(value = "1.0-获取支付页面的优惠券和打车卡列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), + @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<CouponsListVo>> queryCouponList(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + List<CouponsListVo> list = new ArrayList<>(); + switch (orderType) { + case 1: + list = orderPrivateCarService.queryCouponList(orderId, uid, pageNum, size); + break; + case 2: + list = orderTaxiService.queryCouponList(orderId, uid, pageNum, size); + break; + case 3: + list = orderCrossCityService.queryCouponList(orderId, uid, pageNum, size); + break; + case 4: + list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size); + break; + case 5: + list = orderLogisticsService.queryCouponList(orderId, uid, pageNum, size); + break; + } + return ResultUtil.success(list); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 订单完成支付订单操作 + * + * @param payType + * @param orderId + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/payTaxiOrder") + @ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"), + @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1: + return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type); + case 2: + return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type); + case 3: + return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type); + case 4: + return orderLogisticsService.payLogisticsOrder(payType, orderId, type); + case 5: + return orderLogisticsService.payLogisticsOrder(payType, orderId, type); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + @ResponseBody + @PostMapping("/api/taxi/payTaxiOrder1") + @ApiOperation(value = "1.0-订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "优惠数据id", name = "objectId", required = false, dataType = "int"), + @ApiImplicitParam(value = "数据类型(1=优惠券,2=打车卡)", name = "objectType", required = false, dataType = "int"), + @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "小程序支付成功跳转路径", name = "path", required = true, dataType = "String"), + @ApiImplicitParam(value = "设备当前IP地址", name = "ip", required = true, dataType = "String"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type, String path, String ip, HttpServletRequest request) { + System.out.println(objectType); + System.out.println(objectId); + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1: + return orderPrivateCarService.payPrivateCarOrder1(payType, orderId, objectId, objectType, type, path, ip); + case 2: + return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type, path, ip); + case 3: + return orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type); + case 4: + return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type); + case 5: + return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 订单完成后添加评价操作 + * + * @param orderId + * @param fraction + * @param content + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/orderEvaluate") + @ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"), + @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content) { + try { + ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content); + if (resultUtil.getCode() == 200) { + switch (orderType) { + case 1: + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + orderPrivateCar.setState(9); + orderPrivateCarService.updateById(orderPrivateCar); + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + if (null != orderPrivateCar.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); + new Thread(new Runnable() { + @Override + public void run() { + if (pushMinistryOfTransport) {//上传数据 + pushMinistryOfTransportUtil.ratedPassenger(Integer.valueOf(resultUtil.getData().toString())); + pushMinistryOfTransportUtil.ratedDriver(orderPrivateCar.getDriverId()); + } + } + }).start(); + break; + case 2: + OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); + orderTaxi.setState(9); + orderTaxiService.updateById(orderTaxi); + Driver driver = null; + Company company1 = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request2 = new ModifyTravelItineraryRequest(); + request2.setOrderId(orderTaxi.getTravelId()); + request2.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver = driverService.selectById(orderTaxi.getDriverId()); + company1 = companyService.selectById(driver.getCompanyId()); + request2.setDriverId(driver.getEmpId().toString()); + request2.setSupplierShopId(company1.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request2.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request2); + break; + case 3: + OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); + orderCrossCity.setState(9); + orderCrossCityService.updateById(orderCrossCity); + break; + } + } + return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil; + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 评论成功后获取红包金额 + * + * @param orderId + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/queryRedMoney") + @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType) { + try { + switch (orderType) { + case 1: + return orderPrivateCarService.queryRedMoney(orderId); + case 2: + return orderTaxiService.queryRedMoney(orderId); + case 3: + return orderCrossCityService.queryRedMoney(orderId); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 分享成功后添加红包操作 + * + * @param orderId + * @return + */ + @ResponseBody + @PostMapping("/api/taxi/shareRedEnvelope") + @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType) { + try { + switch (orderType) { + case 1: + return orderPrivateCarService.shareRedEnvelope(orderId); + case 2: + return orderTaxiService.shareRedEnvelope(orderId); + case 3: + return orderCrossCityService.shareRedEnvelope(orderId); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 取消订单微信回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/wxCancelOrderTaxi") + public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if (null != map) { + String order_id = map.get("transaction_id"); + String out_trade_no = map.get("out_trade_no"); + String result = map.get("result"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + switch (type) { + case 1: + orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1); + break; + case 2: + orderTaxiService.payCancelOrderTaxi(id, order_id, 1); + break; + case 3: + orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); + break; + } + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 取消订单支付宝回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/aliCancelOrderTaxi") - public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); - break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 2); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); - break; - } - PrintWriter out = response.getWriter(); - out.print("success"); - out.flush(); - out.close(); - } + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 取消订单支付宝回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/aliCancelOrderTaxi") + public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if (null != map) { + String out_trade_no = map.get("out_trade_no"); + String order_id = map.get("trade_no"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + switch (type) { + case 1: + orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); + break; + case 2: + orderTaxiService.payCancelOrderTaxi(id, order_id, 2); + break; + case 3: + orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); + break; + } + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } // cloudPay(map.get("total_amount"),map.get("trade_no"),0); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 完成订单微信支付回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/wxPayOrderTaxi") - public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){ - try { - System.out.println("完成订单微信支付回调"); - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - System.out.println("wx支付信息:"+map); - if(null != map){ - String order_id = map.get("transaction_id"); - String out_trade_no = map.get("out_trade_no"); - String result = map.get("result"); - String total_fee = map.get("total_fee"); - String transaction_id = map.get("transaction_id"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1); - break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 1,0); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1,null); - break; - case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); - break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); - break; - } - - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 完成订单微信支付回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/wxPayOrderTaxi") + public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response) { + try { + System.out.println("完成订单微信支付回调"); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + System.out.println("wx支付信息:" + map); + if (null != map) { + String order_id = map.get("transaction_id"); + String out_trade_no = map.get("out_trade_no"); + String result = map.get("result"); + String total_fee = map.get("total_fee"); + String transaction_id = map.get("transaction_id"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + switch (type) { + case 1: + orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1); + break; + case 2: + orderTaxiService.payOrderTaxiCallback(id, order_id, 1, 0); + break; + case 3: + orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1, null); + break; + case 4: + orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); + break; + case 5: + orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); + break; + } + + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - } - - - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 完成订单支付宝支付回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/aliPayOrderTaxi") - public void aliPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2); - break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 2,0); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2,null); - break; - case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2); - break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2); - break; - } - PrintWriter out = response.getWriter(); - out.print("success"); - out.flush(); - out.close(); - } + } + + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 完成订单支付宝支付回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/aliPayOrderTaxi") + public void aliPayOrderTaxi(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if (null != map) { + String out_trade_no = map.get("out_trade_no"); + String order_id = map.get("trade_no"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + switch (type) { + case 1: + orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2); + break; + case 2: + orderTaxiService.payOrderTaxiCallback(id, order_id, 2, 0); + break; + case 3: + orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2, null); + break; + case 4: + orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2); + break; + case 5: + orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2); + break; + } + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } // cloudPay(map.get("total_amount"),map.get("trade_no"),0); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - - - /** - * 小件物流差价微信支付回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/wxPayOrderLogisticsSpread") - public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - if(null != map){ - String order_id = map.get("transaction_id"); - String out_trade_no = map.get("out_trade_no"); - String result = map.get("result"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1); - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 小件物流差价微信支付回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/wxPayOrderLogisticsSpread") + public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if (null != map) { + String order_id = map.get("transaction_id"); + String out_trade_no = map.get("out_trade_no"); + String result = map.get("result"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1); + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 小件物流差价支付宝支付回调 - * @param request - */ - @ResponseBody - @PostMapping("/base/aliPayOrderLogisticsSpread") - public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); - - PrintWriter out = response.getWriter(); - out.print("success"); - out.flush(); - out.close(); - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 小件物流差价支付宝支付回调 + * + * @param request + */ + @ResponseBody + @PostMapping("/base/aliPayOrderLogisticsSpread") + public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if (null != map) { + String out_trade_no = map.get("out_trade_no"); + String order_id = map.get("trade_no"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + String[] split = out_trade_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); + + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } // cloudPay(map.get("total_amount"),map.get("trade_no"),0); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - /** - * 取消订单微信退款成功回调 - * @param request - * @param response - */ - @ResponseBody - @PostMapping("/base/cancleOrderWXPay") - public void cancleOrderWXPay(HttpServletRequest request, HttpServletResponse response){ - try { - System.out.println("小件物流取消"); - Map<String, String> map = payMoneyUtil.wxRefundCallback(request); - if(null != map){ - String order_id = map.get("refund_id"); - String out_refund_no = map.get("out_refund_no"); - String result = map.get("result"); - if(ToolUtil.isNotEmpty(out_refund_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - - String[] split = out_refund_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - System.out.println("取消回调:"+type); - switch (type){ - case 1: - break; - case 2: - break; - case 3: - OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id); - PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2); - //添加交易明细 - transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id); - UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderCrossCity.getCouponId()); - userCouponRecord.setState(1); - userCouponRecordService.updateById(userCouponRecord); - orderCrossCity.setCouponMoney(0.00); - orderCrossCityService.updateById(orderCrossCity); - break; - case 4: - OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id); - PaymentRecord query1 = paymentRecordService.query(1, orderLogistics1.getUserId(), 1, id, 4, orderLogistics1.getPayType(), 2); - //添加交易明细 - transactionDetailsService.saveData(orderLogistics1.getUserId(), "同城小件物流取消退款", query1.getAmount(), 1, 1, 1, 4, id); - UserCouponRecord userCouponRecord1 = userCouponRecordService.selectById(orderLogistics1.getCouponId()); - userCouponRecord1.setState(1); - userCouponRecordService.updateById(userCouponRecord1); - orderLogistics1.setCouponMoney(0.00); - orderLogisticsService.updateById(orderLogistics1); - break; - case 5: - OrderLogistics orderLogistics2 = orderLogisticsService.selectById(id); - PaymentRecord query2 = paymentRecordService.query(1, orderLogistics2.getUserId(), 1, id, 5, orderLogistics2.getPayType(), 2); - //添加交易明细 - transactionDetailsService.saveData(orderLogistics2.getUserId(), "跨城小件物流取消退款", query2.getAmount(), 1, 1, 1, 5, id); - UserCouponRecord userCouponRecord2 = userCouponRecordService.selectById(orderLogistics2.getCouponId()); - userCouponRecord2.setState(1); - userCouponRecordService.updateById(userCouponRecord2); - orderLogistics2.setCouponMoney(0.00); - orderLogisticsService.updateById(orderLogistics2); - break; - } - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 取消订单微信退款成功回调 + * + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/cancleOrderWXPay") + public void cancleOrderWXPay(HttpServletRequest request, HttpServletResponse response) { + try { + System.out.println("小件物流取消"); + Map<String, String> map = payMoneyUtil.wxRefundCallback(request); + if (null != map) { + String order_id = map.get("refund_id"); + String out_refund_no = map.get("out_refund_no"); + String result = map.get("result"); + if (ToolUtil.isNotEmpty(out_refund_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + + String[] split = out_refund_no.split("_"); + Integer id = Integer.valueOf(split[0]); + Integer type = Integer.valueOf(split[1]); + System.out.println("取消回调:" + type); + switch (type) { + case 1: + break; + case 2: + break; + case 3: + OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id); + PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2); + //添加交易明细 + transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城出行取消退款", query.getAmount(), 1, 1, 1, 3, id); + UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderCrossCity.getCouponId()); + userCouponRecord.setState(1); + userCouponRecordService.updateById(userCouponRecord); + orderCrossCity.setCouponMoney(0.00); + orderCrossCityService.updateById(orderCrossCity); + break; + case 4: + OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id); + PaymentRecord query1 = paymentRecordService.query(1, orderLogistics1.getUserId(), 1, id, 4, orderLogistics1.getPayType(), 2); + //添加交易明细 + transactionDetailsService.saveData(orderLogistics1.getUserId(), "同城小件物流取消退款", query1.getAmount(), 1, 1, 1, 4, id); + UserCouponRecord userCouponRecord1 = userCouponRecordService.selectById(orderLogistics1.getCouponId()); + userCouponRecord1.setState(1); + userCouponRecordService.updateById(userCouponRecord1); + orderLogistics1.setCouponMoney(0.00); + orderLogisticsService.updateById(orderLogistics1); + break; + case 5: + OrderLogistics orderLogistics2 = orderLogisticsService.selectById(id); + PaymentRecord query2 = paymentRecordService.query(1, orderLogistics2.getUserId(), 1, id, 5, orderLogistics2.getPayType(), 2); + //添加交易明细 + transactionDetailsService.saveData(orderLogistics2.getUserId(), "跨城小件物流取消退款", query2.getAmount(), 1, 1, 1, 5, id); + UserCouponRecord userCouponRecord2 = userCouponRecordService.selectById(orderLogistics2.getCouponId()); + userCouponRecord2.setState(1); + userCouponRecordService.updateById(userCouponRecord2); + orderLogistics2.setCouponMoney(0.00); + orderLogisticsService.updateById(orderLogistics2); + break; + } + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 购买出行卡微信支付回调 - * @param request - * @param response - */ - @ResponseBody - @PostMapping("/base/wxPayTaxiCardPaymentSpread") - public void wxPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){ - try { - System.out.println("购买出行卡微信支付回调"); - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - System.out.println("购买出行卡微信支付回调"+map); - if(null != map){ - String order_id = map.get("transaction_id"); - String out_trade_no = map.get("out_trade_no"); - String result = map.get("result"); - System.out.println(out_trade_no+"_"+order_id); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id); - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 购买出行卡微信支付回调 + * + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/wxPayTaxiCardPaymentSpread") + public void wxPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response) { + try { + System.out.println("购买出行卡微信支付回调"); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + System.out.println("购买出行卡微信支付回调" + map); + if (null != map) { + String order_id = map.get("transaction_id"); + String out_trade_no = map.get("out_trade_no"); + String result = map.get("result"); + System.out.println(out_trade_no + "_" + order_id); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id); + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 购买出行卡支付宝支付回调 - * @param request - * @param response - */ - @ResponseBody - @PostMapping("/base/aliPayTaxiCardPaymentSpread") - public void aliPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id); - - PrintWriter out = response.getWriter(); - out.print("success"); - out.flush(); - out.close(); - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 购买出行卡支付宝支付回调 + * + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/aliPayTaxiCardPaymentSpread") + public void aliPayTaxiCardPaymentSpread(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if (null != map) { + String out_trade_no = map.get("out_trade_no"); + String order_id = map.get("trade_no"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + taxiCardService.payTaxiCardPaymentSpread(Integer.valueOf(out_trade_no), order_id); + + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } // cloudPay(map.get("total_amount"),map.get("trade_no"),0); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - @ResponseBody - @PostMapping("/api/taxi/payThankYouFee") - @ApiOperation(value = "1.0-支付感谢费", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流", "用户端-包车", "用户端-助老模式"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流,6=包车,7=助老模式)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "支付金额", name = "money", required = true, dataType = "double"), - @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil payThankYouFee(Integer orderId, Integer orderType, Double money, Integer payType, Integer type, HttpServletRequest request){ - try { - Integer uid = userInfoService.getUserIdFormRedis(request); - if(null == uid){ - return ResultUtil.tokenErr(); - } - switch (orderType){ - case 1: - return orderPrivateCarService.payThankYouFee(uid, orderId, money, payType, type); - case 2: - return orderTaxiService.payThankYouFee(uid, orderId, money, payType, type); - case 3: - return orderCrossCityService.payThankYouFee(uid, orderId, money, payType, type); - case 4: - return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type); - case 5: - return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type); - case 6: - return orderCharteredCarService.payThankYouFee(uid, orderId, money, payType, type); - case 7: - return orderCallService.payThankYouFee(uid, orderId, money, payType, type); - } - }catch (Exception e){ - e.printStackTrace(); - return ResultUtil.runErr(); - } - return ResultUtil.success(); - } - - - /** - * 感谢费支付回调 - * @param request - * @param response - */ - @ResponseBody - @PostMapping("/base/wxPayThankYouFee") - public void wxPayThankYouFee(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - if(null != map){ - String order_id = map.get("transaction_id"); - String out_trade_no = map.get("out_trade_no"); - String result = map.get("result"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - PrintWriter out = response.getWriter(); - out.write(result); - out.flush(); - out.close(); - - String[] s = out_trade_no.split("_"); - switch (Integer.valueOf(s[1])){ - case 1: - orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 2: - orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 3: - orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 4: - orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 5: - orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 6: - orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - case 7: - orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); - } - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + @ResponseBody + @PostMapping("/api/taxi/payThankYouFee") + @ApiOperation(value = "1.0-支付感谢费", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流", "用户端-包车", "用户端-助老模式"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流,6=包车,7=助老模式)", name = "orderType", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付金额", name = "money", required = true, dataType = "double"), + @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil payThankYouFee(Integer orderId, Integer orderType, Double money, Integer payType, Integer type, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + switch (orderType) { + case 1: + return orderPrivateCarService.payThankYouFee(uid, orderId, money, payType, type); + case 2: + return orderTaxiService.payThankYouFee(uid, orderId, money, payType, type); + case 3: + return orderCrossCityService.payThankYouFee(uid, orderId, money, payType, type); + case 4: + return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type); + case 5: + return orderLogisticsService.payThankYouFee(uid, orderId, money, payType, type); + case 6: + return orderCharteredCarService.payThankYouFee(uid, orderId, money, payType, type); + case 7: + return orderCallService.payThankYouFee(uid, orderId, money, payType, type); + } + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + return ResultUtil.success(); + } + + + /** + * 感谢费支付回调 + * + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/wxPayThankYouFee") + public void wxPayThankYouFee(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if (null != map) { + String order_id = map.get("transaction_id"); + String out_trade_no = map.get("out_trade_no"); + String result = map.get("result"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + + String[] s = out_trade_no.split("_"); + switch (Integer.valueOf(s[1])) { + case 1: + orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 2: + orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 3: + orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 4: + orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 5: + orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 6: + orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + case 7: + orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 1); + } + } // cloudPay(map.get("total_fee"),map.get("transaction_id"),1); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 感谢费支付宝支付回调 - * @param request - * @param response - */ - @ResponseBody - @PostMapping("/base/aliPayThankYouFee") - public void aliPayThankYouFee(HttpServletRequest request, HttpServletResponse response){ - try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ - String[] s = out_trade_no.split("_"); - switch (Integer.valueOf(s[1])){ - case 1: - orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 2: - orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 3: - orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 4: - orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 5: - orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 6: - orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - case 7: - orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); - } - - PrintWriter out = response.getWriter(); - out.print("success"); - out.flush(); - out.close(); - } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 感谢费支付宝支付回调 + * + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/aliPayThankYouFee") + public void aliPayThankYouFee(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if (null != map) { + String out_trade_no = map.get("out_trade_no"); + String order_id = map.get("trade_no"); + if (ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)) { + String[] s = out_trade_no.split("_"); + switch (Integer.valueOf(s[1])) { + case 1: + orderPrivateCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 2: + orderTaxiService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 3: + orderCrossCityService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 4: + orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 5: + orderLogisticsService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 6: + orderCharteredCarService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + case 7: + orderCallService.payThankYouFeeCallback(Integer.valueOf(s[0]), order_id, 2); + } + + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } // cloudPay(map.get("total_amount"),map.get("trade_no"),0); - } - }catch (Exception e){ - e.printStackTrace(); - } - } - - - /** - * 管理后台推单 - * - * @param orderType - * @return - */ - @ResponseBody - @PostMapping("/base/taxi/pushOrder") - public ResultUtil pushOrder(Integer orderId, Integer orderType) { - try { - switch (orderType) { - case 1: - return orderPrivateCarService.pushOrderPrivateCar(orderId); - case 2: - return orderTaxiService.pushOrderTaxi(orderId); - } - return ResultUtil.success(); - } catch (Exception e) { - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - - - /** - * 黔云通支付回调通知 - * - * @param qytPaymentCallback - * @return - */ - @ResponseBody - @PostMapping("/base/order/qytPaymentCallback") - public String qytPaymentCallback(@RequestBody QYTPaymentCallback qytPaymentCallback) { - log.info("【黔云通支付回调通知】请求参数:" + JSON.toJSONString(qytPaymentCallback)); - if (null == qytPaymentCallback) { - return "error"; - } - return "success"; - } - - - - /** - * 推广订单支付成功回调 - * - * @param orderId - * @return - */ - private void promotion(Integer orderType,Integer orderId){ - switch (orderType){ - case 1: - orderPrivateCarService.promotion(orderId); - break; - case 2: - orderTaxiService.promotion(orderId); - break; - case 3: - orderCrossCityService.promotion(orderId); - break; - default: - break; - } - } - - - @ResponseBody - @PostMapping("/api/get/unPayOrder") - @ApiOperation(value = "获取未支付订单", tags = {"用户端-首页"}, notes = "") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流,null=全部)", name = "orderType", required = false, dataType = "int"), - @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") - }) - public ResultUtil getUnPayOrder( Integer orderType, HttpServletRequest request){ - try { - // 从Redis中获取当前用户ID - Integer uid = userInfoService.getUserIdFormRedis(request); - if (null == uid) { - return ResultUtil.tokenErr(); - } - - List<UnPayOrderVO> unpaidOrders = new ArrayList<>(); - - // 根据订单类型查询对应未支付订单 - if (orderType == null || orderType == 1) { - // 查询未支付的专车订单 - List<UnPayOrderVO> privateCarOrders = orderPrivateCarService.getUnpayPrivateOrders(uid); - unpaidOrders.addAll(privateCarOrders); - } - - if (orderType == null || orderType == 2) { - // 查询未支付的出租车订单 - List<UnPayOrderVO> taxiOrders = orderTaxiService.getUnpayTaxiOrders(uid); - unpaidOrders.addAll(taxiOrders); - } - - if (orderType == null || orderType == 3) { - // 查询未支付的跨城订单 - List<UnPayOrderVO> crossCityOrders = orderCrossCityService.getUnpayCrossCityOrders(uid); - unpaidOrders.addAll(crossCityOrders); - } - - if (orderType == null || orderType == 4 || orderType == 5) { - // 查询未支付的物流订单(包含类型4和5) - List<UnPayOrderVO> logisticsOrders = orderLogisticsService.getUnpayLogisticsOrders(uid); - unpaidOrders.addAll(logisticsOrders); - } - - // 按创建时间倒序排序(最新的订单在前) - unpaidOrders.sort(Comparator.comparing(UnPayOrderVO::getInsertTime).reversed()); - - Map<String, Object> result = new HashMap<>(); - result.put("total", unpaidOrders.size()); - result.put("orders", unpaidOrders); - - return ResultUtil.success(result); - } catch (Exception e) { - e.printStackTrace(); - return ResultUtil.runErr(); - } - } - + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 管理后台推单 + * + * @param orderType + * @return + */ + @ResponseBody + @PostMapping("/base/taxi/pushOrder") + public ResultUtil pushOrder(Integer orderId, Integer orderType) { + try { + switch (orderType) { + case 1: + return orderPrivateCarService.pushOrderPrivateCar(orderId); + case 2: + return orderTaxiService.pushOrderTaxi(orderId); + } + return ResultUtil.success(); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 黔云通支付回调通知 + * + * @param qytPaymentCallback + * @return + */ + @ResponseBody + @PostMapping("/base/order/qytPaymentCallback") + public String qytPaymentCallback(@RequestBody QYTPaymentCallback qytPaymentCallback) { + log.info("【黔云通支付回调通知】请求参数:" + JSON.toJSONString(qytPaymentCallback)); + if (null == qytPaymentCallback) { + return "error"; + } + return "success"; + } + + + /** + * 推广订单支付成功回调 + * + * @param orderId + * @return + */ + private void promotion(Integer orderType, Integer orderId) { + switch (orderType) { + case 1: + orderPrivateCarService.promotion(orderId); + break; + case 2: + orderTaxiService.promotion(orderId); + break; + case 3: + orderCrossCityService.promotion(orderId); + break; + default: + break; + } + } + + + @ResponseBody + @PostMapping("/api/get/unPayOrder") + @ApiOperation(value = "获取未支付订单", tags = {"用户端-首页"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流,null=全部)", name = "orderType", required = false, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil getUnPayOrder(Integer orderType, HttpServletRequest request) { + try { + // 从Redis中获取当前用户ID + Integer uid = userInfoService.getUserIdFormRedis(request); + if (null == uid) { + return ResultUtil.tokenErr(); + } + + List<UnPayOrderVO> unpaidOrders = new ArrayList<>(); + + // 根据订单类型查询对应未支付订单 + if (orderType == null || orderType == 1) { + // 查询未支付的专车订单 + List<UnPayOrderVO> privateCarOrders = orderPrivateCarService.getUnpayPrivateOrders(uid); + unpaidOrders.addAll(privateCarOrders); + } + + if (orderType == null || orderType == 2) { + // 查询未支付的出租车订单 + List<UnPayOrderVO> taxiOrders = orderTaxiService.getUnpayTaxiOrders(uid); + unpaidOrders.addAll(taxiOrders); + } + + if (orderType == null || orderType == 3) { + // 查询未支付的跨城订单 + List<UnPayOrderVO> crossCityOrders = orderCrossCityService.getUnpayCrossCityOrders(uid); + unpaidOrders.addAll(crossCityOrders); + } + + if (orderType == null || orderType == 4 || orderType == 5) { + // 查询未支付的物流订单(包含类型4和5) + List<UnPayOrderVO> logisticsOrders = orderLogisticsService.getUnpayLogisticsOrders(uid); + unpaidOrders.addAll(logisticsOrders); + } + + // 按创建时间倒序排序(最新的订单在前) + unpaidOrders.sort(Comparator.comparing(UnPayOrderVO::getInsertTime).reversed()); + + Map<String, Object> result = new HashMap<>(); + result.put("total", unpaidOrders.size()); + result.put("orders", unpaidOrders); + + return ResultUtil.success(result); + } catch (Exception e) { + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + @PostMapping("/api/order/queryMyTripList") @ApiOperation(value = "获取我的行程列表", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @@ -2208,10 +2243,10 @@ if(null == uid){ return ResultUtil.tokenErr(); } - + List<Map<String,Object>> raw = fetchTrips(uid, type, pageNum, size); return ResultUtil.success(TripOrderVo.getTripOrderVo(raw)); - + }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -2224,7 +2259,7 @@ */ private List<Map<String,Object>> fetchTrips( Integer uid, Integer type, Integer pageNum, Integer size) throws Exception { - + List<Map<String, Object>> list = new ArrayList<>(); if (type == null || type == 0) { list.addAll(orderPrivateCarService.queryMyTripListAll(uid)); @@ -2262,7 +2297,7 @@ Object latObj = orderMap.get("boardingLat"); //获取公司id Object companyId = orderMap.get("companyId"); - + Object serverCarModelId =null; ServerCarModel serverCarModel = null; if (orderMap.get("serverCarModelId") != null ){ @@ -2270,12 +2305,12 @@ serverCarModelId = orderMap.get("serverCarModelId"); serverCarModel = serverCarModelService.selectById((Serializable) serverCarModelId); } - + if (lonObj != null && latObj != null) { String lon = lonObj.toString(); String lat = latObj.toString(); Company company = companyService.selectById((Serializable) companyId); - + try { // 调用逆地理编码接口获取城市信息 Map<String, String> geoInfo = gdMapGeocodingUtil.geocode(lon, lat); @@ -2304,7 +2339,7 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil sendTripSheetEmail(@RequestBody TripSheetVo tripSheet, - HttpServletRequest request) { + HttpServletRequest request) { try { // 从Redis中获取当前用户ID Integer uid = userInfoService.getUserIdFormRedis(request); @@ -2327,12 +2362,15 @@ List<TripOrderVo> tripOrderVos = processTripOrderVos(orderList); String filePath = tripSheetGenerator.generatePdf(tripOrderVos); File attachment = new File(filePath); - emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "行程单", "请查收您的行程单", attachment); + String displayFileName = "贵人家园行程单.pdf"; + emailUtil.sendEmailWithAttachment(tripSheet.getRecipientEmail(), "行程单", "请查收您的行程单", attachment,displayFileName); attachment.delete(); // 发送成功后删除临时文件 - return ResultUtil.success("邮件发送成功"); + Map<String, Object> result = new HashMap<>(); + result.put("orderNum", orderList.size()); + return ResultUtil.success(result); } catch (Exception e) { e.printStackTrace(); - return ResultUtil.error("邮件发送失败"); + return ResultUtil.error("邮件发送失败"+e.getMessage()); } } /** @@ -2387,11 +2425,11 @@ if (db == null) return -1; // b 在后面 return da.compareTo(db); // 按时间正序(升序)排列 }); - - + + return orderList; } - + /** * 处理行程订单VO列表,补充经纬度、公司和车型信息 */ @@ -2399,21 +2437,21 @@ if (orderVoList == null || orderVoList.isEmpty()) { return new ArrayList<>(); } - + for (TripOrderVo orderVo : orderVoList) { // 处理经纬度转城市信息 handleGeoInfoForVo(orderVo); - + // 处理公司信息 handleCompanyInfoForVo(orderVo); - + // 处理车型信息 handleCarModelInfoForVo(orderVo); } - + return orderVoList; } - + /** * 处理经纬度转城市信息 */ @@ -2421,12 +2459,12 @@ // 直接从VO获取经纬度(假设VO中有对应的getter方法) String lon = String.valueOf(orderVo.getBoardingLon()); String lat = String.valueOf(orderVo.getBoardingLat()); - + if (StringUtils.isEmpty(lon) || StringUtils.isEmpty(lat)) { orderVo.setCity(""); return; } - + try { // 调用逆地理编码接口获取城市信息 Map<String, String> geoInfo = gdMapGeocodingUtil.geocode(lon, lat); @@ -2437,7 +2475,7 @@ orderVo.setCity(""); } } - + /** * 处理公司信息 */ @@ -2448,7 +2486,7 @@ orderVo.setCompanyName(""); return; } - + Company company = companyService.selectById(companyId); if (company != null) { orderVo.setCompanyName(company.getName()); @@ -2456,7 +2494,7 @@ orderVo.setCompanyName(""); } } - + /** * 处理车型信息 */ @@ -2467,7 +2505,7 @@ orderVo.setServerCarModel(""); return; } - + ServerCarModel serverCarModel = serverCarModelService.selectById(serverCarModelId); if (serverCarModel != null) { orderVo.setServerCarModel(serverCarModel.getName()); @@ -2475,5 +2513,5 @@ orderVo.setServerCarModel(""); } } - + } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java index 61785ee..03b1250 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java @@ -13,1310 +13,1374 @@ */ @TableName("t_order_private_car") public class OrderPrivateCar { - /** - * 主键 - */ - @TableId(value = "id", type = IdType.AUTO) - @TableField("id") - private Integer id; - /** - * 订单类型(1=普通订单,2=摆渡订单) - */ - @TableField("type") - private Integer type; - /** - * 跨城订单id(摆渡车专用) - */ - @TableField("crossCityOrderId") - private Integer crossCityOrderId; - /** - * 摆渡方位(1=跨城起点,2=跨城终点) - */ - @TableField("place") - private Integer place; - /** - * 用户id - */ - @TableField("userId") - private Integer userId; - /** - * 服务车型 - */ - @TableField("serverCarModel") - private String serverCarModel; - /** - * 服务车型id - */ - @TableField("serverCarModelId") - private Integer serverCarModelId; - /** - * 司机id - */ - @TableField("driverId") - private Integer driverId; - /** - * 车辆id - */ - @TableField("carId") - private Integer carId; - /** - * 订单号 - */ - @TableField("orderNum") - private String orderNum; - /** - * 下单地点经度 - */ - @TableField("placementLon") - private Double placementLon; - /** - * 下单地点纬度 - */ - @TableField("placementLat") - private Double placementLat; - /** - * 下单地点 - */ - @TableField("placementAddress") - private String placementAddress; - /** - * 起点经度 - */ - @TableField("startLon") - private Double startLon; - /** - * 起点纬度 - */ - @TableField("startLat") - private Double startLat; - /** - * 起点 - */ - @TableField("startAddress") - private String startAddress; - /** - * 目的地经度 - */ - @TableField("endLon") - private Double endLon; - /** - * 目的地纬度 - */ - @TableField("endLat") - private Double endLat; - /** - * 目的地 - */ - @TableField("endAddress") - private String endAddress; - /** - * 上车点经度 - */ - @TableField("boardingLon") - private Double boardingLon; - /** - * 上车点纬度 - */ - @TableField("boardingLat") - private Double boardingLat; - /** - * 上车地点 - */ - @TableField("boardingAddress") - private String boardingAddress; - /** - * 上车时间 - */ - @TableField("boardingTime") - private Date boardingTime; - /** - * 下车点经度 - */ - @TableField("getoffLon") - private Double getoffLon; - /** - * 下车点纬度 - */ - @TableField("getoffLat") - private Double getoffLat; - /** - * 下车点 - */ - @TableField("getoffAddress") - private String getoffAddress; - /** - * 下车时间 - */ - @TableField("getoffTime") - private Date getoffTime; - /** - * 行驶里程数(米) - */ - @TableField("mileage") - private Double mileage; - /** - * 支付方式(1=OK平台支付,2=其他方式支付) - */ - @TableField("payManner") - private Integer payManner; - /** - * 支付方式(1=微信,2=支付宝,3=余额) - */ - @TableField("payType") - private Integer payType; - /** - * 订单金额 - */ - @TableField("orderMoney") - private Double orderMoney; - /** - * 起步里程 - */ - @TableField("startMileage") - private Double startMileage; - /** - * 起步价 - */ - @TableField("startMoney") - private Double startMoney; - /** - * 里程公里 - */ - @TableField("mileageKilometers") - private Double mileageKilometers; - /** - * 里程费 - */ - @TableField("mileageMoney") - private Double mileageMoney; - /** - * 时长分钟 - */ - @TableField("duration") - private Double duration; - /** - * 时长费 - */ - @TableField("durationMoney") - private Double durationMoney; - /** - * 等待分钟 - */ - @TableField("wait") - private Double wait; - /** - * 等待费 - */ - @TableField("waitMoney") - private Double waitMoney; - /** - * 远途公里 - */ - @TableField("longDistance") - private Double longDistance; - /** - * 远途费 - */ - @TableField("longDistanceMoney") - private Double longDistanceMoney; - /** - * 停车费 - */ - @TableField("parkMoney") - private Double parkMoney; - /** - * 过路费 - */ - @TableField("roadTollMoney") - private Double roadTollMoney; - //节假费 - @TableField("holidayFee") - private Double holidayFee; - /** - * 红包抵扣金额 - */ - @TableField("redPacketMoney") - private Double redPacketMoney; - /** - * 优惠券抵扣金额 - */ - @TableField("couponMoney") - private Double couponMoney; - /** - * 红包id - */ - @TableField("redPacketId") - private Integer redPacketId; - /** - * 优惠券id - */ - @TableField("couponId") - private Integer couponId; - /** - * 折扣 - */ - @TableField("discount") - private Double discount; - /** - * 折扣优惠金额 - */ - @TableField("discountMoney") - private Double discountMoney; - /** - * 折扣活动id - */ - @TableField("activityId") - private Integer activityId; - /** - * 打折卡id - */ - @TableField("taxiCardId") - private Integer taxiCardId; - /** - * 打车卡记录id - */ - @TableField("userTaxiCardId") - private Integer userTaxiCardId; - /** - * 优惠金额 - */ - @TableField("discountAmount") - private Double discountAmount; - /** - * 公司id - */ - @TableField("companyId") - private Integer companyId; - /** - * 支付金额 - */ - @TableField("payMoney") - private Double payMoney; - //感谢费 - @TableField("thankYouFee") - private Double thankYouFee; - /** - * 是否是代下单(0:否,1:是) - */ - @TableField("substitute") - private Integer substitute; - /** - * 乘车人姓名 - */ - @TableField("passengers") - private String passengers; - /** - * 乘车人电话 - */ - @TableField("passengersPhone") - private String passengersPhone; - /** - * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) - */ - @TableField("state") - private Integer state; - /** - * 下单时间 - */ - @TableField("insertTime") - private Date insertTime; - /** - * 出行时间 - */ - @TableField("travelTime") - private Date travelTime; - /** - * 抢单时间 - */ - @TableField("snatchOrderTime") - private Date snatchOrderTime; - /** - * 司机点出发时间 - */ - @TableField("setOutTime") - private Date setOutTime; - /** - * 司机到达预约地点时间 - */ - @TableField("arriveTime") - private Date arriveTime; - /** - * 开始服务时间 - */ - @TableField("startServiceTime") - private Date startServiceTime; - /** - * 结束服务时间 - */ - @TableField("endServiceTime") - private Date endServiceTime; - /** - * 订单类型(1=普通,2=预约) - */ - @TableField("orderType") - private Integer orderType; - /** - * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) - */ - @TableField("orderSource") - private Integer orderSource; - /** - * 发票id - */ - @TableField("invoiceId") - private Integer invoiceId; - /** - * 是否是改派单(1=否,=是) - * @return - */ - @TableField("isReassign") - private Integer isReassign; - /** - * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 - */ - @TableField("reassignNotice") - private Integer reassignNotice; - /** - * 高德猎鹰轨迹id - * @return - */ - @TableField("trackId") - private String trackId; - /** - * 是否删除(1=否,2=是) - */ - @TableField("isDelete") - private Integer isDelete; - /** - * 该派前的订单状态 - * @return - */ - @TableField("oldState") - private Integer oldState; - /** - * 移动小号 - * @return - */ - @TableField("telX") - private String telX; - /** - * 绑定小号关系id - * @return - */ - @TableField("bindId") - private String bindId; - /** - * 乘车人数 - */ - @TableField("peopleNum") - private Integer peopleNum; - /** - * 乘车类型(1=独享,2=一口价,3=拼车) - */ - @TableField("rideType") - private Integer rideType; - - @TableField("pid") - private Integer pid; - - /** - * 是否异常订单 1否 2是 - */ - @TableField("abnormal") - private Integer abnormal; - - - - /** - * 推广订单 1否 2是 - */ - @TableField("promotion") - private Integer promotion; - - - private String promotionUser; - - private String promotionPhone; - - - /** - * 乘客反馈情况 - */ - @TableField("abnormalIntro") - private String abnormalIntro; - - /** - * 乘客反馈图片 - */ - @TableField("abnormalImg") - private String abnormalImg; - - - private Integer promotionDriverId; - - private BigDecimal promotionMoney; - - - - private Integer totalPeopleNum; - /** - * 预估里程(米) - */ - private Double estimateMileage; - - private Double estimateTime; - - private Integer spellSuccess; - - private String splitAllocation; - - private Integer responsibilityType; - - private Long promotionActivityId; - - public Long getPromotionActivityId() { - return promotionActivityId; - } - - public void setPromotionActivityId(Long promotionActivityId) { - this.promotionActivityId = promotionActivityId; - } - - public String getPromotionUser() { - return promotionUser; - } - - public void setPromotionUser(String promotionUser) { - this.promotionUser = promotionUser; - } - - public String getPromotionPhone() { - return promotionPhone; - } - - public void setPromotionPhone(String promotionPhone) { - this.promotionPhone = promotionPhone; - } - - public Integer getResponsibilityType() { - return responsibilityType; - } - - public void setResponsibilityType(Integer responsibilityType) { - this.responsibilityType = responsibilityType; - } - - public Integer getPromotion() { - return promotion; - } - - public void setPromotion(Integer promotion) { - this.promotion = promotion; - } - - public Integer getPromotionDriverId() { - return promotionDriverId; - } - - public void setPromotionDriverId(Integer promotionDriverId) { - this.promotionDriverId = promotionDriverId; - } - - public BigDecimal getPromotionMoney() { - return promotionMoney; - } - - public void setPromotionMoney(BigDecimal promotionMoney) { - this.promotionMoney = promotionMoney; - } - - public Integer getAbnormal() { - return abnormal; - } - - public void setAbnormal(Integer abnormal) { - this.abnormal = abnormal; - } - - public String getAbnormalIntro() { - return abnormalIntro; - } - - public void setAbnormalIntro(String abnormalIntro) { - this.abnormalIntro = abnormalIntro; - } - - public String getAbnormalImg() { - return abnormalImg; - } - - public void setAbnormalImg(String abnormalImg) { - this.abnormalImg = abnormalImg; - } - - public Integer getSpellSuccess() { - return spellSuccess; - } - - public void setSpellSuccess(Integer spellSuccess) { - this.spellSuccess = spellSuccess; - } - - public Double getEstimateTime() { - return estimateTime; - } - - public void setEstimateTime(Double estimateTime) { - this.estimateTime = estimateTime; - } - - public Double getEstimateMileage() { - return estimateMileage; - } - - public void setEstimateMileage(Double estimateMileage) { - this.estimateMileage = estimateMileage; - } - - public Integer getTotalPeopleNum() { - return totalPeopleNum; - } - - public void setTotalPeopleNum(Integer totalPeopleNum) { - this.totalPeopleNum = totalPeopleNum; - } - - public Integer getPid() { - return pid; - } - - public void setPid(Integer pid) { - this.pid = pid; - } - - public Integer getPeopleNum() { - return peopleNum; - } - - public void setPeopleNum(Integer peopleNum) { - this.peopleNum = peopleNum; - } - - public Integer getRideType() { - return rideType; - } - - public void setRideType(Integer rideType) { - this.rideType = rideType; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public Integer getCrossCityOrderId() { - return crossCityOrderId; - } - - public void setCrossCityOrderId(Integer crossCityOrderId) { - this.crossCityOrderId = crossCityOrderId; - } - - public Integer getPlace() { - return place; - } - - public void setPlace(Integer place) { - this.place = place; - } - - public Integer getUserId() { - return userId; - } - - public void setUserId(Integer userId) { - this.userId = userId; - } - - public String getServerCarModel() { - return serverCarModel; - } - - public void setServerCarModel(String serverCarModel) { - this.serverCarModel = serverCarModel; - } - - public Integer getServerCarModelId() { - return serverCarModelId; - } - - public void setServerCarModelId(Integer serverCarModelId) { - this.serverCarModelId = serverCarModelId; - } - - public Integer getDriverId() { - return driverId; - } - - public void setDriverId(Integer driverId) { - this.driverId = driverId; - } - - public Integer getCarId() { - return carId; - } - - public void setCarId(Integer carId) { - this.carId = carId; - } - - public String getOrderNum() { - return orderNum; - } - - public void setOrderNum(String orderNum) { - this.orderNum = orderNum; - } - - public Double getPlacementLon() { - return placementLon; - } - - public void setPlacementLon(Double placementLon) { - this.placementLon = placementLon; - } - - public Double getPlacementLat() { - return placementLat; - } - - public void setPlacementLat(Double placementLat) { - this.placementLat = placementLat; - } - - public String getPlacementAddress() { - return placementAddress; - } - - public void setPlacementAddress(String placementAddress) { - this.placementAddress = placementAddress; - } - - public Double getStartLon() { - return startLon; - } - - public void setStartLon(Double startLon) { - this.startLon = startLon; - } - - public Double getStartLat() { - return startLat; - } - - public void setStartLat(Double startLat) { - this.startLat = startLat; - } - - public String getStartAddress() { - return startAddress; - } - - public void setStartAddress(String startAddress) { - this.startAddress = startAddress; - } - - public Double getEndLon() { - return endLon; - } - - public void setEndLon(Double endLon) { - this.endLon = endLon; - } - - public Double getEndLat() { - return endLat; - } - - public void setEndLat(Double endLat) { - this.endLat = endLat; - } - - public String getEndAddress() { - return endAddress; - } - - public void setEndAddress(String endAddress) { - this.endAddress = endAddress; - } - - public Double getBoardingLon() { - return boardingLon; - } - - public void setBoardingLon(Double boardingLon) { - this.boardingLon = boardingLon; - } - - public Double getBoardingLat() { - return boardingLat; - } - - public void setBoardingLat(Double boardingLat) { - this.boardingLat = boardingLat; - } - - public String getBoardingAddress() { - return boardingAddress; - } - - public void setBoardingAddress(String boardingAddress) { - this.boardingAddress = boardingAddress; - } - - public Date getBoardingTime() { - return boardingTime; - } - - public void setBoardingTime(Date boardingTime) { - this.boardingTime = boardingTime; - } - - public Double getGetoffLon() { - return getoffLon; - } - - public void setGetoffLon(Double getoffLon) { - this.getoffLon = getoffLon; - } - - public Double getGetoffLat() { - return getoffLat; - } - - public void setGetoffLat(Double getoffLat) { - this.getoffLat = getoffLat; - } - - public String getGetoffAddress() { - return getoffAddress; - } - - public void setGetoffAddress(String getoffAddress) { - this.getoffAddress = getoffAddress; - } - - public Date getGetoffTime() { - return getoffTime; - } - - public void setGetoffTime(Date getoffTime) { - this.getoffTime = getoffTime; - } - - public Double getMileage() { - return mileage; - } - - public void setMileage(Double mileage) { - this.mileage = mileage; - } - - public Integer getPayManner() { - return payManner; - } - - public void setPayManner(Integer payManner) { - this.payManner = payManner; - } - - public Integer getPayType() { - return payType; - } - - public void setPayType(Integer payType) { - this.payType = payType; - } - - public Double getOrderMoney() { - return orderMoney; - } - - public void setOrderMoney(Double orderMoney) { - this.orderMoney = orderMoney; - } - - public Double getStartMileage() { - return startMileage; - } - - public void setStartMileage(Double startMileage) { - this.startMileage = startMileage; - } - - public Double getStartMoney() { - return startMoney; - } - - public void setStartMoney(Double startMoney) { - this.startMoney = startMoney; - } - - public Double getMileageKilometers() { - return mileageKilometers; - } - - public void setMileageKilometers(Double mileageKilometers) { - this.mileageKilometers = mileageKilometers; - } - - public Double getMileageMoney() { - return mileageMoney; - } - - public void setMileageMoney(Double mileageMoney) { - this.mileageMoney = mileageMoney; - } - - public Double getDuration() { - return duration; - } - - public void setDuration(Double duration) { - this.duration = duration; - } - - public Double getDurationMoney() { - return durationMoney; - } - - public void setDurationMoney(Double durationMoney) { - this.durationMoney = durationMoney; - } - - public Double getWait() { - return wait; - } - - public void setWait(Double wait) { - this.wait = wait; - } - - public Double getWaitMoney() { - return waitMoney; - } - - public void setWaitMoney(Double waitMoney) { - this.waitMoney = waitMoney; - } - - public Double getLongDistance() { - return longDistance; - } - - public void setLongDistance(Double longDistance) { - this.longDistance = longDistance; - } - - public Double getLongDistanceMoney() { - return longDistanceMoney; - } - - public void setLongDistanceMoney(Double longDistanceMoney) { - this.longDistanceMoney = longDistanceMoney; - } - - public Double getParkMoney() { - return parkMoney; - } - - public void setParkMoney(Double parkMoney) { - this.parkMoney = parkMoney; - } - - public Double getRoadTollMoney() { - return roadTollMoney; - } - - public void setRoadTollMoney(Double roadTollMoney) { - this.roadTollMoney = roadTollMoney; - } - - public Double getHolidayFee() { - return holidayFee; - } - - public void setHolidayFee(Double holidayFee) { - this.holidayFee = holidayFee; - } - - public Double getRedPacketMoney() { - return redPacketMoney; - } - - public void setRedPacketMoney(Double redPacketMoney) { - this.redPacketMoney = redPacketMoney; - } - - public Double getCouponMoney() { - return couponMoney; - } - - public void setCouponMoney(Double couponMoney) { - this.couponMoney = couponMoney; - } - - public Integer getRedPacketId() { - return redPacketId; - } - - public void setRedPacketId(Integer redPacketId) { - this.redPacketId = redPacketId; - } - - public Integer getCouponId() { - return couponId; - } - - public void setCouponId(Integer couponId) { - this.couponId = couponId; - } - - public Double getDiscount() { - return discount; - } - - public void setDiscount(Double discount) { - this.discount = discount; - } - - public Double getDiscountMoney() { - return discountMoney; - } - - public void setDiscountMoney(Double discountMoney) { - this.discountMoney = discountMoney; - } - - public Integer getActivityId() { - return activityId; - } - - public void setActivityId(Integer activityId) { - this.activityId = activityId; - } - - public Integer getTaxiCardId() { - return taxiCardId; - } - - public void setTaxiCardId(Integer taxiCardId) { - this.taxiCardId = taxiCardId; - } - - public Integer getUserTaxiCardId() { - return userTaxiCardId; - } - - public void setUserTaxiCardId(Integer userTaxiCardId) { - this.userTaxiCardId = userTaxiCardId; - } - - public Double getDiscountAmount() { - return discountAmount; - } - - public void setDiscountAmount(Double discountAmount) { - this.discountAmount = discountAmount; - } - - public Integer getCompanyId() { - return companyId; - } - - public void setCompanyId(Integer companyId) { - this.companyId = companyId; - } - - public Double getPayMoney() { - return payMoney; - } - - public void setPayMoney(Double payMoney) { - this.payMoney = payMoney; - } - - public Double getThankYouFee() { - return thankYouFee; - } - - public void setThankYouFee(Double thankYouFee) { - this.thankYouFee = thankYouFee; - } - - public Integer getSubstitute() { - return substitute; - } - - public void setSubstitute(Integer substitute) { - this.substitute = substitute; - } - - public String getPassengers() { - return passengers; - } - - public void setPassengers(String passengers) { - this.passengers = passengers; - } - - public String getPassengersPhone() { - return passengersPhone; - } - - public void setPassengersPhone(String passengersPhone) { - this.passengersPhone = passengersPhone; - } - - public Integer getState() { - return state; - } - - public void setState(Integer state) { - this.state = state; - } - - public Date getInsertTime() { - return insertTime; - } - - public void setInsertTime(Date insertTime) { - this.insertTime = insertTime; - } - - public Date getTravelTime() { - return travelTime; - } - - public void setTravelTime(Date travelTime) { - this.travelTime = travelTime; - } - - public Date getSnatchOrderTime() { - return snatchOrderTime; - } - - public void setSnatchOrderTime(Date snatchOrderTime) { - this.snatchOrderTime = snatchOrderTime; - } - - public Date getSetOutTime() { - return setOutTime; - } - - public void setSetOutTime(Date setOutTime) { - this.setOutTime = setOutTime; - } - - public Date getArriveTime() { - return arriveTime; - } - - public void setArriveTime(Date arriveTime) { - this.arriveTime = arriveTime; - } - - public Date getStartServiceTime() { - return startServiceTime; - } - - public void setStartServiceTime(Date startServiceTime) { - this.startServiceTime = startServiceTime; - } - - public Date getEndServiceTime() { - return endServiceTime; - } - - public void setEndServiceTime(Date endServiceTime) { - this.endServiceTime = endServiceTime; - } - - public Integer getOrderType() { - return orderType; - } - - public void setOrderType(Integer orderType) { - this.orderType = orderType; - } - - public Integer getOrderSource() { - return orderSource; - } - - public void setOrderSource(Integer orderSource) { - this.orderSource = orderSource; - } - - public Integer getInvoiceId() { - return invoiceId; - } - - public void setInvoiceId(Integer invoiceId) { - this.invoiceId = invoiceId; - } - - public Integer getIsReassign() { - return isReassign; - } - - public void setIsReassign(Integer isReassign) { - this.isReassign = isReassign; - } - - public Integer getReassignNotice() { - return reassignNotice; - } - - public void setReassignNotice(Integer reassignNotice) { - this.reassignNotice = reassignNotice; - } - - public String getTrackId() { - return trackId; - } - - public void setTrackId(String trackId) { - this.trackId = trackId; - } - - public Integer getIsDelete() { - return isDelete; - } - - public void setIsDelete(Integer isDelete) { - this.isDelete = isDelete; - } - - public Integer getOldState() { - return oldState; - } - - public void setOldState(Integer oldState) { - this.oldState = oldState; - } - - public String getTelX() { - return telX; - } - - public void setTelX(String telX) { - this.telX = telX; - } - - public String getBindId() { - return bindId; - } - - public void setBindId(String bindId) { - this.bindId = bindId; - } - - public String getSplitAllocation() { - return splitAllocation; - } - - public void setSplitAllocation(String splitAllocation) { - this.splitAllocation = splitAllocation; - } - - @Override - public String toString() { - return "OrderPrivateCar{" + - "id=" + id + - ", type=" + type + - ", crossCityOrderId=" + crossCityOrderId + - ", place=" + place + - ", userId=" + userId + - ", serverCarModelId=" + serverCarModelId + - ", driverId=" + driverId + - ", carId=" + carId + - ", orderNum='" + orderNum + '\'' + - ", placementLon=" + placementLon + - ", placementLat=" + placementLat + - ", placementAddress='" + placementAddress + '\'' + - ", startLon=" + startLon + - ", startLat=" + startLat + - ", startAddress='" + startAddress + '\'' + - ", endLon=" + endLon + - ", endLat=" + endLat + - ", endAddress='" + endAddress + '\'' + - ", boardingLon=" + boardingLon + - ", boardingLat=" + boardingLat + - ", boardingAddress='" + boardingAddress + '\'' + - ", boardingTime=" + boardingTime + - ", getoffLon=" + getoffLon + - ", getoffLat=" + getoffLat + - ", getoffAddress='" + getoffAddress + '\'' + - ", getoffTime=" + getoffTime + - ", mileage=" + mileage + - ", payManner=" + payManner + - ", payType=" + payType + - ", orderMoney=" + orderMoney + - ", startMileage=" + startMileage + - ", startMoney=" + startMoney + - ", mileageKilometers=" + mileageKilometers + - ", mileageMoney=" + mileageMoney + - ", duration=" + duration + - ", durationMoney=" + durationMoney + - ", wait=" + wait + - ", waitMoney=" + waitMoney + - ", longDistance=" + longDistance + - ", longDistanceMoney=" + longDistanceMoney + - ", parkMoney=" + parkMoney + - ", roadTollMoney=" + roadTollMoney + - ", redPacketMoney=" + redPacketMoney + - ", couponMoney=" + couponMoney + - ", redPacketId=" + redPacketId + - ", couponId=" + couponId + - ", discount=" + discount + - ", discountMoney=" + discountMoney + - ", activityId=" + activityId + - ", companyId=" + companyId + - ", payMoney=" + payMoney + - ", substitute=" + substitute + - ", passengers='" + passengers + '\'' + - ", passengersPhone='" + passengersPhone + '\'' + - ", state=" + state + - ", insertTime=" + insertTime + - ", travelTime=" + travelTime + - ", snatchOrderTime=" + snatchOrderTime + - ", setOutTime=" + setOutTime + - ", arriveTime=" + arriveTime + - ", startServiceTime=" + startServiceTime + - ", endServiceTime=" + endServiceTime + - ", orderType=" + orderType + - ", orderSource=" + orderSource + - ", invoiceId=" + invoiceId + - ", isReassign=" + isReassign + - ", reassignNotice=" + reassignNotice + - ", trackId='" + trackId + '\'' + - ", isDelete=" + isDelete + - ", oldState=" + oldState + - ", telX='" + telX + '\'' + - ", bindId='" + bindId + '\'' + - '}'; - } -} + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 订单类型(1=普通订单,2=摆渡订单) + */ + @TableField("type") + private Integer type; + /** + * 跨城订单id(摆渡车专用) + */ + @TableField("crossCityOrderId") + private Integer crossCityOrderId; + /** + * 摆渡方位(1=跨城起点,2=跨城终点) + */ + @TableField("place") + private Integer place; + /** + * 用户id + */ + @TableField("userId") + private Integer userId; + /** + * 服务车型 + */ + @TableField("serverCarModel") + private String serverCarModel; + /** + * 服务车型id + */ + @TableField("serverCarModelId") + private Integer serverCarModelId; + /** + * 司机id + */ + @TableField("driverId") + private Integer driverId; + /** + * 车辆id + */ + @TableField("carId") + private Integer carId; + /** + * 订单号 + */ + @TableField("orderNum") + private String orderNum; + /** + * 下单地点经度 + */ + @TableField("placementLon") + private Double placementLon; + /** + * 下单地点纬度 + */ + @TableField("placementLat") + private Double placementLat; + /** + * 下单地点 + */ + @TableField("placementAddress") + private String placementAddress; + /** + * 起点经度 + */ + @TableField("startLon") + private Double startLon; + /** + * 起点纬度 + */ + @TableField("startLat") + private Double startLat; + /** + * 起点 + */ + @TableField("startAddress") + private String startAddress; + /** + * 目的地经度 + */ + @TableField("endLon") + private Double endLon; + /** + * 目的地纬度 + */ + @TableField("endLat") + private Double endLat; + /** + * 目的地 + */ + @TableField("endAddress") + private String endAddress; + /** + * 上车点经度 + */ + @TableField("boardingLon") + private Double boardingLon; + /** + * 上车点纬度 + */ + @TableField("boardingLat") + private Double boardingLat; + /** + * 上车地点 + */ + @TableField("boardingAddress") + private String boardingAddress; + /** + * 上车时间 + */ + @TableField("boardingTime") + private Date boardingTime; + /** + * 下车点经度 + */ + @TableField("getoffLon") + private Double getoffLon; + /** + * 下车点纬度 + */ + @TableField("getoffLat") + private Double getoffLat; + /** + * 下车点 + */ + @TableField("getoffAddress") + private String getoffAddress; + /** + * 下车时间 + */ + @TableField("getoffTime") + private Date getoffTime; + /** + * 行驶里程数(米) + */ + @TableField("mileage") + private Double mileage; + /** + * 支付方式(1=OK平台支付,2=其他方式支付) + */ + @TableField("payManner") + private Integer payManner; + /** + * 支付方式(1=微信,2=支付宝,3=余额) + */ + @TableField("payType") + private Integer payType; + /** + * 订单金额 + */ + @TableField("orderMoney") + private Double orderMoney; + /** + * 起步里程 + */ + @TableField("startMileage") + private Double startMileage; + /** + * 起步价 + */ + @TableField("startMoney") + private Double startMoney; + /** + * 里程公里 + */ + @TableField("mileageKilometers") + private Double mileageKilometers; + /** + * 里程费 + */ + @TableField("mileageMoney") + private Double mileageMoney; + /** + * 时长分钟 + */ + @TableField("duration") + private Double duration; + /** + * 时长费 + */ + @TableField("durationMoney") + private Double durationMoney; + /** + * 等待分钟 + */ + @TableField("wait") + private Double wait; + /** + * 等待费 + */ + @TableField("waitMoney") + private Double waitMoney; + /** + * 远途公里 + */ + @TableField("longDistance") + private Double longDistance; + /** + * 远途费 + */ + @TableField("longDistanceMoney") + private Double longDistanceMoney; + /** + * 停车费 + */ + @TableField("parkMoney") + private Double parkMoney; + /** + * 过路费 + */ + @TableField("roadTollMoney") + private Double roadTollMoney; + //节假费 + @TableField("holidayFee") + private Double holidayFee; + /** + * 红包抵扣金额 + */ + @TableField("redPacketMoney") + private Double redPacketMoney; + /** + * 优惠券抵扣金额 + */ + @TableField("couponMoney") + private Double couponMoney; + /** + * 红包id + */ + @TableField("redPacketId") + private Integer redPacketId; + /** + * 优惠券id + */ + @TableField("couponId") + private Integer couponId; + /** + * 折扣 + */ + @TableField("discount") + private Double discount; + /** + * 折扣优惠金额 + */ + @TableField("discountMoney") + private Double discountMoney; + /** + * 折扣活动id + */ + @TableField("activityId") + private Integer activityId; + /** + * 打折卡id + */ + @TableField("taxiCardId") + private Integer taxiCardId; + /** + * 打车卡记录id + */ + @TableField("userTaxiCardId") + private Integer userTaxiCardId; + /** + * 优惠金额 + */ + @TableField("discountAmount") + private Double discountAmount; + /** + * 公司id + */ + @TableField("companyId") + private Integer companyId; + /** + * 支付金额 + */ + @TableField("payMoney") + private Double payMoney; + //感谢费 + @TableField("thankYouFee") + private Double thankYouFee; + /** + * 是否是代下单(0:否,1:是) + */ + @TableField("substitute") + private Integer substitute; + /** + * 乘车人姓名 + */ + @TableField("passengers") + private String passengers; + /** + * 乘车人电话 + */ + @TableField("passengersPhone") + private String passengersPhone; + /** + * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) + */ + @TableField("state") + private Integer state; + /** + * 下单时间 + */ + @TableField("insertTime") + private Date insertTime; + /** + * 出行时间 + */ + @TableField("travelTime") + private Date travelTime; + /** + * 抢单时间 + */ + @TableField("snatchOrderTime") + private Date snatchOrderTime; + /** + * 司机点出发时间 + */ + @TableField("setOutTime") + private Date setOutTime; + /** + * 司机到达预约地点时间 + */ + @TableField("arriveTime") + private Date arriveTime; + /** + * 开始服务时间 + */ + @TableField("startServiceTime") + private Date startServiceTime; + /** + * 结束服务时间 + */ + @TableField("endServiceTime") + private Date endServiceTime; + /** + * 订单类型(1=普通,2=预约) + */ + @TableField("orderType") + private Integer orderType; + /** + * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) + */ + @TableField("orderSource") + private Integer orderSource; + /** + * 发票id + */ + @TableField("invoiceId") + private Integer invoiceId; + /** + * 是否是改派单(1=否,=是) + * + * @return + */ + @TableField("isReassign") + private Integer isReassign; + /** + * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 + */ + @TableField("reassignNotice") + private Integer reassignNotice; + /** + * 高德猎鹰轨迹id + * + * @return + */ + @TableField("trackId") + private String trackId; + /** + * 是否删除(1=否,2=是) + */ + @TableField("isDelete") + private Integer isDelete; + /** + * 该派前的订单状态 + * + * @return + */ + @TableField("oldState") + private Integer oldState; + /** + * 移动小号 + * + * @return + */ + @TableField("telX") + private String telX; + /** + * 绑定小号关系id + * + * @return + */ + @TableField("bindId") + private String bindId; + /** + * 乘车人数 + */ + @TableField("peopleNum") + private Integer peopleNum; + /** + * 乘车类型(1=独享,2=一口价,3=拼车) + */ + @TableField("rideType") + private Integer rideType; + + @TableField("pid") + private Integer pid; + + /** + * 是否异常订单 1否 2是 + */ + @TableField("abnormal") + private Integer abnormal; + + + /** + * 推广订单 1否 2是 + */ + @TableField("promotion") + private Integer promotion; + + + private String promotionUser; + + private String promotionPhone; + + + /** + * 乘客反馈情况 + */ + @TableField("abnormalIntro") + private String abnormalIntro; + + /** + * 乘客反馈图片 + */ + @TableField("abnormalImg") + private String abnormalImg; + + + private Integer promotionDriverId; + + private BigDecimal promotionMoney; + + + private Integer totalPeopleNum; + /** + * 预估里程(米) + */ + private Double estimateMileage; + + private Double estimateTime; + + private Integer spellSuccess; + + private String splitAllocation; + + private Integer responsibilityType; + + private Long promotionActivityId; + /** + * 中台行程id + */ + private String travelId; + /** + * 中台是否已创建订单(0=否,1=是) + */ + private Integer isCreated; + /** + * 是否是追缴单(0=否,1=是) + */ + private Integer recoveryOrder; + + public String getPromotionUser() { + return promotionUser; + } + + public void setPromotionUser(String promotionUser) { + this.promotionUser = promotionUser; + } + + public String getPromotionPhone() { + return promotionPhone; + } + + public void setPromotionPhone(String promotionPhone) { + this.promotionPhone = promotionPhone; + } + + public Integer getResponsibilityType() { + return responsibilityType; + } + + public void setResponsibilityType(Integer responsibilityType) { + this.responsibilityType = responsibilityType; + } + + public Integer getPromotion() { + return promotion; + } + + public void setPromotion(Integer promotion) { + this.promotion = promotion; + } + + public Integer getPromotionDriverId() { + return promotionDriverId; + } + + public void setPromotionDriverId(Integer promotionDriverId) { + this.promotionDriverId = promotionDriverId; + } + + public BigDecimal getPromotionMoney() { + return promotionMoney; + } + + public void setPromotionMoney(BigDecimal promotionMoney) { + this.promotionMoney = promotionMoney; + } + + public Integer getAbnormal() { + return abnormal; + } + + public void setAbnormal(Integer abnormal) { + this.abnormal = abnormal; + } + + public String getAbnormalIntro() { + return abnormalIntro; + } + + public void setAbnormalIntro(String abnormalIntro) { + this.abnormalIntro = abnormalIntro; + } + + public String getAbnormalImg() { + return abnormalImg; + } + + public void setAbnormalImg(String abnormalImg) { + this.abnormalImg = abnormalImg; + } + + public Integer getSpellSuccess() { + return spellSuccess; + } + + public void setSpellSuccess(Integer spellSuccess) { + this.spellSuccess = spellSuccess; + } + + public Double getEstimateTime() { + return estimateTime; + } + + public void setEstimateTime(Double estimateTime) { + this.estimateTime = estimateTime; + } + + public Double getEstimateMileage() { + return estimateMileage; + } + + public void setEstimateMileage(Double estimateMileage) { + this.estimateMileage = estimateMileage; + } + + public Integer getTotalPeopleNum() { + return totalPeopleNum; + } + + public void setTotalPeopleNum(Integer totalPeopleNum) { + this.totalPeopleNum = totalPeopleNum; + } + + public Integer getPid() { + return pid; + } + + public void setPid(Integer pid) { + this.pid = pid; + } + + public Integer getPeopleNum() { + return peopleNum; + } + + public void setPeopleNum(Integer peopleNum) { + this.peopleNum = peopleNum; + } + + public Integer getRideType() { + return rideType; + } + + public void setRideType(Integer rideType) { + this.rideType = rideType; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getCrossCityOrderId() { + return crossCityOrderId; + } + + public void setCrossCityOrderId(Integer crossCityOrderId) { + this.crossCityOrderId = crossCityOrderId; + } + + public Integer getPlace() { + return place; + } + + public void setPlace(Integer place) { + this.place = place; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getServerCarModel() { + return serverCarModel; + } + + public void setServerCarModel(String serverCarModel) { + this.serverCarModel = serverCarModel; + } + + public Integer getServerCarModelId() { + return serverCarModelId; + } + + public void setServerCarModelId(Integer serverCarModelId) { + this.serverCarModelId = serverCarModelId; + } + + public Integer getDriverId() { + return driverId; + } + + public void setDriverId(Integer driverId) { + this.driverId = driverId; + } + + public Integer getCarId() { + return carId; + } + + public void setCarId(Integer carId) { + this.carId = carId; + } + + public String getOrderNum() { + return orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + } + + public Double getPlacementLon() { + return placementLon; + } + + public void setPlacementLon(Double placementLon) { + this.placementLon = placementLon; + } + + public Double getPlacementLat() { + return placementLat; + } + + public void setPlacementLat(Double placementLat) { + this.placementLat = placementLat; + } + + public String getPlacementAddress() { + return placementAddress; + } + + public void setPlacementAddress(String placementAddress) { + this.placementAddress = placementAddress; + } + + public Double getStartLon() { + return startLon; + } + + public void setStartLon(Double startLon) { + this.startLon = startLon; + } + + public Double getStartLat() { + return startLat; + } + + public void setStartLat(Double startLat) { + this.startLat = startLat; + } + + public String getStartAddress() { + return startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public Double getEndLon() { + return endLon; + } + + public void setEndLon(Double endLon) { + this.endLon = endLon; + } + + public Double getEndLat() { + return endLat; + } + + public void setEndLat(Double endLat) { + this.endLat = endLat; + } + + public String getEndAddress() { + return endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } + + public Double getBoardingLon() { + return boardingLon; + } + + public void setBoardingLon(Double boardingLon) { + this.boardingLon = boardingLon; + } + + public Double getBoardingLat() { + return boardingLat; + } + + public void setBoardingLat(Double boardingLat) { + this.boardingLat = boardingLat; + } + + public String getBoardingAddress() { + return boardingAddress; + } + + public void setBoardingAddress(String boardingAddress) { + this.boardingAddress = boardingAddress; + } + + public Date getBoardingTime() { + return boardingTime; + } + + public void setBoardingTime(Date boardingTime) { + this.boardingTime = boardingTime; + } + + public Double getGetoffLon() { + return getoffLon; + } + + public void setGetoffLon(Double getoffLon) { + this.getoffLon = getoffLon; + } + + public Double getGetoffLat() { + return getoffLat; + } + + public void setGetoffLat(Double getoffLat) { + this.getoffLat = getoffLat; + } + + public String getGetoffAddress() { + return getoffAddress; + } + + public void setGetoffAddress(String getoffAddress) { + this.getoffAddress = getoffAddress; + } + + public Date getGetoffTime() { + return getoffTime; + } + + public void setGetoffTime(Date getoffTime) { + this.getoffTime = getoffTime; + } + + public Double getMileage() { + return mileage; + } + + public void setMileage(Double mileage) { + this.mileage = mileage; + } + + public Integer getPayManner() { + return payManner; + } + + public void setPayManner(Integer payManner) { + this.payManner = payManner; + } + + public Integer getPayType() { + return payType; + } + + public void setPayType(Integer payType) { + this.payType = payType; + } + + public Double getOrderMoney() { + return orderMoney; + } + + public void setOrderMoney(Double orderMoney) { + this.orderMoney = orderMoney; + } + + public Double getStartMileage() { + return startMileage; + } + + public void setStartMileage(Double startMileage) { + this.startMileage = startMileage; + } + + public Double getStartMoney() { + return startMoney; + } + + public void setStartMoney(Double startMoney) { + this.startMoney = startMoney; + } + + public Double getMileageKilometers() { + return mileageKilometers; + } + + public void setMileageKilometers(Double mileageKilometers) { + this.mileageKilometers = mileageKilometers; + } + + public Double getMileageMoney() { + return mileageMoney; + } + + public void setMileageMoney(Double mileageMoney) { + this.mileageMoney = mileageMoney; + } + + public Double getDuration() { + return duration; + } + + public void setDuration(Double duration) { + this.duration = duration; + } + + public Double getDurationMoney() { + return durationMoney; + } + + public void setDurationMoney(Double durationMoney) { + this.durationMoney = durationMoney; + } + + public Double getWait() { + return wait; + } + + public void setWait(Double wait) { + this.wait = wait; + } + + public Double getWaitMoney() { + return waitMoney; + } + + public void setWaitMoney(Double waitMoney) { + this.waitMoney = waitMoney; + } + + public Double getLongDistance() { + return longDistance; + } + + public void setLongDistance(Double longDistance) { + this.longDistance = longDistance; + } + + public Double getLongDistanceMoney() { + return longDistanceMoney; + } + + public void setLongDistanceMoney(Double longDistanceMoney) { + this.longDistanceMoney = longDistanceMoney; + } + + public Double getParkMoney() { + return parkMoney; + } + + public void setParkMoney(Double parkMoney) { + this.parkMoney = parkMoney; + } + + public Double getRoadTollMoney() { + return roadTollMoney; + } + + public void setRoadTollMoney(Double roadTollMoney) { + this.roadTollMoney = roadTollMoney; + } + + public Double getHolidayFee() { + return holidayFee; + } + + public void setHolidayFee(Double holidayFee) { + this.holidayFee = holidayFee; + } + + public Double getRedPacketMoney() { + return redPacketMoney; + } + + public void setRedPacketMoney(Double redPacketMoney) { + this.redPacketMoney = redPacketMoney; + } + + public Double getCouponMoney() { + return couponMoney; + } + + public void setCouponMoney(Double couponMoney) { + this.couponMoney = couponMoney; + } + + public Integer getRedPacketId() { + return redPacketId; + } + + public void setRedPacketId(Integer redPacketId) { + this.redPacketId = redPacketId; + } + + public Integer getCouponId() { + return couponId; + } + + public void setCouponId(Integer couponId) { + this.couponId = couponId; + } + + public Double getDiscount() { + return discount; + } + + public void setDiscount(Double discount) { + this.discount = discount; + } + + public Double getDiscountMoney() { + return discountMoney; + } + + public void setDiscountMoney(Double discountMoney) { + this.discountMoney = discountMoney; + } + + public Integer getActivityId() { + return activityId; + } + + public void setActivityId(Integer activityId) { + this.activityId = activityId; + } + + public Integer getTaxiCardId() { + return taxiCardId; + } + + public void setTaxiCardId(Integer taxiCardId) { + this.taxiCardId = taxiCardId; + } + + public Integer getUserTaxiCardId() { + return userTaxiCardId; + } + + public void setUserTaxiCardId(Integer userTaxiCardId) { + this.userTaxiCardId = userTaxiCardId; + } + + public Double getDiscountAmount() { + return discountAmount; + } + + public void setDiscountAmount(Double discountAmount) { + this.discountAmount = discountAmount; + } + + public Integer getCompanyId() { + return companyId; + } + + public void setCompanyId(Integer companyId) { + this.companyId = companyId; + } + + public Double getPayMoney() { + return payMoney; + } + + public void setPayMoney(Double payMoney) { + this.payMoney = payMoney; + } + + public Double getThankYouFee() { + return thankYouFee; + } + + public void setThankYouFee(Double thankYouFee) { + this.thankYouFee = thankYouFee; + } + + public Integer getSubstitute() { + return substitute; + } + + public void setSubstitute(Integer substitute) { + this.substitute = substitute; + } + + public String getPassengers() { + return passengers; + } + + public void setPassengers(String passengers) { + this.passengers = passengers; + } + + public String getPassengersPhone() { + return passengersPhone; + } + + public void setPassengersPhone(String passengersPhone) { + this.passengersPhone = passengersPhone; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Date getInsertTime() { + return insertTime; + } + + public void setInsertTime(Date insertTime) { + this.insertTime = insertTime; + } + + public Date getTravelTime() { + return travelTime; + } + + public void setTravelTime(Date travelTime) { + this.travelTime = travelTime; + } + + public Date getSnatchOrderTime() { + return snatchOrderTime; + } + + public void setSnatchOrderTime(Date snatchOrderTime) { + this.snatchOrderTime = snatchOrderTime; + } + + public Date getSetOutTime() { + return setOutTime; + } + + public void setSetOutTime(Date setOutTime) { + this.setOutTime = setOutTime; + } + + public Date getArriveTime() { + return arriveTime; + } + + public void setArriveTime(Date arriveTime) { + this.arriveTime = arriveTime; + } + + public Date getStartServiceTime() { + return startServiceTime; + } + + public void setStartServiceTime(Date startServiceTime) { + this.startServiceTime = startServiceTime; + } + + public Date getEndServiceTime() { + return endServiceTime; + } + + public void setEndServiceTime(Date endServiceTime) { + this.endServiceTime = endServiceTime; + } + + public Integer getOrderType() { + return orderType; + } + + public void setOrderType(Integer orderType) { + this.orderType = orderType; + } + + public Integer getOrderSource() { + return orderSource; + } + + public void setOrderSource(Integer orderSource) { + this.orderSource = orderSource; + } + + public Integer getInvoiceId() { + return invoiceId; + } + + public void setInvoiceId(Integer invoiceId) { + this.invoiceId = invoiceId; + } + + public Integer getIsReassign() { + return isReassign; + } + + public void setIsReassign(Integer isReassign) { + this.isReassign = isReassign; + } + + public Integer getReassignNotice() { + return reassignNotice; + } + + public void setReassignNotice(Integer reassignNotice) { + this.reassignNotice = reassignNotice; + } + + public String getTrackId() { + return trackId; + } + + public void setTrackId(String trackId) { + this.trackId = trackId; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public Integer getOldState() { + return oldState; + } + + public void setOldState(Integer oldState) { + this.oldState = oldState; + } + + public String getTelX() { + return telX; + } + + public void setTelX(String telX) { + this.telX = telX; + } + + public String getBindId() { + return bindId; + } + + public void setBindId(String bindId) { + this.bindId = bindId; + } + + public String getSplitAllocation() { + return splitAllocation; + } + + public void setSplitAllocation(String splitAllocation) { + this.splitAllocation = splitAllocation; + } + + public String getTravelId() { + return travelId; + } + + public void setTravelId(String travelId) { + this.travelId = travelId; + } + + public Integer getIsCreated() { + return isCreated; + } + + public void setIsCreated(Integer isCreated) { + this.isCreated = isCreated; + } + + public Integer getRecoveryOrder() { + return recoveryOrder; + } + + public void setRecoveryOrder(Integer recoveryOrder) { + this.recoveryOrder = recoveryOrder; + } + + public Long getPromotionActivityId() { + return promotionActivityId; + } + + public void setPromotionActivityId(Long promotionActivityId) { + this.promotionActivityId = promotionActivityId; + } + + @Override public String toString() { + return "OrderPrivateCar{" + + "id=" + id + + ", type=" + type + + ", crossCityOrderId=" + crossCityOrderId + + ", place=" + place + + ", userId=" + userId + + ", serverCarModel='" + serverCarModel + '\'' + + ", serverCarModelId=" + serverCarModelId + + ", driverId=" + driverId + + ", carId=" + carId + + ", orderNum='" + orderNum + '\'' + + ", placementLon=" + placementLon + + ", placementLat=" + placementLat + + ", placementAddress='" + placementAddress + '\'' + + ", startLon=" + startLon + + ", startLat=" + startLat + + ", startAddress='" + startAddress + '\'' + + ", endLon=" + endLon + + ", endLat=" + endLat + + ", endAddress='" + endAddress + '\'' + + ", boardingLon=" + boardingLon + + ", boardingLat=" + boardingLat + + ", boardingAddress='" + boardingAddress + '\'' + + ", boardingTime=" + boardingTime + + ", getoffLon=" + getoffLon + + ", getoffLat=" + getoffLat + + ", getoffAddress='" + getoffAddress + '\'' + + ", getoffTime=" + getoffTime + + ", mileage=" + mileage + + ", payManner=" + payManner + + ", payType=" + payType + + ", orderMoney=" + orderMoney + + ", startMileage=" + startMileage + + ", startMoney=" + startMoney + + ", mileageKilometers=" + mileageKilometers + + ", mileageMoney=" + mileageMoney + + ", duration=" + duration + + ", durationMoney=" + durationMoney + + ", wait=" + wait + + ", waitMoney=" + waitMoney + + ", longDistance=" + longDistance + + ", longDistanceMoney=" + longDistanceMoney + + ", parkMoney=" + parkMoney + + ", roadTollMoney=" + roadTollMoney + + ", holidayFee=" + holidayFee + + ", redPacketMoney=" + redPacketMoney + + ", couponMoney=" + couponMoney + + ", redPacketId=" + redPacketId + + ", couponId=" + couponId + + ", discount=" + discount + + ", discountMoney=" + discountMoney + + ", activityId=" + activityId + + ", taxiCardId=" + taxiCardId + + ", userTaxiCardId=" + userTaxiCardId + + ", discountAmount=" + discountAmount + + ", companyId=" + companyId + + ", payMoney=" + payMoney + + ", thankYouFee=" + thankYouFee + + ", substitute=" + substitute + + ", passengers='" + passengers + '\'' + + ", passengersPhone='" + passengersPhone + '\'' + + ", state=" + state + + ", insertTime=" + insertTime + + ", travelTime=" + travelTime + + ", snatchOrderTime=" + snatchOrderTime + + ", setOutTime=" + setOutTime + + ", arriveTime=" + arriveTime + + ", startServiceTime=" + startServiceTime + + ", endServiceTime=" + endServiceTime + + ", orderType=" + orderType + + ", orderSource=" + orderSource + + ", invoiceId=" + invoiceId + + ", isReassign=" + isReassign + + ", reassignNotice=" + reassignNotice + + ", trackId='" + trackId + '\'' + + ", isDelete=" + isDelete + + ", oldState=" + oldState + + ", telX='" + telX + '\'' + + ", bindId='" + bindId + '\'' + + ", peopleNum=" + peopleNum + + ", rideType=" + rideType + + ", pid=" + pid + + ", abnormal=" + abnormal + + ", promotion=" + promotion + + ", promotionUser='" + promotionUser + '\'' + + ", promotionPhone='" + promotionPhone + '\'' + + ", abnormalIntro='" + abnormalIntro + '\'' + + ", abnormalImg='" + abnormalImg + '\'' + + ", promotionDriverId=" + promotionDriverId + + ", promotionMoney=" + promotionMoney + + ", totalPeopleNum=" + totalPeopleNum + + ", estimateMileage=" + estimateMileage + + ", estimateTime=" + estimateTime + + ", spellSuccess=" + spellSuccess + + ", splitAllocation='" + splitAllocation + '\'' + + ", responsibilityType=" + responsibilityType + + ", promotionActivityId=" + promotionActivityId + + ", travelId='" + travelId + '\'' + + ", isCreated=" + isCreated + + ", recoveryOrder=" + recoveryOrder + + '}'; +}} diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java index 19033bb..0c9e66c 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java @@ -154,7 +154,7 @@ * @return * @throws Exception */ - ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception; + ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index e65ee14..7236fab 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -11,7 +11,6 @@ import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl; -import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; @@ -20,6 +19,8 @@ import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -43,6 +44,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.BigInteger; import java.math.MathContext; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -970,17 +972,71 @@ orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar1.setState(10); this.updateById(orderPrivateCar1); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar1.getTravelId()); + request.setStatus(orderPrivateCar1.getState()); + if (null != orderPrivateCar1.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar1.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace())); for (OrderTaxi orderTaxi : list1) { orderCancelService.saveData(orderTaxi.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi.setState(10); orderTaxiService.updateById(orderTaxi); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver1 = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar.setState(10); this.updateById(orderPrivateCar); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + if (null != orderPrivateCar.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); @@ -997,6 +1053,24 @@ this.updateById(orderPrivateCar); } this.deleteTask(id);//删除定时任务 + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + if (null != orderPrivateCar.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); new Thread(new Runnable() { @Override @@ -1114,6 +1188,24 @@ orderPrivateCar.setTelX(""); orderPrivateCar.setBindId(""); this.updateById(orderPrivateCar); + + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + if (null != orderPrivateCar.getDriverId()) { + driver = driverService.selectById(orderPrivateCar.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar.getPromotion()) { + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); orderCancel.setState(2); orderCancel.setPayType(3); @@ -1907,8 +1999,7 @@ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { - + public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(orderId); if (orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) { return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>()); @@ -1927,7 +2018,7 @@ UserCouponRecord userCouponRecord = null; if (null != objectId && objectType == 1) { userCouponRecord = userCouponRecordService.selectById(objectId); - if (userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()) { + if (userCouponRecord.getCompanyId().compareTo(orderPrivateCar.getCompanyId()) != 0) { return ResultUtil.error("优惠券不能用于此订单", new ArrayList<>()); } if (userCouponRecord.getState() == 2) { @@ -2084,8 +2175,57 @@ if (orderMoney == 0) { return ResultUtil.error("请使用余额支付"); } - String app = type == 1 ? "APP" : "JSAPI"; - resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); +// String app = type == 1 ? "APP" : "JSAPI"; +// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + + Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); + if(null == orderPrivateCar.getIsCreated() || 0 == orderPrivateCar.getIsCreated()){ + //调用中台创建订单及拉起支付接口 + TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); + tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); + tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}"); + tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); + tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId()); + tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId()); + tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID()); + tradeOrderCreateData.setPartnerPayId(orderPrivateCar.getTravelId()); + tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradeOrderCreateData.setOrderDesc("完成订单"); + tradeOrderCreateData.setRetUrl(path); + tradeOrderCreateData.setClientIp(ip); + + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + goodsInfo.add(goodsInfoRequest); + tradeOrderCreateData.setGoodsInfo(goodsInfo); + TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); + PayInfo payInfo = tradeOrderCreate.getPayInfo(); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + orderPrivateCar.setIsCreated(1); + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + }else{ + //拉起支付 + TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); + tradePayOff1Data.setPartnerPayId("PR" + orderPrivateCar.getId()); + tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradePayOff1Data.setRetUrl(path); + tradePayOff1Data.setClientIp(ip); + tradePayOff1Data.setOrderDesc("完成订单"); + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + goodsInfo.add(goodsInfoRequest); + tradePayOff1Data.setGoodsInfo(goodsInfo); + PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + } + paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, "", 1);//添加预支付数据 } if (payType == 2) {//支付宝支付 @@ -2099,12 +2239,7 @@ if (userInfo.getBalance() == null || userInfo.getBalance() < orderMoney) { return ResultUtil.error("余额不足,无法完成支付"); } -// if(orderMoney > 0){ -// resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),orderMoney); -// if(resultUtil.getCode()==500){ -// return ResultUtil.error("电子余额不足,无法完成支付"); -// } -// } + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); @@ -2277,6 +2412,24 @@ orderPrivateCar.setTelX(""); this.updateById(orderPrivateCar); + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar.getTravelId()); + request.setStatus(orderPrivateCar.getState()); + if (null != orderPrivateCar.getDriverId()) { + driver = driverService.selectById(orderPrivateCar.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar.getPromotion()) { + Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); + query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java index 85597bd..f8dad4f 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java @@ -284,6 +284,11 @@ */ @TableField("OnCall") private String OnCall; + /** + * 中台企业编号 + */ + @TableField("enterCode") + private String enterCode; public String getDetailAddress() { @@ -733,7 +738,15 @@ public void setOnCall(String onCall) { OnCall = onCall; } - + + public String getEnterCode() { + return enterCode; + } + + public void setEnterCode(String enterCode) { + this.enterCode = enterCode; + } + @Override public String toString() { return "Company{" + diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java index c853450..3b92e0c 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java @@ -335,6 +335,21 @@ */ @TableField("qrCode") private String qrCode; + /** + * 中台员工ID + */ + @TableField("empId") + private Long empId; + /** + * 中台员工所属企业ID + */ + @TableField("enterId") + private Long enterId; + /** + * 中台员工所属企业编号 + */ + @TableField("entercode") + private String entercode; public String getQrCode() { return qrCode; @@ -841,7 +856,31 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } - + + public Long getEmpId() { + return empId; + } + + public void setEmpId(Long empId) { + this.empId = empId; + } + + public Long getEnterId() { + return enterId; + } + + public void setEnterId(Long enterId) { + this.enterId = enterId; + } + + public String getEntercode() { + return entercode; + } + + public void setEntercode(String entercode) { + this.entercode = entercode; + } + @Override public String toString() { return "Driver{" + diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java index c8c15e7..a941215 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java @@ -145,6 +145,11 @@ */ private Date bindExpireDate; + /** + * 中台用户ID + */ + @TableField("onconUUID") + private String onconUUID; private Date bindDate; @@ -364,7 +369,15 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } - + + public String getOnconUUID() { + return onconUUID; + } + + public void setOnconUUID(String onconUUID) { + this.onconUUID = onconUUID; + } + @Override public String toString() { return "UserInfo{" + diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java index 23c7f29..9e2e2f8 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/pdf/TripSheetGenerator.java @@ -43,7 +43,7 @@ throw new IllegalArgumentException("订单列表不能为空"); } - String fileName = "行程单_" + UUID.randomUUID() + ".pdf"; + String fileName = "贵人家园行程单_" + UUID.randomUUID() + ".pdf"; String filePath = pdfDir + fileName; File file = new File(filePath); FileUtils.forceMkdirParent(file); @@ -303,11 +303,6 @@ table.addCell(cell); } - private void addTableCell(PdfPTable table, String text, Font font) { - PdfPCell cell = new PdfPCell(new Paragraph(text != null ? text : "", font)); - cell.setPadding(5); - table.addCell(cell); - } /** * 获取中文字体,优先自定义字体,fallback到 CJK 内置 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java index c02d01d..7987767 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java @@ -157,6 +157,7 @@ serverCarModelWarpper.setContentExclusive(contentExclusive); serverCarModelWarpper.setContentPrice(contentPrice); + serverCarModelWarpper.setWaitPrice(jsonObject); serverCarModelWarpper.setAmount(this.calculationPrice(contentExclusive, distance, duration, wait, waitMoney)); serverCarModelWarpper.setBuyNowAmount(this.calculationPrice(contentPrice, distance, duration, wait, waitMoney)); @@ -296,7 +297,7 @@ serverCarModelWarpper.setContentNotTwo(new JSONObject()); serverCarModelWarpper.setContentPutThree(new JSONObject()); serverCarModelWarpper.setContentNotThree(new JSONObject()); - serverCarModelWarpper.setContentExclusive(new JSONObject()); + serverCarModelWarpper.setContentExclusive(jsonObject); serverCarModelWarpper.setContentPrice(new JSONObject()); return serverCarModelWarpper; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index 37042ea..42947b9 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -27,7 +27,6 @@ import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; -import org.apache.commons.lang.time.DateUtils; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -51,7 +50,6 @@ import java.net.URLConnection; import java.security.spec.AlgorithmParameterSpec; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; @@ -236,6 +234,7 @@ } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -248,6 +247,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } + onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -265,6 +265,9 @@ userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); + if(null != onconUUID){ + userInfo.setOnconUUID(onconUUID); + } //用户所属企业 if(null != registAreaCode){ @@ -868,7 +871,8 @@ nickName = userInfo.getNickName(); } //调中台接口查询用户 - List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); + String onconUUID = null; + List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -881,6 +885,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } + onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -895,6 +900,7 @@ userInfo1.setAvatar(userInfo.getAvatar()); userInfo1.setSex(userInfo.getSex()); userInfo1.setNickName(userInfo.getNickName()); + userInfo1.setOnconUUID(onconUUID); this.updateById(userInfo1); if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码 @@ -944,7 +950,7 @@ loginWarpper.setPhone(2); return ResultUtil.success(loginWarpper); } - + userInfo.setOnconUUID(onconUUID); userInfo.setPhone(phone); userInfo.setUpdateTime(new Date()); userInfo.setUpdateUser(userInfo.getId()); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java index e09f2dd..0e436a9 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java @@ -9,7 +9,9 @@ import org.springframework.stereotype.Service; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeUtility; import java.io.File; +import java.io.UnsupportedEncodingException; @Component public class EmailUtil { @@ -24,7 +26,7 @@ this.javaMailSender = javaMailSender; } - public void sendEmailWithAttachment(String to, String subject, String text, File attachment) throws MessagingException { + public void sendEmailWithAttachment(String to, String subject, String text, File attachment,String displayFileName) throws MessagingException, UnsupportedEncodingException { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); @@ -35,8 +37,12 @@ // 设置邮件主题和内容 helper.setSubject(subject); helper.setText(text); - // 添加附件 - helper.addAttachment(attachment.getName(), attachment); + // 使用显示文件名而非原文件名 + helper.addAttachment( + MimeUtility.encodeWord(displayFileName), // 编码避免中文乱码 + attachment + ); + // 发送邮件 javaMailSender.send(message); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index bcec77b..c04c6f3 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -1,86 +1,169 @@ package com.stylefeng.guns.modular.system.util; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; +import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; +import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; +import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 定时任务工具类 */ +@Slf4j @Component public class TaskUtil { - - @Autowired - private IUserCouponRecordService userCouponRecordService; - - @Autowired - private IUserMerchantCouponService userMerchantCouponService; - - @Autowired - private AppOrderController appOrderController; - - @Autowired - private IOrderPrivateCarService orderPrivateCarService; - - - @Autowired - private IOrderCrossCityService orderCrossCityService; - - @Autowired - private IOrderLogisticsService orderLogisticsService; - - @Autowired - private IOrderTaxiService orderTaxiService; - - @Autowired - private ChinaMobileUtil chinaMobileUtil; - - - - /** - * 每隔一分钟去处理的定时任务 - */ - @Scheduled(fixedRate = 1000 * 60) - public void taskMinute(){ - try { - - //修改过期的优惠券 - userCouponRecordService.updateTimeOut(); - //修改过期的商家优惠券 - userMerchantCouponService.updateExpired(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - /** - * 每天的凌晨执行的任务 - */ - @Scheduled(fixedRate = 1000 * 60) - public void taskDay(){ - } - - -// -// /** -// * 每月第一天的1点执行的任务 -// */ -// @Scheduled(cron = "0 0 1 1 * *") -// public void taskMonth(){ -// try { -// -// }catch (Exception e){ -// e.printStackTrace(); -// } -// } + + @Autowired + private IUserCouponRecordService userCouponRecordService; + + @Autowired + private IUserMerchantCouponService userMerchantCouponService; + + @Autowired + private AppOrderController appOrderController; + + @Autowired + private IOrderPrivateCarService orderPrivateCarService; + + + @Autowired + private IOrderCrossCityService orderCrossCityService; + + @Autowired + private IOrderLogisticsService orderLogisticsService; + + @Autowired + private IOrderTaxiService orderTaxiService; + + @Autowired + private ChinaMobileUtil chinaMobileUtil; + + @Autowired + private IUserInfoService userInfoService; + + + /** + * 每隔一分钟去处理的定时任务 + */ + @Scheduled(fixedRate = 1000 * 60) + public void taskMinute() { + try { + //修改过期的优惠券 + userCouponRecordService.updateTimeOut(); + //修改过期的商家优惠券 + userMerchantCouponService.updateExpired(); + //处理超时未支付的订单 + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 每天的凌晨执行的任务 + */ + @Scheduled(fixedRate = 1000 * 60) + public void taskDay() { + } + + + /** + * 每天中午12点发送提醒短信 + */ + @Scheduled(cron = "0 0 12 * * ?") + public void taskMonth() { + try { + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1) + .eq("state", 7).eq("abnormal", 1) + .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); + for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { + UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId()); + SendSmsRequest request = new SendSmsRequest(); + request.setDestAddress(userInfo.getPhone()); + request.setTemplateId("TPL202507300002"); + Map<String, String> templateParams = new HashMap<>(); + request.setTemplateParams(templateParams); + request.setSpId("Y86asr7J"); + SMSUtil.sendSms(request); + } + List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1) + .eq("state", 7).eq("abnormal", 1) + .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); + for (OrderTaxi orderTaxi : orderTaxis) { + UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); + SendSmsRequest request = new SendSmsRequest(); + request.setDestAddress(userInfo.getPhone()); + request.setTemplateId("TPL202507300002"); + Map<String, String> templateParams = new HashMap<>(); + request.setTemplateParams(templateParams); + request.setSpId("Y86asr7J"); + SMSUtil.sendSms(request); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 大于24小时未支付的订单 + */ + public void timoutNoPayment() { + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7) + .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)")); + for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { + //使用备付金进行支付订单 + TradePayOffData tradePayOffData = new TradePayOffData(); + tradePayOffData.setPartnerPayId("PR" + orderPrivateCar.getId()); + tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + ""); + tradePayOffData.setOrderDesc("完成订单"); + PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData); + String retCode = payInfo.getRetCode(); + if(!"000000".equals(retCode)){ + log.error("备付金支付失败:{}", payInfo.getRetMsg()); + continue; + } + PayInfoData data = payInfo.getData(); + String status = data.getStatus(); + if("3".equals(status)){ + log.error("备付金支付失败:{}", payInfo.getRetMsg()); + continue; + } + //copy原始订单后生成追缴单 + OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar(); + BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1); + orderPrivateCar1.setId(null); + orderPrivateCar1.setRecoveryOrder(1); + + //修改原始订单为支付状态 + orderPrivateCar.setState(8); + orderPrivateCar.setPayType(5); + orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); + orderPrivateCarService.updateById(orderPrivateCar); + orderPrivateCarService.insert(orderPrivateCar1); + } + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java index cb09fb2..38413d1 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java @@ -10,6 +10,7 @@ import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import lombok.extern.slf4j.Slf4j; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -26,19 +27,19 @@ // CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); -// request.setOrderNo("0123456"); +// request.setOrderNo("3456789012345678"); // request.setCustomerId("11448156"); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // request.setServiceType(1); // String travelItinerary = createTravelItinerary(request); -// System.err.println(travelItinerary);//1948685426689200128 +// System.err.println(travelItinerary);//1951088602595872768 //修改行程状态 // ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); -// request.setOrderId("1948685426689200128"); +// request.setOrderId("1951088602595872768"); // request.setStatus(7); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); @@ -53,24 +54,24 @@ // tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // tradeOrderCreateData.setCharge(new BigDecimal("0.01")); // tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); -// tradeOrderCreateData.setOrderId("1948685426689200128"); -// tradeOrderCreateData.setOrderNo("0123456"); +// tradeOrderCreateData.setOrderId("1951088602595872768"); +// tradeOrderCreateData.setOrderNo("3456789012345678"); // tradeOrderCreateData.setCustomerId("11448156"); // tradeOrderCreateData.setPayPartnerId("5400004"); -// tradeOrderCreateData.setPartnerPayId("1948685426689200128"); +// tradeOrderCreateData.setPartnerPayId("1951088602595872768"); // tradeOrderCreateData.setCurrency("RMB"); // tradeOrderCreateData.setTotalFee("1"); -// tradeOrderCreateData.setRetUrl("/home/"); +// tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradeOrderCreateData.setClientIp("127.0.0.1"); // tradeOrderCreateData.setNeedLoginFlag("N"); // tradeOrderCreateData.setOrderDesc("出行订单支付"); -// tradeOrderCreateData.setAccessMode("H5"); +// tradeOrderCreateData.setAccessMode("APP"); // // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); -// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); -// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); +// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); +// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); @@ -79,7 +80,7 @@ // tradeOrderCreateData.setGoodsInfo(goodsInfo); // TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); // System.err.println(tradeOrderCreate); -// //TradeOrderCreate(orderInfo=OrderInfo(orderId=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f)) + //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) //查询支付单信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); @@ -89,30 +90,30 @@ // System.err.println(getPaymentInfo); //拉起支付 -// TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); -// tradePayOff1Data.setPartnerId("5400004"); -// tradePayOff1Data.setScene("TRAFFIC"); -// tradePayOff1Data.setPartnerPayId("1948685426689200128"); -// tradePayOff1Data.setCurrency("RMB"); -// tradePayOff1Data.setTotalFee("1"); -// tradePayOff1Data.setRetUrl("/home/"); -// tradePayOff1Data.setClientIp("127.0.0.1"); -// tradePayOff1Data.setNeedLoginFlag("N"); -// tradePayOff1Data.setOrderDesc("出行订单支付"); -// tradePayOff1Data.setAccessMode("APP"); -// List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); -// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); -// goodsInfoRequest.setId("981100006005901"); -// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); -// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); -// goodsInfoRequest.setProfitSharing("1"); -// goodsInfoRequest.setAreaInfo("520100"); -// goodsInfoRequest.setPayType("0"); -// goodsInfoRequest.setBusinessType("10408"); -// goodsInfo.add(goodsInfoRequest); -// tradePayOff1Data.setGoodsInfo(goodsInfo); -// PayInfo payInfo = tradePayOff1(tradePayOff1Data); -// System.err.println(payInfo); + TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); + tradePayOff1Data.setPartnerId("5400004"); + tradePayOff1Data.setScene("TRAFFIC"); + tradePayOff1Data.setPartnerPayId("1951088602595872768"); + tradePayOff1Data.setCurrency("RMB"); + tradePayOff1Data.setTotalFee("1"); + tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); + tradePayOff1Data.setClientIp("127.0.0.1"); + tradePayOff1Data.setNeedLoginFlag("N"); + tradePayOff1Data.setOrderDesc("出行订单支付"); + tradePayOff1Data.setAccessMode("APP"); + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); + goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); + goodsInfoRequest.setProfitSharing("1"); + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + goodsInfo.add(goodsInfoRequest); + tradePayOff1Data.setGoodsInfo(goodsInfo); + PayInfo payInfo = tradePayOff1(tradePayOff1Data); + System.err.println(payInfo); //PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe) @@ -178,6 +179,21 @@ * @return */ public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) { + tradePayOff1Data.setPartnerId("5400004"); + tradePayOff1Data.setScene("TRAFFIC"); + tradePayOff1Data.setCurrency("RMB"); + tradePayOff1Data.setNeedLoginFlag("N"); + tradePayOff1Data.setAccessMode("APP"); + tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> { + goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); + goodsInfoRequest.setProfitSharing("1"); + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + TradeRequest request = new TradeRequest<TradePayOff1Data>(); request.setSceneId("1911676727023968256"); request.setAppId(QianYunTongProperties.appkey); @@ -356,6 +372,24 @@ * @return */ public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { + tradeOrderCreateData.setScene("TRAFFIC"); + tradeOrderCreateData.setPartnerId("522700"); + tradeOrderCreateData.setOrderAppId("52270015"); + tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); + tradeOrderCreateData.setPayPartnerId("5400004"); + tradeOrderCreateData.setCurrency("RMB"); + tradeOrderCreateData.setNeedLoginFlag("N"); + tradeOrderCreateData.setAccessMode("APP"); + tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest->{ + goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); + goodsInfoRequest.setProfitSharing("1"); + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + TradeRequest request = new TradeRequest<TradeOrderCreateData>(); request.setSceneId("1945688132719169536"); request.setAppId(QianYunTongProperties.appkey); @@ -450,6 +484,28 @@ * @return */ public static PayInfo tradePayOff(TradePayOffData tradePayOffData) { + tradePayOffData.setPartnerId("5400004"); + tradePayOffData.setScene("TRAFFIC"); + tradePayOffData.setCurrency("RMB"); + tradePayOffData.setRetUrl(""); + tradePayOffData.setClientIp(System.getProperty("http.remoteAddr")); + tradePayOffData.setNeedLoginFlag("N"); + tradePayOffData.setAccessMode("APP"); + List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); + PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); + paymentInfoRequest.setPayModeId("501212"); + paymentInfoRequests.add(paymentInfoRequest); + tradePayOffData.setPaymentInfos(paymentInfoRequests); + List<GoodsInfo> goodsInfo = new ArrayList<>(); + GoodsInfo goodsInfo1 = new GoodsInfo(); + goodsInfo1.setMerchantCode(":B00000872"); + goodsInfo1.setCustId("CB0000004686"); + goodsInfo1.setCustName("证联消费平台交易客户"); + goodsInfo1.setProfitSharing("1"); + goodsInfo.add(goodsInfo1); + tradePayOffData.setGoodsInfo(goodsInfo); + + TradeRequest request = new TradeRequest<TradePayOffData>(); request.setSceneId("1774717104844095488"); request.setAppId(QianYunTongProperties.appkey); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java index dceaf17..90a4b14 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java @@ -16,6 +16,7 @@ /** * 私钥地址 */ +// String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; String privateKeyPath = "C:\\Users\\Administrator\\Desktop\\private_key_test.pem"; /** * 私钥地址 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java index 5872231..cfe188f 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java @@ -70,12 +70,12 @@ public static void main(String[] args) { SendSmsRequest request = new SendSmsRequest(); request.setDestAddress("15828353127"); - request.setTemplateId("TPL202410290001"); + request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); - templateParams.put("code", "1234"); +// templateParams.put("code", "1234"); request.setTemplateParams(templateParams); - request.setCode("code"); - request.setSpId("T8d5hdfg"); +// request.setCode("code"); + request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java index bcc7a30..c1e4d91 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java @@ -23,8 +23,8 @@ public static void main(String[] args) { - List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127", "981100006005951"); - System.out.println(userInfoByPhone); +// List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127"); +// System.out.println(userInfoByPhone); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java index 7c1d683..b89c824 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java @@ -13,6 +13,10 @@ @Document(collection = "driver_position") public class DriverPosition { @Id + private String id; + /** + * 司机id + */ private Integer driverId; /** * 点位 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java index ab9f539..abc2d20 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java @@ -64,6 +64,8 @@ private JSONObject contentExclusive;//独享 @ApiModelProperty("一口价规则") private JSONObject contentPrice;//一口价 + @ApiModelProperty("等待费规则") + private JSONObject waitPrice;//等待费 @ApiModelProperty("计价说明(拼车)") private String fareTypeNote1; @@ -362,4 +364,13 @@ } return data; } + + + public JSONObject getWaitPrice() { + return waitPrice; + } + + public void setWaitPrice(JSONObject waitPrice) { + this.waitPrice = waitPrice; + } } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java index d25a643..a63b98b 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; -import com.stylefeng.guns.modular.system.model.BaseBean; import java.math.BigDecimal; import java.util.Date; @@ -385,6 +384,24 @@ private String splitAllocation; private Integer responsibilityType; + + + private Integer promotion; + + private String voice; + + + private Date voiceTime; + + private String promotionUser; + + private String promotionPhone; + + private String travelId; + /** + * 中台是否已创建订单(0=否,1=是) + */ + private Integer isCreated; private Long promotionActivityId; @@ -997,7 +1014,63 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } - + + public Integer getPromotion() { + return promotion; + } + + public void setPromotion(Integer promotion) { + this.promotion = promotion; + } + + public String getVoice() { + return voice; + } + + public void setVoice(String voice) { + this.voice = voice; + } + + public Date getVoiceTime() { + return voiceTime; + } + + public void setVoiceTime(Date voiceTime) { + this.voiceTime = voiceTime; + } + + public String getPromotionUser() { + return promotionUser; + } + + public void setPromotionUser(String promotionUser) { + this.promotionUser = promotionUser; + } + + public String getPromotionPhone() { + return promotionPhone; + } + + public void setPromotionPhone(String promotionPhone) { + this.promotionPhone = promotionPhone; + } + + public String getTravelId() { + return travelId; + } + + public void setTravelId(String travelId) { + this.travelId = travelId; + } + + public Integer getIsCreated() { + return isCreated; + } + + public void setIsCreated(Integer isCreated) { + this.isCreated = isCreated; + } + @Override public String toString() { return "OrderTaxi{" + diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java index caf8829..a3812e1 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java @@ -129,7 +129,7 @@ * @return * @throws Exception */ - ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception; + ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception; diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 839b316..800a5a2 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -20,6 +20,8 @@ import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -146,7 +148,7 @@ @Autowired private IDriverServiceService driverServiceService; - + @Autowired private TAbnormalPayOrderMapper abnormalPayOrderMapper; @@ -185,10 +187,11 @@ @Value("${callbackPath}") private String callbackPath; - - + + @Autowired private TDriverPromotionActivityService driverPromotionActivityService; + /** * 出租车下单操作 * @@ -496,17 +499,71 @@ orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar1.setState(10); orderPrivateCarService.updateById(orderPrivateCar1); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderPrivateCar1.getTravelId()); + request.setStatus(orderPrivateCar1.getState()); + if (null != orderPrivateCar1.getDriverId()) { + driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderPrivateCar1.getPromotion()) { + Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace())); for (OrderTaxi orderTaxi1 : list1) { orderCancelService.saveData(orderTaxi1.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi1.setState(10); this.updateById(orderTaxi1); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi1.getTravelId()); + request.setStatus(orderTaxi1.getState()); + if (null != orderTaxi1.getDriverId()) { + driver1 = driverService.selectById(orderTaxi1.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi1.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { integer = orderCancelService.saveData(id, 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi.setState(10); this.updateById(orderTaxi); + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver1 = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); } } else { OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); @@ -523,6 +580,24 @@ this.updateById(orderTaxi); } this.deleteTask(id);//删除定时任务 + + Driver driver1 = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver1 = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver1.getCompanyId()); + request.setDriverId(driver1.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver2.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); new Thread(new Runnable() { @Override @@ -642,6 +717,24 @@ orderTaxi.setTelX(""); orderTaxi.setBindId(""); this.updateById(orderTaxi); + + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); orderCancel.setState(2); orderCancel.setPayType(3); @@ -1343,7 +1436,7 @@ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { + public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception { OrderTaxi orderTaxi = this.selectById(orderId); if (orderTaxi.getState() == 8 || orderTaxi.getState() == 9) { return ResultUtil.error("订单已完成支付,不允许重复支付", ""); @@ -1514,8 +1607,57 @@ if (orderMoney == 0) { return ResultUtil.error("请使用余额支付"); } - String app = type == 1 ? "APP" : "JSAPI"; - resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); +// String app = type == 1 ? "APP" : "JSAPI"; +// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + + Driver driver = driverService.selectById(orderTaxi.getDriverId()); + if(null == orderTaxi.getIsCreated() || 0 == orderTaxi.getIsCreated()){ + //调用中台创建订单及拉起支付接口 + TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); + tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); + tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}"); + tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); + tradeOrderCreateData.setOrderId(orderTaxi.getTravelId()); + tradeOrderCreateData.setOrderNo("TA" + orderTaxi.getId()); + tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID()); + tradeOrderCreateData.setPartnerPayId(orderTaxi.getTravelId()); + tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradeOrderCreateData.setOrderDesc("完成订单"); + tradeOrderCreateData.setRetUrl(path); + tradeOrderCreateData.setClientIp(ip); + + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + goodsInfo.add(goodsInfoRequest); + tradeOrderCreateData.setGoodsInfo(goodsInfo); + TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); + PayInfo payInfo = tradeOrderCreate.getPayInfo(); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + orderTaxi.setIsCreated(1); + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + }else{ + //拉起支付 + TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); + tradePayOff1Data.setPartnerPayId("PR" + orderTaxi.getId()); + tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); + tradePayOff1Data.setRetUrl(path); + tradePayOff1Data.setClientIp(ip); + tradePayOff1Data.setOrderDesc("完成订单"); + List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); + GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); + goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); + goodsInfo.add(goodsInfoRequest); + tradePayOff1Data.setGoodsInfo(goodsInfo); + PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); + if(!"000000".equals(payInfo.getRetCode())){ + return ResultUtil.error(payInfo.getRetMsg()); + } + resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); + } + paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据 } if (payType == 2) {//支付宝支付 @@ -1737,10 +1879,10 @@ map.put("state", map.get("oldState")); } - if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){ + if (Integer.valueOf(String.valueOf(map.get("state"))) == 7 && (map.get("responsibilityType") == null || Integer.valueOf(String.valueOf(map.get("responsibilityType"))) < 4)) { map.put("appealButton", 1); } - if(map.get("abnormalIntro")!=null){ + if (map.get("abnormalIntro") != null) { map.put("appealStatus", 1); } String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); @@ -2082,6 +2224,24 @@ orderTaxi.setTelX(""); this.updateById(orderTaxi); + Driver driver = null; + Company company = null; + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(orderTaxi.getTravelId()); + request.setStatus(orderTaxi.getState()); + if (null != orderTaxi.getDriverId()) { + driver = driverService.selectById(orderTaxi.getDriverId()); + company = companyService.selectById(driver.getCompanyId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(company.getEnterCode()); + } + if (2 == orderTaxi.getPromotion()) { + Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); + request.setPromoterId(driver1.getEmpId().toString()); + } + OrderUtil.modifyTravelItinerary(request); + query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); @@ -2297,7 +2457,7 @@ @Override public void addAppeal(Integer uid, Integer orderId, String abnormalIntro, String abnormalImg) { OrderTaxi orderTaxi = this.selectById(orderId); - if(orderTaxi.getState()!=7 || orderTaxi.getAbnormalIntro()!=null){ + if (orderTaxi.getState() != 7 || orderTaxi.getAbnormalIntro() != null) { throw new RuntimeException("此订单无法申诉"); } orderTaxi.setAbnormalIntro(abnormalIntro); @@ -2305,15 +2465,15 @@ orderTaxi.setAbnormal(2); this.baseMapper.updateById(orderTaxi); } - + @Override public void promotion(Integer orderId) { OrderTaxi orderTaxi = this.baseMapper.selectById(orderId); UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); - if(orderTaxi.getPromotionDriverId()!=null){ + if (orderTaxi.getPromotionDriverId() != null) { String registAreaCode = userInfo.getRegistAreaCode(); TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1")); - if(tDriverPromotionActivity!=null){ + if (tDriverPromotionActivity != null) { Double payMoney = orderTaxi.getPayMoney(); BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP); orderTaxi.setPromotionDriverId(userInfo.getBindDriverId()); @@ -2323,7 +2483,7 @@ } } // 是否异常订单 - if (orderTaxi.getResponsibilityType() !=null && orderTaxi.getResponsibilityType() >2) { + if (orderTaxi.getResponsibilityType() != null && orderTaxi.getResponsibilityType() > 2) { TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum", orderTaxi.getOrderNum())).stream().findFirst().orElse(null); if (tAbnormalPayOrder != null) { tAbnormalPayOrder.setPayStatus(2); -- Gitblit v1.7.1