From 9641d9ebc7b32b7e2cee898c8e9250e798c97e1b Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 16 八月 2025 15:17:32 +0800 Subject: [PATCH] 修改bug --- ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java | 19 UserQYTTravel/guns-admin/src/main/resources/application-dev.yml | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 4 ManagementQYTTravel/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/service/impl/NettyServiceImpl.java | 2 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/util/PushMinistryOfTransportUtil.java | 6 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java | 53 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java | 53 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java | 27 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java | 39 + MessagePushTravel/src/main/java/com/sinata/push/config/QYTConfig.java | 66 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 4 ManagementQYTTravel/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/dao/mapping/OrderPrivateCarMapper.xml | 3 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java | 43 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 7 UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 128 +- ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java | 64 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java | 31 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java | 35 UserQYTTravel/guns-admin/src/main/resources/application-prod.yml | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java | 31 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java | 27 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java | 19 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SendSmsRequest.java | 33 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java | 99 ++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java | 39 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java | 10 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml | 3 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java | 62 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java | 45 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 2 ManagementQYTTravel/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/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 16 MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyServerController.java | 16 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java | 27 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java | 39 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java | 42 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java | 31 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java | 35 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java | 12 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 42 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 682 +++++++++++++++++ UserQYTTravel/guns-admin/src/main/resources/application-test.yml | 2 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml | 12 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 6 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/QYTConfig.java | 56 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java | 66 + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 2 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 4 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 2 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java | 19 ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java | 28 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 2 58 files changed, 1,963 insertions(+), 271 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 9b04857..e42e7bd 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -485,7 +485,7 @@ orderLogistics.setStartServiceTime(date); orderLogistics.setBoardingTime(date); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + uid); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + uid); if(ToolUtil.isNotEmpty(value)){ String[] split = value.split(","); Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]); 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 c57a41a..14e5aee 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 @@ -408,7 +408,7 @@ if(order!=null){ orders.addAll(order); } - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]); if(order!=null){ orders.addAll(order); @@ -423,7 +423,7 @@ if(order!=null){ orders.addAll(order); } - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),5,value.split(",")[0],value.split(",")[1]); if(order!=null){ orders.addAll(order); @@ -457,7 +457,7 @@ orders.addAll(order); } OrderPrivateCar orderPrivateCar = this.baseMapper.selectById(orderId); - String value = redisUtil.getValue("dache_DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + String value = redisUtil.getValue("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); order = this.baseMapper.queryOrderInfo(orderId,5,value.split(",")[0],value.split(",")[1]); if(order!=null){ orders.addAll(order); @@ -482,23 +482,23 @@ Map<String,Object> map = orderPrivateCarMapper.queryOrderInfo2(orderId, openCity.getId()); OrderPrivateCar orderPrivateCar = this.baseMapper.selectById(orderId); Integer canOperation=1; - if(orderPrivateCar.getState()<5){ - if(orderPrivateCar.getPid()==null) { - List<Map<String, Object>> order = this.baseMapper.queryOrderInfo(orderId, 4, null, null); - if (order != null && order.size()>0) { - if(!order.get(0).get("orderId").equals(orderId)){ - canOperation=0; - } - } - }else { - List<Map<String, Object>> order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),4,null,null); - if(order!=null && order.size()>0){ - if(!order.get(0).get("orderId").equals(orderId)){ - canOperation=0; - } - } - } - } +// if(orderPrivateCar.getState()<5){ +// if(orderPrivateCar.getPid()==null) { +// List<Map<String, Object>> order = this.baseMapper.queryOrderInfo(orderId, 4, null, null); +// if (order != null && order.size()>0) { +// if(!order.get(0).get("orderId").equals(orderId)){ +// canOperation=0; +// } +// } +// }else { +// List<Map<String, Object>> order = this.baseMapper.queryOrderInfo(orderPrivateCar.getPid(),4,null,null); +// if(order!=null && order.size()>0){ +// if(!order.get(0).get("orderId").equals(orderId)){ +// canOperation=0; +// } +// } +// } +// } map.put("canOperation",canOperation); System.out.println(map); String phone = map.get("phone").toString(); @@ -933,7 +933,7 @@ } Map<String, Object> map = new HashMap<>(); - map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:new BigDecimal(orderPrivateCar.getOrderMoney()).setScale(2,BigDecimal.ROUND_DOWN));//订单金额 + map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:orderPrivateCar.getOrderMoney());//订单金额 map.put("startMileage", orderPrivateCar.getStartMileage());//起步价 map.put("startMoney", orderPrivateCar.getStartMoney());//起步价 map.put("mileageKilometers", orderPrivateCar.getMileageKilometers());//里程费 diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml index 826a9f4..08b48b0 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml @@ -24,8 +24,8 @@ 1 as type, insertTime as orderTime, id as orderId, - boardingAddress as startAddress, - getoffAddress as endAddress, + startAddress as startAddress, + endAddress as endAddress, state, orderMoney from t_order_private_car @@ -41,8 +41,8 @@ 2 as type, insertTime as orderTime, id as orderId, - boardingAddress as startAddress, - getoffAddress as endAddress, + startAddress as startAddress, + endAddress as endAddress, state, orderMoney from t_order_taxi @@ -58,8 +58,8 @@ 3 as type, insertTime as orderTime, id as orderId, - boardingAddress as startAddress, - getoffAddress as endAddress, + startAddress as startAddress, + endAddress as endAddress, state, orderMoney from t_order_cross_city diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 7082469..1fd04c3 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -156,7 +156,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); @@ -173,7 +173,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java index 473d06f..5bd49b1 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java @@ -108,7 +108,7 @@ } //查看是否有可接单的数据 - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(uid)); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(uid)); if(ToolUtil.isNotEmpty(value)){ String[] split = value.split(","); List<OrderStatusWarpper> list1 = this.searchOrder(split[0], split[1], uid); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java index b2e3a23..2fcb7c3 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java @@ -138,7 +138,7 @@ OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Car car = carService.selectById(orderPrivateCar.getCarId()); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + orderPrivateCar.getDriverId()); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + orderPrivateCar.getDriverId()); JSONObject jsonObject = new JSONObject(); jsonObject.put("Address", 450204);//发起地行政区划代码 jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号 @@ -170,7 +170,7 @@ public void operateLogin(Integer driverId){ Driver driver = driverService.selectById(driverId); Car car = carService.selectById(driver.getCarId()); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + driverId); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 @@ -201,7 +201,7 @@ public void operateLogout(Integer driverId){ Driver driver = driverService.selectById(driverId); Car car = carService.selectById(driver.getCarId()); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + driverId); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + driverId); if(ToolUtil.isNotEmpty(value)){ JSONObject jsonObject = new JSONObject(); jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号 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 aa10ae4..57d2317 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 @@ -368,7 +368,7 @@ return; } //计算预计距离和剩余时间 - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driverId)); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driverId)); if(null == value || "".equals(value)){ return; } 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 index 6b08a1e..f3c5065 100644 --- 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 @@ -190,7 +190,7 @@ tradePayOff1Data.setNeedLoginFlag("N"); tradePayOff1Data.setAccessMode("APP"); tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> { - goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setAreaInfo("520100"); @@ -396,7 +396,7 @@ tradeOrderCreateData.setNeedLoginFlag("N"); tradeOrderCreateData.setAccessMode("APP"); tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> { - goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setAreaInfo("520100"); goodsInfoRequest.setPayType("0"); 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 f4f774a..91be020 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 @@ -410,7 +410,7 @@ orderTaxi.setStartServiceTime(date); orderTaxi.setBoardingTime(date); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + uid); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + uid); if (ToolUtil.isNotEmpty(value)) { String[] split = value.split(","); Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(split[0], split[1]); 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 31a3689..83ca537 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,47 +1,26 @@ //package com.stylefeng.guns; // -//import com.stylefeng.guns.modular.system.model.Driver; -//import com.stylefeng.guns.modular.system.service.IDriverService; -//import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil; -//import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; -//import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; +//import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; //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; -// @Autowired -// private IDriverService driverService; +// @Autowired +// private IOrderPrivateCarService orderPrivateCarService; // // // @Test // public void test() { -// -// Driver driver = driverService.selectById(14); -// TokenRequest tokenRequest = new TokenRequest(); -// tokenRequest.setAppUserId(driver.getEmpId().toString()); -// tokenRequest.setUserName(driver.getName()); -// tokenRequest.setCertNo(driver.getIdCard()); -// tokenRequest.setPhone(driver.getPhone()); -// TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); -// tradeTerminalInfo.setIp("127.0.0.1"); -// tradeTerminalInfo.setTerminal("1"); -// tradeTerminalInfo.setMac("111-111-111-111"); -// tokenRequest.setTradeTerminalInfo(tradeTerminalInfo); -// tokenRequest.setType("04"); -// try { -// String token = TokenUtil.getToken(tokenRequest); -// System.err.println(token); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// } +// try { +// orderPrivateCarService.queryMoneyInfo(369); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// } //} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/QYTConfig.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/QYTConfig.java index 0277518..c02f51b 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/QYTConfig.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/QYTConfig.java @@ -1,32 +1,24 @@ -//package com.stylefeng.guns.config; -// -//import com.stylefeng.guns.modular.system.util.PushURL; -//import lombok.Data; -//import org.springframework.boot.context.properties.ConfigurationProperties; -//import org.springframework.context.annotation.Configuration; -// -//import javax.annotation.PostConstruct; -// -///** -// * @author zhibing.pu -// * @Date 2025/8/12 13:58 -// */ -//@Data -//@Configuration -//@ConfigurationProperties(prefix = "qyt") -//public class QYTConfig { -// /** -// * 出行网关接口地址 -// */ -// private String chuxingUrl; -// /** -// * 代驾网关接口地址 -// */ -// private String daijiaUrl; -// -// -// @PostConstruct -// public void init() { -// PushURL.setQytConfig(this); -// } -//} +package com.stylefeng.guns.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + + +/** + * @author zhibing.pu + * @Date 2025/8/12 13:58 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "qyt") +public class QYTConfig { + /** + * 出行网关接口地址 + */ + private String chuxingUrl; + /** + * 代驾网关接口地址 + */ + private String daijiaUrl; +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java index 6902066..2337210 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java @@ -399,7 +399,7 @@ System.out.println(tDrivers.toString()); for (TDriver tDriver : tDrivers) { Map<String, Object> d = new HashMap<>(); - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + tDriver.getId()); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + tDriver.getId()); System.out.println(value); if (ToolUtil.isEmpty(value)) { continue; diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java index c40bfb4..a1c072b 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushURL.java @@ -1,11 +1,11 @@ package com.stylefeng.guns.modular.system.util; -//import com.stylefeng.guns.config.QYTConfig; +import com.stylefeng.guns.config.QYTConfig; public class PushURL { -// public static QYTConfig qytConfig; - public static String zull_user_url = "http://10.31.182.11:8010/chuxing"; + public static QYTConfig qytConfig = SpringContextsUtil.getBean(QYTConfig.class); + public static String zull_user_url = qytConfig.getChuxingUrl(); public static String order_push_url = zull_user_url + "/driver-server/base/order/pushOrderState"; public static String driver_auth_url = zull_user_url + "/driver-server/base/driver/sendsms"; public static String withdraw_auth_url = zull_user_url + "/driver-server/base/withdrawal/withdrawalAudit"; @@ -16,8 +16,4 @@ public static String ministry_of_transport_data = "http://120.77.11.218:8868/ministryOfTransport"; public static String ministry_of_transport_ftp = "http://120.77.11.218:8868/ftp"; - -// public static void setQytConfig(QYTConfig qytConfig) { -// PushURL.qytConfig = qytConfig; -// } } diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java new file mode 100644 index 0000000..f3c5065 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java @@ -0,0 +1,682 @@ +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.SpringContextsUtil; +import com.stylefeng.guns.modular.system.util.UUIDUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; +import lombok.extern.slf4j.Slf4j; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author zhibing.pu + * @Date 2025/7/24 9:34 + */ +@Slf4j +public class OrderUtil { + + private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig(); + + + public static void main(String[] args) { + //创建行程 +// CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); +// request.setScene("TRAFFIC"); +// request.setPartnerId("522700"); +// request.setOrderNo("3456789012345678"); +// request.setCustomerId("11448156"); +// request.setDriverId("11448158"); +// request.setSupplierShopId("981100006005951"); +// request.setServiceType(1); +// String travelItinerary = createTravelItinerary(request); +// System.err.println(travelItinerary);//1951088602595872768 + + //修改行程状态 +// ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); +// request.setScene("TRAFFIC"); +// request.setPartnerId("522700"); +// request.setOrderId("1951088602595872768"); +// 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("1951088602595872768"); +// tradeOrderCreateData.setOrderNo("3456789012345678"); +// tradeOrderCreateData.setCustomerId("11448156"); +// tradeOrderCreateData.setPayPartnerId("5400004"); +// tradeOrderCreateData.setPartnerPayId("1951088602595872768"); +// 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("wxcc3c9058e2b294db"); +// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); +// 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("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) + + + // (补偿单)拉起支付 +// 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) { + tradePayOff1Data.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004"); + tradePayOff1Data.setTimeout("72H"); + tradePayOff1Data.setScene("TRAFFIC"); + tradePayOff1Data.setCurrency("RMB"); + tradePayOff1Data.setNeedLoginFlag("N"); + tradePayOff1Data.setAccessMode("APP"); + tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> { + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); + goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); + + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + + TradeRequest request = new TradeRequest<TradePayOff1Data>(); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954795404533583872" : "1911676727023968256"); + request.setAppId(qianYunTongConfig.getAppkey()); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradePayOff1Data); + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/createTravelItinerary"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/modifyTravelItinerary"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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<List<TravelItinerary>> getTravelItineraryList(GetTravelItineraryListRequest request) { + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); + + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getTravelItineraryList"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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<List<TravelItinerary>>(); + listPage.setTotal(total); + listPage.setPageNum(pageNum); + listPage.setPageSize(pageSize); + listPage.setList(travelItineraryList); + return listPage; + } + + /** + * 订单创建及拉起支付 + * + * @param tradeOrderCreateData + * @return + */ + public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { + tradeOrderCreateData.setScene("TRAFFIC"); + tradeOrderCreateData.setPartnerId("522700"); + tradeOrderCreateData.setTimeout("72H"); + tradeOrderCreateData.setOrderAppId("52270015"); + tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); + tradeOrderCreateData.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004"); + tradeOrderCreateData.setCurrency("RMB"); + tradeOrderCreateData.setNeedLoginFlag("N"); + tradeOrderCreateData.setAccessMode("APP"); + tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> { + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); + goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + + TradeRequest request = new TradeRequest<TradeOrderCreateData>(); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954793280550756352" : "1945688132719169536"); + request.setAppId(qianYunTongConfig.getAppkey()); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradeOrderCreateData); + + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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) { + createOrderRequest.setOrderAppId("52270015"); + createOrderRequest.setScene("TRAFFIC"); + createOrderRequest.setPartnerId("522700"); + createOrderRequest.setChannelSource("GRJYCXWXXCX"); + + TradeRequest request = new TradeRequest<CreateOrderRequest>(); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1948289607125864448"); + request.setAppId(qianYunTongConfig.getAppkey()); + request.setConfigVersion(1); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(createOrderRequest); + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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) { + tradePayOffData.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401008" : "5400005"); + tradePayOffData.setTimeout("72H"); + tradePayOffData.setScene("TRAFFIC"); + tradePayOffData.setCurrency("RMB"); + tradePayOffData.setRetUrl(""); + InetAddress inetAddress = null; + try { + inetAddress = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } + String ip = inetAddress.getHostAddress(); + tradePayOffData.setClientIp(ip); + tradePayOffData.setNeedLoginFlag("N"); + tradePayOffData.setAccessMode("APP"); + List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); + PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); + paymentInfoRequest.setPayModeId("501212"); + paymentInfoRequest.setRealFee(tradePayOffData.getTotalFee().toString()); + paymentInfoRequest.setTradeFee(tradePayOffData.getTotalFee().toString()); + paymentInfoRequest.setAccountTyp("501"); + paymentInfoRequests.add(paymentInfoRequest); + tradePayOffData.setPaymentInfos(paymentInfoRequests); + List<GoodsInfo> goodsInfo = new ArrayList<>(); + GoodsInfo goodsInfo1 = new GoodsInfo(); + goodsInfo1.setMerchantCode("B00000905"); + goodsInfo1.setCustId("CB0000004686"); + goodsInfo1.setCustName("证联消费平台交易客户"); + goodsInfo1.setBusinessType("10408"); + goodsInfo1.setAgreementNo("prod".equals(qianYunTongConfig.getActiveProfile()) ? "00000402485377063581755054680461" : "00000000468618354161754464398681"); + goodsInfo1.setProfitSharing("1"); + goodsInfo.add(goodsInfo1); + tradePayOffData.setGoodsInfo(goodsInfo); + + + TradeRequest request = new TradeRequest<TradePayOffData>(); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954794605782913024" : "1774717104844095488"); + request.setAppId(qianYunTongConfig.getAppkey()); + request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 2); + request.setRequestId(UUIDUtil.getRandomCode()); + request.setData(tradePayOffData); + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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) { + getPaymentInfoDataRequest.setPartnerId("5400004"); + + GetPaymentInfoRequest request = new GetPaymentInfoRequest(); + request.setRequstType("POST"); + request.setBusType(1); + request.setData(getPaymentInfoDataRequest); + + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentInfo"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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) { + request.setScene("TRAFFIC"); + request.setMhltiCenterAppId("52270015"); + request.setPayType(4); + request.setPayChannel(6); + request.setIsCompensate(1); + //请求路径 + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentOrder"; + //私钥文件 + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); + //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 + String appKey = qianYunTongConfig.getAppkey();//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(), qianYunTongConfig.getUserName()); + contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus()); + 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")); + } + OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class); + return orderInfo; + } + + +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java new file mode 100644 index 0000000..7ce17dc --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java @@ -0,0 +1,53 @@ +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; + /** + * 支付工单状态 + * 0 待支付 + * 1 部分支付成功 + * 2 支付成功 + * 3 支付失败 + */ + private String status; + /** + * 商品信息 + */ + private List<GoodsInfoRequest> goodsInfo; +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java new file mode 100644 index 0000000..8776fcc --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java @@ -0,0 +1,35 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2025/7/24 10:35 + */ +@Data +public class GoodsInfo { + /** + * 商户号 + */ + private String merchantCode; + /** + * 付款商户号 + */ + private String custId; + /** + * 付款方名称 + */ + private String custName; + /** + *交通场景固定值 + */ + private String businessType; + /** + * 免密支付协议号 + */ + private String agreementNo; + /** + * 分账标识。0:不分账,1:分账 + */ + private String profitSharing; +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java new file mode 100644 index 0000000..5747bf2 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java @@ -0,0 +1,27 @@ +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; + /** + * 支付金额 + */ + private String realFee; + /** + * + */ + private String tradeFee; + /** + * 账户类型 501 + */ + private String accountTyp; +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java new file mode 100644 index 0000000..d817c71 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.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 19:34 + */ +@Data +public class QYTPaymentCallbackData { + /** + * 业务侧行程编号 + */ + private String orderNo; + /** + * 商户单标识。行程单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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SendSmsRequest.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SendSmsRequest.java new file mode 100644 index 0000000..cf44a4d --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/SendSmsRequest.java @@ -0,0 +1,33 @@ +package com.stylefeng.guns.modular.system.util.qianyuntong.model; + +import lombok.Data; + +import java.util.Map; + +/** + * @author zhibing.pu + * @Date 2025/7/2 15:41 + */ +@Data +public class SendSmsRequest { + /** + * 目标地址 + */ + private String destAddress; + /** + * 模板id + */ + private String templateId; + /** + * 参数集合 + */ + private Map<String, String> templateParams; + /** + * 模板中占位符key + */ + private String code; + /** + * 签名SPID + */ + private String spId; +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java new file mode 100644 index 0000000..288fa67 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java @@ -0,0 +1,99 @@ +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; + /** + * 超时时间 + */ + private String timeout; + /** + * 结算信息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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java new file mode 100644 index 0000000..c35c201 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java @@ -0,0 +1,62 @@ +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; + /** + * 超时时间 + */ + private String timeout; + /** + * 场景标识。交通场景传”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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java new file mode 100644 index 0000000..a09e932 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java @@ -0,0 +1,66 @@ +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 TradePayOffData { + /** + * 商户号,由支付中心分配。测试环境5400004 + */ + private String partnerId; + /** + * 超时时间 + */ + private String timeout; + /** + * 场景标识。交通场景传”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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/ManagementQYTTravel/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/ManagementQYTTravel/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/MessagePushTravel/src/main/java/com/sinata/push/config/QYTConfig.java b/MessagePushTravel/src/main/java/com/sinata/push/config/QYTConfig.java index 0cc6281..25de2af 100644 --- a/MessagePushTravel/src/main/java/com/sinata/push/config/QYTConfig.java +++ b/MessagePushTravel/src/main/java/com/sinata/push/config/QYTConfig.java @@ -1,33 +1,33 @@ -//package com.sinata.push.config; -// -//import com.sinata.push.util.echo.NettyServerController; -//import lombok.Data; -//import org.springframework.boot.context.properties.ConfigurationProperties; -//import org.springframework.context.annotation.Configuration; -//import org.springframework.stereotype.Component; -// -//import javax.annotation.PostConstruct; -// -///** -// * @author zhibing.pu -// * @Date 2025/8/12 13:58 -// */ -//@Data -//@Configuration -//@ConfigurationProperties(prefix = "qyt") -//public class QYTConfig { -// /** -// * 出行网关接口地址 -// */ -// private String chuxingUrl; -// /** -// * 代驾网关接口地址 -// */ -// private String daijiaurl; -// -// -// @PostConstruct -// public void init() { -// NettyServerController.setQytConfig(this); -// } -//} +package com.sinata.push.config; + +import com.sinata.push.util.echo.NettyServerController; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @author zhibing.pu + * @Date 2025/8/12 13:58 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "qyt") +public class QYTConfig { + /** + * 出行网关接口地址 + */ + private String chuxingUrl; + /** + * 代驾网关接口地址 + */ + private String daijiaurl; + + + @PostConstruct + public void init() { + NettyServerController.setQytConfig(this); + } +} diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyServerController.java b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyServerController.java index 622171c..cf893ba 100644 --- a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyServerController.java +++ b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/NettyServerController.java @@ -5,7 +5,7 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -//import com.sinata.push.config.QYTConfig; +import com.sinata.push.config.QYTConfig; import com.sinata.push.util.*; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -35,7 +35,7 @@ public static Hashtable<String,String> table; -// public static QYTConfig qytConfig; + public static QYTConfig qytConfig; private RedisUtil redisUtil = SpringUtil.getObject(RedisUtil.class); @@ -51,9 +51,9 @@ } -// public static void setQytConfig(QYTConfig qytConfig) { -// NettyServerController.qytConfig = qytConfig; -// } + public static void setQytConfig(QYTConfig qytConfig) { + NettyServerController.qytConfig = qytConfig; + } public static boolean isdebug = false; public static int i = 0; @@ -207,7 +207,7 @@ params.put("lat", String.valueOf(lat)); params.put("directionAngle", String.valueOf(computeAzimuth)); params.put("altitude", String.valueOf(altitude)); - HttpRequest post = HttpUtil.createPost("http://10.31.182.11:8010/chuxing/driver-server/base/savePosition"); + HttpRequest post = HttpUtil.createPost(qytConfig.getChuxingUrl() + "/driver-server/base/savePosition"); post.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE); post.form(params); HttpResponse execute = post.execute(); @@ -234,7 +234,7 @@ params.put("lat", String.valueOf(lat)); params.put("directionAngle", String.valueOf(computeAzimuth)); params.put("altitude", String.valueOf(altitude)); - HttpRequest post = HttpUtil.createPost("http://10.31.182.11:8010/daijia/driver-server/base/driver/addDriverPosition"); + HttpRequest post = HttpUtil.createPost(qytConfig.getDaijiaurl() + "/driver-server/base/driver/addDriverPosition"); post.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE); post.form(params); HttpResponse execute = post.execute(); @@ -247,7 +247,7 @@ } } - redisUtil.setStrValue(business + "_DRIVER" + driverId, lon + "," + lat, 30);//实时位置存入redis中 + redisUtil.setStrValue(business + ":DRIVER" + driverId, lon + "," + lat, 30);//实时位置存入redis中 }else{ this.sendMsgToClient(ctx, "__error__" + msg.toString()); } 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 28ca927..70e2b5d 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 @@ -158,7 +158,7 @@ List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds) .eq("authState", 2).eq("state", 2)); collect = drivers.stream().map(driver -> { - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(ToolUtil.isNotEmpty(value)){ Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Map<String, Object> map = new HashMap<>(); 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 b12b209..ade3c3c 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 @@ -526,7 +526,7 @@ } orderList = orderPrivateCarService.queryOrderInfo2(orderId, 6, null, null); if (orderInfoWarpper.getState() > 1 && orderInfoWarpper.getDriverId() != 0) { - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderInfoWarpper.getDriverId())); if (value == null || value.equals("")) { if (orderList.isEmpty()) { orderList = orderPrivateCarService.queryOrderInfo2(orderId, 5, "0", "0"); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 646bd0d..259e58a 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -2119,7 +2119,7 @@ OrderCrossCity orderCrossCity = this.selectById(orderId); if(null != orderCrossCity){ //计算预计距离和剩余时间 - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderCrossCity.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderCrossCity.getDriverId())); if (null == value || "".equals(value)) { System.err.println("司机没有上传位置信息"); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml index 8bb3b3d..360eba2 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml @@ -391,7 +391,8 @@ a.abnormalRemark, a.abnormalIntro, a.abnormalImg, - a.companyId + a.companyId, + IF(a.abnormalIntro is not null, 1, 0) as appealButton from t_order_private_car a left join t_driver b on (a.driverId = b.id) left join t_car c on (a.carId = c.id) 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 2cd1697..7cee817 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 @@ -398,7 +398,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); @@ -668,7 +668,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); @@ -869,7 +869,7 @@ JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); //判断时间 if (orderPrivateCar.getTravelTime().getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && orderPrivateCar.getTravelTime().getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(order.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); // TODO: 2023/11/4 已改成计算直线距离 @@ -1279,14 +1279,10 @@ if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ 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)){ - map.put("appealButton", 1); - } if(map.get("abnormalIntro")!=null){ map.put("appealStatus", 1); } - - + if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){ map.put("redPacketMoney", null); map.put("couponMoney", null); @@ -1311,7 +1307,7 @@ return orderTaxiService.queryOrderServer(orderId, uid); } //计算预计距离和剩余时间 - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); if(null == value || "".equals(value)){ System.err.println("司机没有上传位置信息"); @@ -2881,8 +2877,6 @@ break; } if (i == querys.size() + 15) { - orderPrivateCar1.setState(10); - orderPrivateCarMapper.updateById(orderPrivateCar1); pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); orderIds.remove(orderPrivateCar.getId()); } diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 3f2b044..58acd5f 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -54,7 +54,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); @@ -83,7 +83,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); @@ -100,7 +100,7 @@ List<Driver> drivers = driverMapper.queryIdleDriver1(type, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driver.getId())); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driver.getId())); if(null != value){ Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value); double d = Double.valueOf(distance1.get("WGS84")).doubleValue(); 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 6b09421..ac957b0 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 @@ -45,11 +45,13 @@ // 设置邮件主题和内容 helper.setSubject(subject); helper.setText(text); - // 使用显示文件名而非原文件名 - helper.addAttachment( - MimeUtility.encodeWord(displayFileName), // 编码避免中文乱码 - attachment - ); + if(null != attachment){ + // 使用显示文件名而非原文件名 + helper.addAttachment( + MimeUtility.encodeWord(displayFileName), // 编码避免中文乱码 + attachment + ); + } // 发送邮件 diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java index 8774fb2..a356b3c 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java @@ -248,7 +248,7 @@ } //计算预计距离和剩余时间 - String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(driverId)); + String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(driverId)); if (null == value || "".equals(value)) { return; } 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 731bfa2..cbddec4 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 @@ -191,7 +191,7 @@ tradePayOff1Data.setNeedLoginFlag("N"); tradePayOff1Data.setAccessMode("APP"); tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> { - goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setAreaInfo("520100"); @@ -397,7 +397,7 @@ tradeOrderCreateData.setNeedLoginFlag("N"); tradeOrderCreateData.setAccessMode("APP"); tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> { - goodsInfoRequest.setId("981100006005901"); + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setAreaInfo("520100"); goodsInfoRequest.setPayType("0"); diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml index b3d87a1..4d47316 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml @@ -264,7 +264,8 @@ a.abnormalRemark, a.abnormalIntro, a.abnormalImg, - a.companyId + a.companyId, + IF(a.abnormalIntro is not null, 1, 0) as appealButton from t_order_taxi a left join t_driver b on (a.driverId = b.id) left join t_car c on (a.carId = c.id) 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 9b5da04..fd93602 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 @@ -1896,10 +1896,7 @@ if (Integer.valueOf(String.valueOf(map.get("state"))) == 11) { 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)) { - map.put("appealButton", 1); - } + if (map.get("abnormalIntro") != null) { map.put("appealStatus", 1); } @@ -1962,7 +1959,7 @@ //计算预计距离和剩余时间 String value = null; if (null != orderTaxi.getDriverId()) { - value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + orderTaxi.getDriverId()); + value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + orderTaxi.getDriverId()); if (null == value || "".equals(value)) { System.err.println("司机没有上传位置信息"); diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml b/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml index 1e5db7d..51de891 100644 --- a/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml +++ b/UserQYTTravel/guns-admin/src/main/resources/application-dev.yml @@ -125,7 +125,7 @@ spring: mail: host: smtp.163.com - port: 993 + port: 465 username: QYTJT001@163.com password: GPaYdKdsQphDGRJd # 这里是授权码,不是邮箱登录密码 properties: diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml index 0f84cd1..f15256e 100644 --- a/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml +++ b/UserQYTTravel/guns-admin/src/main/resources/application-prod.yml @@ -121,7 +121,7 @@ spring: mail: host: smtp.163.com - port: 993 + port: 465 username: QYTJT001@163.com password: GPaYdKdsQphDGRJd # 这里是授权码,不是邮箱登录密码 properties: diff --git a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml index 1c45ead..24584c8 100644 --- a/UserQYTTravel/guns-admin/src/main/resources/application-test.yml +++ b/UserQYTTravel/guns-admin/src/main/resources/application-test.yml @@ -123,7 +123,7 @@ spring: mail: host: smtp.163.com - port: 993 + port: 465 username: QYTJT001@163.com password: GPaYdKdsQphDGRJd # 这里是授权码,不是邮箱登录密码 properties: diff --git a/UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java index dba4169..5a52f13 100644 --- a/UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java +++ b/UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java @@ -1,59 +1,69 @@ -//package com.stylefeng.guns; -// -//import com.alibaba.fastjson.JSON; -//import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; -//import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; -//import com.stylefeng.guns.modular.system.model.Company; -//import com.stylefeng.guns.modular.system.model.Driver; -//import com.stylefeng.guns.modular.system.model.UserInfo; -//import com.stylefeng.guns.modular.system.service.ICompanyService; -//import com.stylefeng.guns.modular.system.service.IDriverService; -//import com.stylefeng.guns.modular.system.service.IUserInfoService; -//import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; -//import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; -//import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; -//import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; -//import lombok.extern.slf4j.Slf4j; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.springframework.beans.BeanUtils; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.boot.test.context.SpringBootTest; -//import org.springframework.test.context.junit4.SpringRunner; -// -//import java.math.BigDecimal; -//import java.util.List; -// -///** -// * SpringBoot方式启动类 -// * -// * @author stylefeng -// * @Date 2017/5/21 12:06 -// */ -//@Slf4j -//@RunWith(SpringRunner.class) -//@SpringBootTest -//public class GunsApplicationTest { -// -// @Autowired -// private IOrderPrivateCarService orderPrivateCarService; -// -// @Autowired -// private IUserInfoService userInfoService; -// -// @Autowired -// private IDriverService driverService; -// @Autowired -// private ICompanyService companyService; -// @Autowired -// private IPaymentRecordService paymentRecordService; -// -// -// -// -// @Test -// public void test(){ -// String onconUUIDByMobile = UserUtil.getOnconUUIDByMobile("15828353127"); -// System.err.println(onconUUIDByMobile); -// } -//} +package com.stylefeng.guns; + +import com.alibaba.fastjson.JSON; +import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; +import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.model.Company; +import com.stylefeng.guns.modular.system.model.Driver; +import com.stylefeng.guns.modular.system.model.UserInfo; +import com.stylefeng.guns.modular.system.service.ICompanyService; +import com.stylefeng.guns.modular.system.service.IDriverService; +import com.stylefeng.guns.modular.system.service.IUserInfoService; +import com.stylefeng.guns.modular.system.util.EmailUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil; +import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; +import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; +import lombok.extern.slf4j.Slf4j; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.mail.MessagingException; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.util.List; + +/** + * SpringBoot方式启动类 + * + * @author stylefeng + * @Date 2017/5/21 12:06 + */ +@Slf4j +@RunWith(SpringRunner.class) +@SpringBootTest +public class GunsApplicationTest { + + @Autowired + private IOrderPrivateCarService orderPrivateCarService; + + @Autowired + private IUserInfoService userInfoService; + + @Autowired + private IDriverService driverService; + @Autowired + private ICompanyService companyService; + @Autowired + private IPaymentRecordService paymentRecordService; + @Autowired + private EmailUtil emailUtil; + + + + + @Test + public void test(){ + try { + emailUtil.sendEmailWithAttachment("393733352@qq.com", "贵人家园出行-行程单", "请查收您的行程单", null, "贵人家园出行-行程单"); + } catch (MessagingException e) { + throw new RuntimeException(e); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } +} diff --git a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java b/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java index 65bf41b..564070d 100644 --- a/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java +++ b/ZuulQYTTravel/src/main/java/com/sinata/zuul/ZuulApplication.java @@ -1,27 +1,17 @@ package com.sinata.zuul; import com.spring4all.swagger.EnableSwagger2Doc; -import org.apache.http.client.HttpClient; -import org.apache.http.config.SocketConfig; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; import springfox.documentation.swagger.web.SwaggerResource; import springfox.documentation.swagger.web.SwaggerResourcesProvider; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -36,24 +26,6 @@ SpringApplication.run(ZuulApplication.class, args); } - - @Bean //SpringCloud内部服务质检使用服务名调用 - @LoadBalanced - public RestTemplate internalRestTemplate() { - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); - connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build()); - connectionManager.setDefaultMaxPerRoute(100);//最大并发连接 - connectionManager.setMaxTotal(200); // 总的最大连接数 - HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build(); - HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); - httpRequestFactory.setConnectionRequestTimeout(30 * 1000); - httpRequestFactory.setConnectTimeout(30 * 3000); - httpRequestFactory.setReadTimeout(30 * 3000); - RestTemplate restTemplate = new RestTemplate(httpRequestFactory); - restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); - return restTemplate; - } - /** * 配置Swagger -- Gitblit v1.7.1