DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -746,6 +746,7 @@ if(null == position){ position = new DriverPosition(); } position.setDriverId(orderPosition.getDriverId()); position.setPoint(point); mongoTemplate.save(position); //处理业务上的功能 @@ -1831,8 +1832,15 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "当前设备IP地址", name = "ip", required = true, dataType = "String"), @ApiImplicitParam(value = "当前设备mac地址", name = "mac", required = true, dataType = "String"), @ApiImplicitParam(value = "01 证联收银台支付\n" + "\t 04 HOME 页\n" + "\t 06 申请免密签约\n" + "\t 07 商户收银台支付\n" + "\t 08 开户(绑卡)\n" + "\t 09 开通支付账户\n" + "\t 10 打开付款码", name = "type", required = true, dataType = "String"), }) public ResultUtil<String> getZLToken(String ip, String mac, HttpServletRequest request){ public ResultUtil<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if (null == driverId) { @@ -1849,6 +1857,7 @@ tradeTerminalInfo.setTerminal("1"); tradeTerminalInfo.setMac(mac); tokenRequest.setTradeTerminalInfo(tradeTerminalInfo); tokenRequest.setType(type); String token = TokenUtil.getToken(tokenRequest); return ResultUtil.success(token); }catch (Exception e){ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper; import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; @@ -332,6 +331,9 @@ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/queryOrderInfo1") @@ -555,6 +557,10 @@ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/cancleOrder") @@ -572,6 +578,9 @@ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/updatePeopleNum") @ApiOperation(value = "修改人数", tags = {"司机端-服务中"}, notes = "") @@ -589,6 +598,8 @@ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/order/confirmFees1") @@ -724,30 +735,7 @@ } @ResponseBody @PostMapping("/base/order/test") public String test(String phoneA, String phoneB){ try { Map<String, String> map = chinaMobileUtil.midAxbBindSend(phoneA, phoneB, (System.currentTimeMillis() + 86400000)); System.err.println(JSON.toJSONString(map)); }catch (Exception e){ e.printStackTrace(); return ""; } return null; } @ResponseBody @PostMapping("/base/order/test_") public String test(String bindId){ try { Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(bindId, null, null); }catch (Exception e){ e.printStackTrace(); return ""; } return null; } /** @@ -780,6 +768,9 @@ } @ResponseBody @PostMapping("/api/order/queryVoiceBroadcast") @ApiOperation(value = "接单后获取语音播报内容", tags = {"司机端-首页"}, notes = "") @@ -826,6 +817,8 @@ } } @ResponseBody DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -443,6 +443,8 @@ private String promotionUser; private String promotionPhone; private String travelId; public String getPromotionUser() { @@ -1196,7 +1198,15 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } public String getTravelId() { return travelId; } public void setTravelId(String travelId) { this.travelId = travelId; } @Override public String toString() { return "OrderPrivateCar{" + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -16,6 +16,9 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.springframework.beans.factory.annotation.Autowired; @@ -245,7 +248,41 @@ orderPrivateCar.setPromotionPhone(driver1.getPhone()); orderPrivateCar.setPromotionDriverId(promotion); } orderPrivateCar.setPromotion(promotion); if(null == oldDriverId){ UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId()); Company company = companyService.selectById(driver.getCompanyId()); //调三方订单中心创建行程单 CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); request.setOrderNo("PR" + orderPrivateCar.getId()); request.setCustomerId(userInfo.getOnconUUID()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setServiceType(2); String travelItinerary = OrderUtil.createTravelItinerary(request); orderPrivateCar.setTravelId(travelItinerary); }else{ //改派抢单 Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderPrivateCar.getTravelId()); request1.setStatus(orderPrivateCar.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); } this.updateById(orderPrivateCar); //处理摆渡车的情况 @@ -325,7 +362,7 @@ }).start(); } return ResultUtil.success(orderPrivateCar.getId()); } @@ -522,6 +559,20 @@ break; } this.updateById(orderPrivateCar); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Company company = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); request.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); // TODO: 2020/6/5 推送状态 OrderPrivateCar finalOrderPrivateCar = orderPrivateCar; @@ -589,20 +640,33 @@ orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney()); orderPrivateCar.setState(7); this.updateById(orderPrivateCar); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Company company = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(7); request.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1); //回滚司机状态为空闲 if(orderPrivateCar.getSpellSuccess()==0){ Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); }else{ if(orderPrivateCar.getPid()==null){ Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6)); if(number<=0){ Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); } @@ -610,7 +674,6 @@ Integer number = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("pid",orderPrivateCar.getPid()==null?orderPrivateCar.getId():orderPrivateCar.getPid()).lt("state",6)); Integer number1 = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("id",orderPrivateCar.getPid()).lt("state",6)); if(number<=0 && number1<=0){ Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); } @@ -771,12 +834,25 @@ orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney() + orderPrivateCar.getParkMoney() + orderPrivateCar.getRoadTollMoney() + orderPrivateCar.getHolidayFee() + t); orderPrivateCar.setState(7); this.updateById(orderPrivateCar); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderPrivateCar.getTravelId()); request1.setStatus(orderPrivateCar.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1); //回滚司机状态为空闲 Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); driver.setState(2); driverService.updateById(driver); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -146,6 +146,11 @@ */ private Date bindExpireDate; /** * 中台用户ID */ @TableField("onconUUID") private String onconUUID; public Integer getBindDriverId() { return bindDriverId; @@ -354,7 +359,15 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } public String getOnconUUID() { return onconUUID; } public void setOnconUUID(String onconUUID) { this.onconUUID = onconUUID; } @Override public String toString() { return "UserInfo{" + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -16,13 +16,13 @@ import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysReformistMapper; import com.stylefeng.guns.modular.system.model.AdditionalFee; import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.service.IAdditionalFeeService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOpenCityService; import com.stylefeng.guns.modular.system.service.IOrderService; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -99,6 +99,9 @@ // private RedissonClient redissonClient; @Autowired private IOpenCityService openCityService; @Autowired private ICompanyService companyService; @@ -509,10 +512,10 @@ public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception { //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制 if(1 == orderType || 2 == orderType){ // RLock lock = redissonClient.getLock("grabOrder:" + orderId); // if(!lock.tryLock()){ // return ResultUtil.error("抢单失败,请稍后重试"); // } Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1"); if(!lock){ return ResultUtil.error("抢单失败,请稍后重试"); } try { if(1 == orderType){ return orderPrivateCarService.grabOrder(orderId, uid); @@ -523,7 +526,7 @@ }catch (Exception e){ e.printStackTrace(); }finally { // lock.unlock(); redisTemplate.delete("grabOrder:" + orderId); } } switch (orderType){ @@ -1181,6 +1184,21 @@ orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); orderPrivateCar.setState(8); orderPrivateCarService.updateById(orderPrivateCar); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderPrivateCar.getTravelId()); request1.setStatus(orderPrivateCar.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); userId = orderPrivateCar.getUserId(); driverId = orderPrivateCar.getDriverId(); state = orderPrivateCar.getState(); @@ -1210,6 +1228,21 @@ orderTaxi.setPayMoney(orderTaxi.getOrderMoney()); orderTaxi.setState(8); orderTaxiService.updateById(orderTaxi); Driver driver1 = driverService.selectById(orderTaxi.getDriverId()); Company company = companyService.selectById(driver1.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); request.setDriverId(driver1.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); userId = orderTaxi.getUserId(); driverId = orderTaxi.getDriverId(); state = orderTaxi.getState(); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -21,6 +21,8 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import org.apache.commons.lang.time.DateFormatUtils; @@ -188,6 +190,20 @@ orderPrivateCar.setState(11); orderPrivateCar.setReassignNotice(2); orderPrivateCarService.updateById(orderPrivateCar); Company company = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); request.setDriverId(driver.getEmpId().toString()); if(2 == orderPrivateCar.getPromotion()){ Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); //添加已收入明细 // incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney()); @@ -200,7 +216,20 @@ orderTaxi.setState(11); orderTaxi.setReassignNotice(2); orderTaxiService.updateById(orderTaxi); Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderTaxi.getTravelId()); request1.setStatus(orderTaxi.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); //添加已收入明细 // incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney()); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -57,7 +57,7 @@ private Map<String, Timer> taskMap = new HashMap<>();//存储定时推送的定时器 private final String socket_uri = "http://172.21.35.142:6000"; private final String socket_uri = "http://127.0.0.1:6000"; // qyt 改派重新推单 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
New file @@ -0,0 +1,595 @@ package com.stylefeng.guns.modular.system.util.qianyuntong; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.open.common.util.OpenApiClient; import com.open.common.util.SystemParameterNames; import com.stylefeng.guns.modular.system.util.UUIDUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import lombok.extern.slf4j.Slf4j; import java.text.SimpleDateFormat; import java.util.*; /** * @author zhibing.pu * @Date 2025/7/24 9:34 */ @Slf4j public class OrderUtil { public static void main(String[] args) { //创建行程 // CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderNo("01234567890"); // request.setCustomerId("11448156"); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // request.setServiceType(1); // String travelItinerary = createTravelItinerary(request); // System.err.println(travelItinerary);//1950363840206753792 //修改行程状态 // ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderId("1950363840206753792"); // request.setStatus(7); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // Boolean aBoolean = modifyTravelItinerary(request); //订单创建及拉起支付 // TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); // tradeOrderCreateData.setScene("TRAFFIC"); // tradeOrderCreateData.setPartnerId("522700"); // tradeOrderCreateData.setTreatShopId("11448158"); // tradeOrderCreateData.setOrderAppId("52270015"); // tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // tradeOrderCreateData.setCharge(new BigDecimal("0.01")); // tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); // tradeOrderCreateData.setOrderId("1950363840206753792"); // tradeOrderCreateData.setOrderNo("01234567890"); // tradeOrderCreateData.setCustomerId("11448156"); // tradeOrderCreateData.setPayPartnerId("5400004"); // tradeOrderCreateData.setPartnerPayId("1950363840206753792"); // tradeOrderCreateData.setCurrency("RMB"); // tradeOrderCreateData.setTotalFee("1"); // tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradeOrderCreateData.setClientIp("127.0.0.1"); // tradeOrderCreateData.setNeedLoginFlag("N"); // tradeOrderCreateData.setOrderDesc("出行订单支付"); // tradeOrderCreateData.setAccessMode("APP"); // // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); // goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); // goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); // goodsInfoRequest.setBusinessType("10408"); // goodsInfo.add(goodsInfoRequest); // tradeOrderCreateData.setGoodsInfo(goodsInfo); // TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); // System.err.println(tradeOrderCreate); //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) //查询支付单信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); // getPaymentInfoDataRequest.setPartnerId("5400004"); // getPaymentInfoDataRequest.setPartnerPayId("1948685426689200128"); // GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest); // System.err.println(getPaymentInfo); //拉起支付 // TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); // tradePayOff1Data.setPartnerId("5400004"); // tradePayOff1Data.setScene("TRAFFIC"); // tradePayOff1Data.setPartnerPayId("1948685426689200128"); // tradePayOff1Data.setCurrency("RMB"); // tradePayOff1Data.setTotalFee("1"); // tradePayOff1Data.setRetUrl("/home/"); // tradePayOff1Data.setClientIp("127.0.0.1"); // tradePayOff1Data.setNeedLoginFlag("N"); // tradePayOff1Data.setOrderDesc("出行订单支付"); // tradePayOff1Data.setAccessMode("APP"); // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); // goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); // goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); // goodsInfoRequest.setBusinessType("10408"); // goodsInfo.add(goodsInfoRequest); // tradePayOff1Data.setGoodsInfo(goodsInfo); // PayInfo payInfo = tradePayOff1(tradePayOff1Data); // System.err.println(payInfo); //PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe) // (补偿单)拉起支付 // TradePayOffData tradePayOffData = new TradePayOffData(); // tradePayOffData.setPartnerId("5400004"); // tradePayOffData.setScene("TRAFFIC"); // tradePayOffData.setPartnerPayId("1948685426689200128"); // tradePayOffData.setCurrency("RMB"); // tradePayOffData.setTotalFee("1"); // tradePayOffData.setRetUrl("/home/"); // tradePayOffData.setClientIp("127.0.0.1"); // tradePayOffData.setNeedLoginFlag("N"); // tradePayOffData.setOrderDesc("出行订单支付"); // tradePayOffData.setAccessMode("APP"); // List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); // PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); // paymentInfoRequest.setPayModeId("501212"); // paymentInfoRequests.add(paymentInfoRequest); // tradePayOffData.setPaymentInfos(paymentInfoRequests); // List<GoodsInfo> goodsInfo = new ArrayList<>(); // GoodsInfo goodsInfo1 = new GoodsInfo(); // goodsInfo1.setMerchantCode(""); // goodsInfo1.setCustId(""); // goodsInfo1.setCustName(""); // goodsInfo1.setProfitSharing("1"); // goodsInfo.add(goodsInfo1); // tradePayOffData.setGoodsInfo(goodsInfo); // PayInfo payInfo1 = tradePayOff(tradePayOffData); // System.err.println(payInfo1); //订单创建 // CreateOrderRequest createOrderRequest = new CreateOrderRequest(); // createOrderRequest.setTreatShopId("11448158"); // createOrderRequest.setOrderAppId("52270015"); // createOrderRequest.setScene("TRAFFIC"); // createOrderRequest.setPartnerId("522700"); // createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // createOrderRequest.setCharge(new BigDecimal("0.01")); // createOrderRequest.setChannelSource("GRJYCXWXXCX"); // createOrderRequest.setOrderId("1948685426689200128"); // createOrderRequest.setOrderNo("0123456"); // createOrderRequest.setCustomerId("11448156"); // OrderInfo orderInfo = tradeOrderCreate(createOrderRequest); // System.err.println(orderInfo); //行程单列表查询 // GetTravelItineraryListRequest request = new GetTravelItineraryListRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setCustomerId("11448156"); // request.setOrderNo("0123456"); // request.setDriverId("11448158"); // ListPage<TravelItinerary> travelItineraryList = getTravelItineraryList(request); // System.err.println(travelItineraryList); } /** * 拉起支付 * * @param tradePayOff1Data * @return */ public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) { TradeRequest request = new TradeRequest<TradePayOff1Data>(); request.setSceneId("1911676727023968256"); request.setAppId(QianYunTongProperties.appkey); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradePayOff1Data); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【拉起支付】请求地址:" + url); log.info("【拉起支付】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【拉起支付】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if (!"000000".equals(resCode)) { log.error("【拉起支付】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【拉起支付】失败:" + jsonObject.getString("resMsg")); } JSONObject busiResp = jsonObject.getJSONObject("busiResp"); PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class); return payInfo; } /** * 创建行程单 * @param request * @return 行程单ID */ public static String createTravelItinerary(CreateTravelItineraryRequest request){ request.setScene("TRAFFIC"); request.setPartnerId("522700"); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createTravelItinerary"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【创建行程单】请求地址:" + url); log.info("【创建行程单】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【创建行程单】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if(!"000000".equals(resCode)){ log.error("【创建行程单】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【创建行程单】失败:" + jsonObject.getString("resMsg")); } return jsonObject.getString("busiResp"); } /** * 修改行程单 * @param request */ public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request){ request.setScene("TRAFFIC"); request.setPartnerId("522700"); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyTravelItinerary"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【修改行程单】请求地址:" + url); log.info("【修改行程单】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【修改行程单】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if(!"000000".equals(resCode)){ log.error("【修改行程单】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【修改行程单】失败:" + jsonObject.getString("resMsg")); } return true; } /** * 行程单列表查询 * @param request * @return */ public static ListPage<TravelItinerary> getTravelItineraryList(GetTravelItineraryListRequest request){ //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getTravelItineraryList"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【行程单列表查询】请求地址:" + url); log.info("【行程单列表查询】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【行程单列表查询】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if(!"000000".equals(resCode)){ log.error("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); } JSONObject busiResp = jsonObject.getJSONObject("busiResp"); Integer total = busiResp.getInteger("total"); Integer pageNum = busiResp.getInteger("pageNum"); Integer pageSize = busiResp.getInteger("pageSize"); JSONArray list = busiResp.getJSONArray("list"); List<TravelItinerary> travelItineraryList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { TravelItinerary object = list.getObject(i, TravelItinerary.class); travelItineraryList.add(object); } ListPage listPage = new ListPage<TravelItinerary>(); listPage.setTotal(total); listPage.setPageNum(pageNum); listPage.setPageSize(pageSize); listPage.setList(travelItineraryList); return listPage; } /** * 订单创建及拉起支付 * * @param tradeOrderCreateData * @return */ public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { TradeRequest request = new TradeRequest<TradeOrderCreateData>(); request.setSceneId("1945688132719169536"); request.setAppId(QianYunTongProperties.appkey); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradeOrderCreateData); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【订单创建及拉起支付】请求地址:" + url); log.info("【订单创建及拉起支付】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【订单创建及拉起支付】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if (!"000000".equals(resCode)) { log.error("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【订单创建及拉起支付】失败:" + jsonObject.getString("resMsg")); } TradeOrderCreate busiResp = jsonObject.getObject("busiResp", TradeOrderCreate.class); return busiResp; } /** * 订单创建 * * @param createOrderRequest * @return */ public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) { TradeRequest request = new TradeRequest<CreateOrderRequest>(); request.setSceneId(QianYunTongProperties.sceneId); request.setAppId(QianYunTongProperties.appkey); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(createOrderRequest); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【订单创建】请求地址:" + url); log.info("【订单创建】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【订单创建】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if (!"000000".equals(resCode)) { log.error("【订单创建】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【订单创建】失败:" + jsonObject.getString("resMsg")); } JSONObject busiResp = jsonObject.getJSONObject("busiResp"); OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class); return orderInfo; } /** * (补偿单)拉起支付 * * @param tradePayOffData * @return */ public static PayInfo tradePayOff(TradePayOffData tradePayOffData) { TradeRequest request = new TradeRequest<TradePayOffData>(); request.setSceneId("1774717104844095488"); request.setAppId(QianYunTongProperties.appkey); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradePayOffData); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【(补偿单)拉起支付】请求地址:" + url); log.info("【(补偿单)拉起支付】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【(补偿单)拉起支付】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if (!"000000".equals(resCode)) { log.error("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【(补偿单)拉起支付】失败:" + jsonObject.getString("resMsg")); } JSONObject busiResp = jsonObject.getJSONObject("busiResp"); PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class); return payInfo; } /** * 查询支付单信息 * @param getPaymentInfoDataRequest * @return */ public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest){ GetPaymentInfoRequest request = new GetPaymentInfoRequest(); request.setRequstType("POST"); request.setBusType(1); request.setData(getPaymentInfoDataRequest); //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentInfo"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【查询支付单信息】请求地址:" + url); log.info("【查询支付单信息】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【查询支付单信息】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("retCode"); if(!"0".equals(resCode)){ log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); } JSONObject object = jsonObject.getJSONObject("object"); String retCode = object.getString("retCode"); if(!"000000".equals(retCode)){ log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); } GetPaymentInfo payInfo = object.getObject("data", GetPaymentInfo.class); return payInfo; } /** * (补偿单)支付成功通知 * @param request * @return */ public static OrderInfo paymentOrder(PaymentOrderRequest request){ //请求路径 String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentOrder"; //私钥文件 String skprivateKeyFile = QianYunTongProperties.privateKeyPath; //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 String appKey = QianYunTongProperties.appkey;//appkey Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "application/json"); Map<String, Object> contentMap = new HashMap<String, Object>(); Date nowdate = new Date(); SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = date.format(nowdate); String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); contentMap.put("content", new Gson().toJson(request)); log.info("【(补偿单)支付成功通知】请求地址:" + url); log.info("【(补偿单)支付成功通知】请求参数:" + JSON.toJSONString(contentMap)); String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap); log.info("【(补偿单)支付成功通知】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); if(!"0".equals(resCode)){ log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); } OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class); return orderInfo; } } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
@@ -62,6 +62,10 @@ * 向UAAS服务请求到的secret_key */ private String secretKey; /** * 场景编号 */ String sceneId; public QianYunTongConfig getQianYunTongConfig() { @@ -77,6 +81,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); this.sceneId = "1948289607125864448"; } if("test".equals(activeProfile)){ this.setAppkey("10001104"); @@ -90,6 +95,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); this.sceneId = "1948289607125864448"; } if("prod".equals(activeProfile)){ this.setAppkey("10001104"); @@ -103,6 +109,7 @@ this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e"); this.setAccessKey("TYMFTFD5SIIT15DCCUD7"); this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z"); this.sceneId = ""; } return this; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -9,41 +9,6 @@ public interface QianYunTongProperties { /************************************开发/测试start***********************************/ // /** // * appkey // */ // String appkey = "10001104"; // /** // * 私钥地址 // */ // String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; // /** // * 私钥地址 // */ // String privateKeyPath = "/root/server/app/key/private_key_test.pem"; // /** // * 消费者账号 // */ // String userName = "xiaofei"; // /** // * 状态 // * 1:生产环境 // * 2:测试环境 // */ // String status = "1"; // /** // * API地址 // */ // String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; // /** // * 桶名 // */ // String bucketName = "bucuTest0625"; /************************************开发/测试end***********************************/ /************************************生产start***********************************/ /** * appkey */ @@ -51,15 +16,15 @@ /** * 私钥地址 */ // String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem"; String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; /** * 私钥地址 */ String privateKeyPath = "/root/server/app/key/private_key.pem"; // String privateKeyPath = "/root/server/app/key/private_key_test.pem"; /** * 消费者账号 */ String userName = "xiwang"; String userName = "xiaofei"; /** * 状态 * 1:生产环境 @@ -69,11 +34,50 @@ /** * API地址 */ String apiUrl = "http://jjzhongtai.stqcloud.com:10010"; String apiUrl = "https://test-zhongtai.stqcloud.com:10070"; /** * 桶名 */ String bucketName = "qyt20250702"; String bucketName = "bucuTest0625"; /** * 场景编号 */ String sceneId = "1948289607125864448"; /************************************开发/测试end***********************************/ /************************************生产start***********************************/ // /** // * appkey // */ // String appkey = "10001104"; // /** // * 私钥地址 // */ //// String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem"; // /** // * 私钥地址 // */ // String privateKeyPath = "/root/server/app/key/private_key.pem"; // /** // * 消费者账号 // */ // String userName = "xiwang"; // /** // * 状态 // * 1:生产环境 // * 2:测试环境 // */ // String status = "1"; // /** // * API地址 // */ // String apiUrl = "http://jjzhongtai.stqcloud.com:10010"; // /** // * 桶名 // */ // String bucketName = "qyt20250702"; /************************************生产end***********************************/ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
New file @@ -0,0 +1,45 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import lombok.Data; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/24 18:24 */ @Data public class GetPaymentInfo { /** * 支付流水号 */ private String payId; /** * 订单中心行程单ID */ private String partnerPayId; /** * 接入模式:PC H5 APP */ private String accessMode; /** * 用户标识 */ private String customerId; /** * 商户标识 */ private String partnerId; /** * 币种 */ private String currency; /** * 支付总金额 */ private String totalFee; /** * 商品信息 */ private List<GoodsInfoRequest> goodsInfo; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
New file @@ -0,0 +1,15 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import lombok.Data; /** * @author zhibing.pu * @Date 2025/7/24 10:32 */ @Data public class PaymentInfoRequest { /** * 支付模式。此场景下默认传501212(测试和生产一致) */ private String payModeId; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
New file @@ -0,0 +1,41 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import lombok.Data; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/24 19:34 */ @Data public class QYTPaymentCallbackData { /** * 商户单标识。行程单ID */ private String partnerPayId; /** * 支付中心商户号 */ private String partnerId; /** * 支付工单标识 */ private String payId; /** * 支付状态。1.未支付 2已支付 */ private String status; /** * 支付时间,格式:YYYY-MM-DD HH:mm:ss */ private String payTime; /** * 扣款总金额 单位分 */ private String payFee; /** * 支付详细信息 */ private List<QYTPaymentInfoCallback> paymentInfos; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
New file @@ -0,0 +1,95 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import lombok.Data; import java.math.BigDecimal; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/24 10:03 */ @Data public class TradeOrderCreateData { /** * 司机id */ private String treatShopId; /** * 应用场景标识 */ private String orderAppId; /** * 场景标识 */ private String scene; /** * 租户ID。地区行政编码。黔南州传522700 */ private String partnerId; /** * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”} */ private String field1; /** * 订单总金额,单位元 */ private BigDecimal charge; /** * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY */ private String channelSource; /** * 行程单ID */ private String orderId; /** * 业务侧订单号 */ private String orderNo; /** * 下单人ID */ private String customerId; /** * 商户号,由支付中心分配。测试环境5400004 */ private String payPartnerId; /** * 商户单标识。订单中心行程单号,每次请求请保持唯一性。 */ private String partnerPayId; /** * 币种。RMB(人民币);USD(美元) */ private String currency; /** * 交易总金额,单位分。 */ private String totalFee; /** * 前台通知URL地址。 */ private String retUrl; /** * 用户IP */ private String clientIp; /** * Y代表要登录,跳到标准收银台 * N代表不需要登录,跳到无支付帐号收银台 */ private String needLoginFlag; /** * 支付单描述 */ private String orderDesc; /** * 接入模式:PC、H5、APP */ private String accessMode; /** * 支付信息 */ private List<GoodsInfoRequest> goodsInfo; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java
New file @@ -0,0 +1,58 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import lombok.Data; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/24 10:23 */ @Data public class TradePayOff1Data { /** * 商户号,由支付中心分配。测试环境5400004 */ private String partnerId; /** * 场景标识。交通场景传”TRAFFIC” */ private String scene; /** * 商户单标识。订单中心订单号,每次请求请保持唯一性。 */ private String partnerPayId; /** * 币种。RMB(人民币);USD(美元) */ private String currency; /** * 交易总金额,单位分。 */ private String totalFee; /** * 前台通知URL地址。 */ private String retUrl; /** * 用户IP */ private String clientIp; /** * Y代表要登录,跳到标准收银台 * N代表不需要登录,跳到无支付帐号收银台 */ private String needLoginFlag; /** * 支付单描述 */ private String orderDesc; /** * 接入模式:PC、H5、APP */ private String accessMode; /** * 商品描述信息。Json数组 */ private List<GoodsInfoRequest> goodsInfo; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java
New file @@ -0,0 +1,63 @@ package com.stylefeng.guns.modular.system.util.qianyuntong.model; import com.alipay.api.domain.GoodsInfo; import lombok.Data; import java.util.List; /** * @author zhibing.pu * @Date 2025/7/24 10:23 */ @Data public class TradePayOffData { /** * 商户号,由支付中心分配。测试环境5400004 */ private String partnerId; /** * 场景标识。交通场景传”TRAFFIC” */ private String scene; /** * 商户单标识。订单中心订单号,每次请求请保持唯一性。 */ private String partnerPayId; /** * 币种。RMB(人民币);USD(美元) */ private String currency; /** * 交易总金额,单位分。 */ private String totalFee; /** * 前台通知URL地址。 */ private String retUrl; /** * 用户IP */ private String clientIp; /** * Y代表要登录,跳到标准收银台 * N代表不需要登录,跳到无支付帐号收银台 */ private String needLoginFlag; /** * 支付单描述 */ private String orderDesc; /** * 接入模式:PC、H5、APP */ private String accessMode; /** * 支付信息 */ private List<PaymentInfoRequest> paymentInfos; /** * 商品描述信息。Json数组 */ private List<GoodsInfo> goodsInfo; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
New file @@ -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; } DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java
@@ -41,7 +41,6 @@ tokenRequest.setAppId(zhengLianConfig.getAppid()); tokenRequest.setType("04"); String reqBO = JSON.toJSONString(tokenRequest); // 生成对称加密秘钥 String key = ZhengLianUtil.generateKey(16); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java
@@ -58,8 +58,8 @@ this.merchNo = "B00000871"; this.encrpNo = "1055490595"; this.signNo = "1066348524"; this.cer = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\1055490595.cer"; this.sm2 = "C:\\Users\\39373\\Desktop\\UAT-demo-公用\\871_111111.sm2"; this.cer = "C:\\Users\\Administrator\\Desktop\\1055490595.cer"; this.sm2 = "C:\\Users\\Administrator\\Desktop\\871_111111.sm2"; this.password = "111111"; } if("test".equals(activeProfile)){ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@ @Document(collection = "driver_position") public class DriverPosition { @Id private String id; /** * 司机id */ private Integer driverId; /** * 点位 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.stylefeng.guns.modular.system.model.BaseBean; import java.math.BigDecimal; import java.util.Date; @@ -360,6 +359,8 @@ private String promotionUser; private String promotionPhone; private String travelId; public String getPromotionUser() { @@ -945,7 +946,15 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } public String getTravelId() { return travelId; } public void setTravelId(String travelId) { this.travelId = travelId; } @Override public String toString() { return "OrderTaxi{" + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -12,6 +12,9 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest; import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -220,7 +223,38 @@ orderTaxi.setPromotionPhone(driver1.getPhone()); orderTaxi.setPromotionDriverId(promotion); } if(null == oldDriverId){ UserInfo userInfo = userInfoMapper.selectById(orderTaxi.getUserId()); Company company = companyService.selectById(driver.getCompanyId()); //调三方订单中心创建行程单 CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); request.setOrderNo("TA" + orderTaxi.getId()); request.setCustomerId(userInfo.getOnconUUID()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setServiceType(1); String travelItinerary = OrderUtil.createTravelItinerary(request); orderTaxi.setTravelId(travelItinerary); }else{ //改派抢单 Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderTaxi.getTravelId()); request1.setStatus(orderTaxi.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); } this.updateById(orderTaxi); if(orderTaxi.getType() == 2){ @@ -485,6 +519,20 @@ break; } this.updateById(orderTaxi); Driver driver = driverService.selectById(orderTaxi.getDriverId()); Company company = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); request.setDriverId(driver.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); // TODO: 2020/6/5 推送状态 new Thread(new Runnable() { @@ -528,9 +576,22 @@ orderTaxi.setState(7); } this.updateById(orderTaxi); Driver driver = driverService.selectById(orderTaxi.getDriverId()); Company company = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); request.setDriverId(driver.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } request.setSupplierShopId(company.getEnterCode()); OrderUtil.modifyTravelItinerary(request); //回滚司机状态为空闲 Driver driver = driverService.selectById(orderTaxi.getDriverId()); driver.setState(2); driverService.updateById(driver); @@ -568,9 +629,22 @@ orderTaxi.setState(7); } this.updateById(orderTaxi); Driver driver = driverService.selectById(orderTaxi.getDriverId()); Company company1 = companyService.selectById(driver.getCompanyId()); //中台修改订单状态 ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest(); request1.setOrderId(orderTaxi.getTravelId()); request1.setStatus(orderTaxi.getState()); request1.setDriverId(driver.getEmpId().toString()); if(2 == orderTaxi.getPromotion()){ Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request1.setPromoterId(driver1.getEmpId().toString()); } request1.setSupplierShopId(company1.getEnterCode()); OrderUtil.modifyTravelItinerary(request1); //回滚司机状态为空闲 Driver driver = driverService.selectById(orderTaxi.getDriverId()); driver.setState(2); driverService.updateById(driver); DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,11 +1,36 @@ //package com.stylefeng.guns; // //import org.junit.runner.RunWith; //import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.test.context.junit4.SpringRunner; // //@RunWith(SpringRunner.class) //@SpringBootTest //public class GunsApplicationTest { // //} package com.stylefeng.guns; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class GunsApplicationTest { @Autowired private MongoTemplate mongoTemplate; @Test public void test(){ // GeoJsonPoint point = new GeoJsonPoint(new Point(Double.parseDouble("104.043149"), // Double.parseDouble("30.642483"))); // DriverPosition position = mongoTemplate.findOne(Query.query(Criteria.where("driverId") // .is(14)), DriverPosition.class); // if(null == position){ // position = new DriverPosition(); // } // position.setDriverId(14); // position.setPoint(point); // mongoTemplate.save(position); // Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble("104.043149"), Double.parseDouble("30.642483"))).maxDistance(5000)); // List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); // System.err.println(driverPositions); } } MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
@@ -23,7 +23,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { // System.err.println(insocket.getAddress() + ": 收到客户端数据......."); System.err.println(insocket.getAddress() + ": 收到客户端数据......."); } try { // 调用service @@ -39,7 +39,7 @@ protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { // System.err.println(insocket.getAddress() + ": 收到客户端数据......."); System.err.println(insocket.getAddress() + ": 收到客户端数据......."); } try { // 调用service @@ -70,7 +70,7 @@ public void channelActive(final ChannelHandlerContext ctx) throws Exception { InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress(); if(isdebug) { // System.err.println(insocket.getAddress() + ": Connect successful......"); System.err.println(insocket.getAddress() + ": Connect successful......"); } } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -14,12 +14,9 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.GeoResult; import org.springframework.data.geo.GeoResults; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -140,19 +137,15 @@ }) public ResultUtil<List<Map<String, Object>>> queryNearbyCar(String lon, String lat){ //mongodb查询附近5公里范围内的坐标 NearQuery query = NearQuery.near(new Point(Double.parseDouble(lon), Double.parseDouble(lat))); query.query(Query.query(Criteria.where("point"))); query.maxDistance(5000); GeoResults<DriverPosition> results = mongoTemplate.geoNear(query, DriverPosition.class); Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble(lon), Double.parseDouble(lat))).maxDistance(5000)); List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class); List<Map<String, Object>> collect = new ArrayList<>(); if(collect.size() > 0){ List<GeoResult<DriverPosition>> content1 = results.getContent(); List<DriverPosition> positionList = content1.stream().map(GeoResult::getContent).collect(Collectors.toList()); List<Integer> driverIds = positionList.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("driverId", driverIds) if(driverPositions.size() > 0){ List<Integer> driverIds = driverPositions.stream().map(DriverPosition::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().in("id", driverIds) .eq("authState", 2).eq("state", 2)); collect = drivers.stream().map(driver -> { Optional<DriverPosition> driverPosition = positionList.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Optional<DriverPosition> driverPosition = driverPositions.stream().filter(position -> position.getDriverId().equals(driver.getId())).findFirst(); Map<String, Object> map = new HashMap<>(); map.put("driverId", driver.getId()); map.put("name", driver.getName()); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
Diff too large UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -13,1310 +13,1374 @@ */ @TableName("t_order_private_car") public class OrderPrivateCar { /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) @TableField("id") private Integer id; /** * 订单类型(1=普通订单,2=摆渡订单) */ @TableField("type") private Integer type; /** * 跨城订单id(摆渡车专用) */ @TableField("crossCityOrderId") private Integer crossCityOrderId; /** * 摆渡方位(1=跨城起点,2=跨城终点) */ @TableField("place") private Integer place; /** * 用户id */ @TableField("userId") private Integer userId; /** * 服务车型 */ @TableField("serverCarModel") private String serverCarModel; /** * 服务车型id */ @TableField("serverCarModelId") private Integer serverCarModelId; /** * 司机id */ @TableField("driverId") private Integer driverId; /** * 车辆id */ @TableField("carId") private Integer carId; /** * 订单号 */ @TableField("orderNum") private String orderNum; /** * 下单地点经度 */ @TableField("placementLon") private Double placementLon; /** * 下单地点纬度 */ @TableField("placementLat") private Double placementLat; /** * 下单地点 */ @TableField("placementAddress") private String placementAddress; /** * 起点经度 */ @TableField("startLon") private Double startLon; /** * 起点纬度 */ @TableField("startLat") private Double startLat; /** * 起点 */ @TableField("startAddress") private String startAddress; /** * 目的地经度 */ @TableField("endLon") private Double endLon; /** * 目的地纬度 */ @TableField("endLat") private Double endLat; /** * 目的地 */ @TableField("endAddress") private String endAddress; /** * 上车点经度 */ @TableField("boardingLon") private Double boardingLon; /** * 上车点纬度 */ @TableField("boardingLat") private Double boardingLat; /** * 上车地点 */ @TableField("boardingAddress") private String boardingAddress; /** * 上车时间 */ @TableField("boardingTime") private Date boardingTime; /** * 下车点经度 */ @TableField("getoffLon") private Double getoffLon; /** * 下车点纬度 */ @TableField("getoffLat") private Double getoffLat; /** * 下车点 */ @TableField("getoffAddress") private String getoffAddress; /** * 下车时间 */ @TableField("getoffTime") private Date getoffTime; /** * 行驶里程数(米) */ @TableField("mileage") private Double mileage; /** * 支付方式(1=OK平台支付,2=其他方式支付) */ @TableField("payManner") private Integer payManner; /** * 支付方式(1=微信,2=支付宝,3=余额) */ @TableField("payType") private Integer payType; /** * 订单金额 */ @TableField("orderMoney") private Double orderMoney; /** * 起步里程 */ @TableField("startMileage") private Double startMileage; /** * 起步价 */ @TableField("startMoney") private Double startMoney; /** * 里程公里 */ @TableField("mileageKilometers") private Double mileageKilometers; /** * 里程费 */ @TableField("mileageMoney") private Double mileageMoney; /** * 时长分钟 */ @TableField("duration") private Double duration; /** * 时长费 */ @TableField("durationMoney") private Double durationMoney; /** * 等待分钟 */ @TableField("wait") private Double wait; /** * 等待费 */ @TableField("waitMoney") private Double waitMoney; /** * 远途公里 */ @TableField("longDistance") private Double longDistance; /** * 远途费 */ @TableField("longDistanceMoney") private Double longDistanceMoney; /** * 停车费 */ @TableField("parkMoney") private Double parkMoney; /** * 过路费 */ @TableField("roadTollMoney") private Double roadTollMoney; //节假费 @TableField("holidayFee") private Double holidayFee; /** * 红包抵扣金额 */ @TableField("redPacketMoney") private Double redPacketMoney; /** * 优惠券抵扣金额 */ @TableField("couponMoney") private Double couponMoney; /** * 红包id */ @TableField("redPacketId") private Integer redPacketId; /** * 优惠券id */ @TableField("couponId") private Integer couponId; /** * 折扣 */ @TableField("discount") private Double discount; /** * 折扣优惠金额 */ @TableField("discountMoney") private Double discountMoney; /** * 折扣活动id */ @TableField("activityId") private Integer activityId; /** * 打折卡id */ @TableField("taxiCardId") private Integer taxiCardId; /** * 打车卡记录id */ @TableField("userTaxiCardId") private Integer userTaxiCardId; /** * 优惠金额 */ @TableField("discountAmount") private Double discountAmount; /** * 公司id */ @TableField("companyId") private Integer companyId; /** * 支付金额 */ @TableField("payMoney") private Double payMoney; //感谢费 @TableField("thankYouFee") private Double thankYouFee; /** * 是否是代下单(0:否,1:是) */ @TableField("substitute") private Integer substitute; /** * 乘车人姓名 */ @TableField("passengers") private String passengers; /** * 乘车人电话 */ @TableField("passengersPhone") private String passengersPhone; /** * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) */ @TableField("state") private Integer state; /** * 下单时间 */ @TableField("insertTime") private Date insertTime; /** * 出行时间 */ @TableField("travelTime") private Date travelTime; /** * 抢单时间 */ @TableField("snatchOrderTime") private Date snatchOrderTime; /** * 司机点出发时间 */ @TableField("setOutTime") private Date setOutTime; /** * 司机到达预约地点时间 */ @TableField("arriveTime") private Date arriveTime; /** * 开始服务时间 */ @TableField("startServiceTime") private Date startServiceTime; /** * 结束服务时间 */ @TableField("endServiceTime") private Date endServiceTime; /** * 订单类型(1=普通,2=预约) */ @TableField("orderType") private Integer orderType; /** * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) */ @TableField("orderSource") private Integer orderSource; /** * 发票id */ @TableField("invoiceId") private Integer invoiceId; /** * 是否是改派单(1=否,=是) * @return */ @TableField("isReassign") private Integer isReassign; /** * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 */ @TableField("reassignNotice") private Integer reassignNotice; /** * 高德猎鹰轨迹id * @return */ @TableField("trackId") private String trackId; /** * 是否删除(1=否,2=是) */ @TableField("isDelete") private Integer isDelete; /** * 该派前的订单状态 * @return */ @TableField("oldState") private Integer oldState; /** * 移动小号 * @return */ @TableField("telX") private String telX; /** * 绑定小号关系id * @return */ @TableField("bindId") private String bindId; /** * 乘车人数 */ @TableField("peopleNum") private Integer peopleNum; /** * 乘车类型(1=独享,2=一口价,3=拼车) */ @TableField("rideType") private Integer rideType; @TableField("pid") private Integer pid; /** * 是否异常订单 1否 2是 */ @TableField("abnormal") private Integer abnormal; /** * 推广订单 1否 2是 */ @TableField("promotion") private Integer promotion; private String promotionUser; private String promotionPhone; /** * 乘客反馈情况 */ @TableField("abnormalIntro") private String abnormalIntro; /** * 乘客反馈图片 */ @TableField("abnormalImg") private String abnormalImg; private Integer promotionDriverId; private BigDecimal promotionMoney; private Integer totalPeopleNum; /** * 预估里程(米) */ private Double estimateMileage; private Double estimateTime; private Integer spellSuccess; private String splitAllocation; private Integer responsibilityType; private Long promotionActivityId; public Long getPromotionActivityId() { return promotionActivityId; } public void setPromotionActivityId(Long promotionActivityId) { this.promotionActivityId = promotionActivityId; } public String getPromotionUser() { return promotionUser; } public void setPromotionUser(String promotionUser) { this.promotionUser = promotionUser; } public String getPromotionPhone() { return promotionPhone; } public void setPromotionPhone(String promotionPhone) { this.promotionPhone = promotionPhone; } public Integer getResponsibilityType() { return responsibilityType; } public void setResponsibilityType(Integer responsibilityType) { this.responsibilityType = responsibilityType; } public Integer getPromotion() { return promotion; } public void setPromotion(Integer promotion) { this.promotion = promotion; } public Integer getPromotionDriverId() { return promotionDriverId; } public void setPromotionDriverId(Integer promotionDriverId) { this.promotionDriverId = promotionDriverId; } public BigDecimal getPromotionMoney() { return promotionMoney; } public void setPromotionMoney(BigDecimal promotionMoney) { this.promotionMoney = promotionMoney; } public Integer getAbnormal() { return abnormal; } public void setAbnormal(Integer abnormal) { this.abnormal = abnormal; } public String getAbnormalIntro() { return abnormalIntro; } public void setAbnormalIntro(String abnormalIntro) { this.abnormalIntro = abnormalIntro; } public String getAbnormalImg() { return abnormalImg; } public void setAbnormalImg(String abnormalImg) { this.abnormalImg = abnormalImg; } public Integer getSpellSuccess() { return spellSuccess; } public void setSpellSuccess(Integer spellSuccess) { this.spellSuccess = spellSuccess; } public Double getEstimateTime() { return estimateTime; } public void setEstimateTime(Double estimateTime) { this.estimateTime = estimateTime; } public Double getEstimateMileage() { return estimateMileage; } public void setEstimateMileage(Double estimateMileage) { this.estimateMileage = estimateMileage; } public Integer getTotalPeopleNum() { return totalPeopleNum; } public void setTotalPeopleNum(Integer totalPeopleNum) { this.totalPeopleNum = totalPeopleNum; } public Integer getPid() { return pid; } public void setPid(Integer pid) { this.pid = pid; } public Integer getPeopleNum() { return peopleNum; } public void setPeopleNum(Integer peopleNum) { this.peopleNum = peopleNum; } public Integer getRideType() { return rideType; } public void setRideType(Integer rideType) { this.rideType = rideType; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public Integer getCrossCityOrderId() { return crossCityOrderId; } public void setCrossCityOrderId(Integer crossCityOrderId) { this.crossCityOrderId = crossCityOrderId; } public Integer getPlace() { return place; } public void setPlace(Integer place) { this.place = place; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getServerCarModel() { return serverCarModel; } public void setServerCarModel(String serverCarModel) { this.serverCarModel = serverCarModel; } public Integer getServerCarModelId() { return serverCarModelId; } public void setServerCarModelId(Integer serverCarModelId) { this.serverCarModelId = serverCarModelId; } public Integer getDriverId() { return driverId; } public void setDriverId(Integer driverId) { this.driverId = driverId; } public Integer getCarId() { return carId; } public void setCarId(Integer carId) { this.carId = carId; } public String getOrderNum() { return orderNum; } public void setOrderNum(String orderNum) { this.orderNum = orderNum; } public Double getPlacementLon() { return placementLon; } public void setPlacementLon(Double placementLon) { this.placementLon = placementLon; } public Double getPlacementLat() { return placementLat; } public void setPlacementLat(Double placementLat) { this.placementLat = placementLat; } public String getPlacementAddress() { return placementAddress; } public void setPlacementAddress(String placementAddress) { this.placementAddress = placementAddress; } public Double getStartLon() { return startLon; } public void setStartLon(Double startLon) { this.startLon = startLon; } public Double getStartLat() { return startLat; } public void setStartLat(Double startLat) { this.startLat = startLat; } public String getStartAddress() { return startAddress; } public void setStartAddress(String startAddress) { this.startAddress = startAddress; } public Double getEndLon() { return endLon; } public void setEndLon(Double endLon) { this.endLon = endLon; } public Double getEndLat() { return endLat; } public void setEndLat(Double endLat) { this.endLat = endLat; } public String getEndAddress() { return endAddress; } public void setEndAddress(String endAddress) { this.endAddress = endAddress; } public Double getBoardingLon() { return boardingLon; } public void setBoardingLon(Double boardingLon) { this.boardingLon = boardingLon; } public Double getBoardingLat() { return boardingLat; } public void setBoardingLat(Double boardingLat) { this.boardingLat = boardingLat; } public String getBoardingAddress() { return boardingAddress; } public void setBoardingAddress(String boardingAddress) { this.boardingAddress = boardingAddress; } public Date getBoardingTime() { return boardingTime; } public void setBoardingTime(Date boardingTime) { this.boardingTime = boardingTime; } public Double getGetoffLon() { return getoffLon; } public void setGetoffLon(Double getoffLon) { this.getoffLon = getoffLon; } public Double getGetoffLat() { return getoffLat; } public void setGetoffLat(Double getoffLat) { this.getoffLat = getoffLat; } public String getGetoffAddress() { return getoffAddress; } public void setGetoffAddress(String getoffAddress) { this.getoffAddress = getoffAddress; } public Date getGetoffTime() { return getoffTime; } public void setGetoffTime(Date getoffTime) { this.getoffTime = getoffTime; } public Double getMileage() { return mileage; } public void setMileage(Double mileage) { this.mileage = mileage; } public Integer getPayManner() { return payManner; } public void setPayManner(Integer payManner) { this.payManner = payManner; } public Integer getPayType() { return payType; } public void setPayType(Integer payType) { this.payType = payType; } public Double getOrderMoney() { return orderMoney; } public void setOrderMoney(Double orderMoney) { this.orderMoney = orderMoney; } public Double getStartMileage() { return startMileage; } public void setStartMileage(Double startMileage) { this.startMileage = startMileage; } public Double getStartMoney() { return startMoney; } public void setStartMoney(Double startMoney) { this.startMoney = startMoney; } public Double getMileageKilometers() { return mileageKilometers; } public void setMileageKilometers(Double mileageKilometers) { this.mileageKilometers = mileageKilometers; } public Double getMileageMoney() { return mileageMoney; } public void setMileageMoney(Double mileageMoney) { this.mileageMoney = mileageMoney; } public Double getDuration() { return duration; } public void setDuration(Double duration) { this.duration = duration; } public Double getDurationMoney() { return durationMoney; } public void setDurationMoney(Double durationMoney) { this.durationMoney = durationMoney; } public Double getWait() { return wait; } public void setWait(Double wait) { this.wait = wait; } public Double getWaitMoney() { return waitMoney; } public void setWaitMoney(Double waitMoney) { this.waitMoney = waitMoney; } public Double getLongDistance() { return longDistance; } public void setLongDistance(Double longDistance) { this.longDistance = longDistance; } public Double getLongDistanceMoney() { return longDistanceMoney; } public void setLongDistanceMoney(Double longDistanceMoney) { this.longDistanceMoney = longDistanceMoney; } public Double getParkMoney() { return parkMoney; } public void setParkMoney(Double parkMoney) { this.parkMoney = parkMoney; } public Double getRoadTollMoney() { return roadTollMoney; } public void setRoadTollMoney(Double roadTollMoney) { this.roadTollMoney = roadTollMoney; } public Double getHolidayFee() { return holidayFee; } public void setHolidayFee(Double holidayFee) { this.holidayFee = holidayFee; } public Double getRedPacketMoney() { return redPacketMoney; } public void setRedPacketMoney(Double redPacketMoney) { this.redPacketMoney = redPacketMoney; } public Double getCouponMoney() { return couponMoney; } public void setCouponMoney(Double couponMoney) { this.couponMoney = couponMoney; } public Integer getRedPacketId() { return redPacketId; } public void setRedPacketId(Integer redPacketId) { this.redPacketId = redPacketId; } public Integer getCouponId() { return couponId; } public void setCouponId(Integer couponId) { this.couponId = couponId; } public Double getDiscount() { return discount; } public void setDiscount(Double discount) { this.discount = discount; } public Double getDiscountMoney() { return discountMoney; } public void setDiscountMoney(Double discountMoney) { this.discountMoney = discountMoney; } public Integer getActivityId() { return activityId; } public void setActivityId(Integer activityId) { this.activityId = activityId; } public Integer getTaxiCardId() { return taxiCardId; } public void setTaxiCardId(Integer taxiCardId) { this.taxiCardId = taxiCardId; } public Integer getUserTaxiCardId() { return userTaxiCardId; } public void setUserTaxiCardId(Integer userTaxiCardId) { this.userTaxiCardId = userTaxiCardId; } public Double getDiscountAmount() { return discountAmount; } public void setDiscountAmount(Double discountAmount) { this.discountAmount = discountAmount; } public Integer getCompanyId() { return companyId; } public void setCompanyId(Integer companyId) { this.companyId = companyId; } public Double getPayMoney() { return payMoney; } public void setPayMoney(Double payMoney) { this.payMoney = payMoney; } public Double getThankYouFee() { return thankYouFee; } public void setThankYouFee(Double thankYouFee) { this.thankYouFee = thankYouFee; } public Integer getSubstitute() { return substitute; } public void setSubstitute(Integer substitute) { this.substitute = substitute; } public String getPassengers() { return passengers; } public void setPassengers(String passengers) { this.passengers = passengers; } public String getPassengersPhone() { return passengersPhone; } public void setPassengersPhone(String passengersPhone) { this.passengersPhone = passengersPhone; } public Integer getState() { return state; } public void setState(Integer state) { this.state = state; } public Date getInsertTime() { return insertTime; } public void setInsertTime(Date insertTime) { this.insertTime = insertTime; } public Date getTravelTime() { return travelTime; } public void setTravelTime(Date travelTime) { this.travelTime = travelTime; } public Date getSnatchOrderTime() { return snatchOrderTime; } public void setSnatchOrderTime(Date snatchOrderTime) { this.snatchOrderTime = snatchOrderTime; } public Date getSetOutTime() { return setOutTime; } public void setSetOutTime(Date setOutTime) { this.setOutTime = setOutTime; } public Date getArriveTime() { return arriveTime; } public void setArriveTime(Date arriveTime) { this.arriveTime = arriveTime; } public Date getStartServiceTime() { return startServiceTime; } public void setStartServiceTime(Date startServiceTime) { this.startServiceTime = startServiceTime; } public Date getEndServiceTime() { return endServiceTime; } public void setEndServiceTime(Date endServiceTime) { this.endServiceTime = endServiceTime; } public Integer getOrderType() { return orderType; } public void setOrderType(Integer orderType) { this.orderType = orderType; } public Integer getOrderSource() { return orderSource; } public void setOrderSource(Integer orderSource) { this.orderSource = orderSource; } public Integer getInvoiceId() { return invoiceId; } public void setInvoiceId(Integer invoiceId) { this.invoiceId = invoiceId; } public Integer getIsReassign() { return isReassign; } public void setIsReassign(Integer isReassign) { this.isReassign = isReassign; } public Integer getReassignNotice() { return reassignNotice; } public void setReassignNotice(Integer reassignNotice) { this.reassignNotice = reassignNotice; } public String getTrackId() { return trackId; } public void setTrackId(String trackId) { this.trackId = trackId; } public Integer getIsDelete() { return isDelete; } public void setIsDelete(Integer isDelete) { this.isDelete = isDelete; } public Integer getOldState() { return oldState; } public void setOldState(Integer oldState) { this.oldState = oldState; } public String getTelX() { return telX; } public void setTelX(String telX) { this.telX = telX; } public String getBindId() { return bindId; } public void setBindId(String bindId) { this.bindId = bindId; } public String getSplitAllocation() { return splitAllocation; } public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } @Override public String toString() { return "OrderPrivateCar{" + "id=" + id + ", type=" + type + ", crossCityOrderId=" + crossCityOrderId + ", place=" + place + ", userId=" + userId + ", serverCarModelId=" + serverCarModelId + ", driverId=" + driverId + ", carId=" + carId + ", orderNum='" + orderNum + '\'' + ", placementLon=" + placementLon + ", placementLat=" + placementLat + ", placementAddress='" + placementAddress + '\'' + ", startLon=" + startLon + ", startLat=" + startLat + ", startAddress='" + startAddress + '\'' + ", endLon=" + endLon + ", endLat=" + endLat + ", endAddress='" + endAddress + '\'' + ", boardingLon=" + boardingLon + ", boardingLat=" + boardingLat + ", boardingAddress='" + boardingAddress + '\'' + ", boardingTime=" + boardingTime + ", getoffLon=" + getoffLon + ", getoffLat=" + getoffLat + ", getoffAddress='" + getoffAddress + '\'' + ", getoffTime=" + getoffTime + ", mileage=" + mileage + ", payManner=" + payManner + ", payType=" + payType + ", orderMoney=" + orderMoney + ", startMileage=" + startMileage + ", startMoney=" + startMoney + ", mileageKilometers=" + mileageKilometers + ", mileageMoney=" + mileageMoney + ", duration=" + duration + ", durationMoney=" + durationMoney + ", wait=" + wait + ", waitMoney=" + waitMoney + ", longDistance=" + longDistance + ", longDistanceMoney=" + longDistanceMoney + ", parkMoney=" + parkMoney + ", roadTollMoney=" + roadTollMoney + ", redPacketMoney=" + redPacketMoney + ", couponMoney=" + couponMoney + ", redPacketId=" + redPacketId + ", couponId=" + couponId + ", discount=" + discount + ", discountMoney=" + discountMoney + ", activityId=" + activityId + ", companyId=" + companyId + ", payMoney=" + payMoney + ", substitute=" + substitute + ", passengers='" + passengers + '\'' + ", passengersPhone='" + passengersPhone + '\'' + ", state=" + state + ", insertTime=" + insertTime + ", travelTime=" + travelTime + ", snatchOrderTime=" + snatchOrderTime + ", setOutTime=" + setOutTime + ", arriveTime=" + arriveTime + ", startServiceTime=" + startServiceTime + ", endServiceTime=" + endServiceTime + ", orderType=" + orderType + ", orderSource=" + orderSource + ", invoiceId=" + invoiceId + ", isReassign=" + isReassign + ", reassignNotice=" + reassignNotice + ", trackId='" + trackId + '\'' + ", isDelete=" + isDelete + ", oldState=" + oldState + ", telX='" + telX + '\'' + ", bindId='" + bindId + '\'' + '}'; } } /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) @TableField("id") private Integer id; /** * 订单类型(1=普通订单,2=摆渡订单) */ @TableField("type") private Integer type; /** * 跨城订单id(摆渡车专用) */ @TableField("crossCityOrderId") private Integer crossCityOrderId; /** * 摆渡方位(1=跨城起点,2=跨城终点) */ @TableField("place") private Integer place; /** * 用户id */ @TableField("userId") private Integer userId; /** * 服务车型 */ @TableField("serverCarModel") private String serverCarModel; /** * 服务车型id */ @TableField("serverCarModelId") private Integer serverCarModelId; /** * 司机id */ @TableField("driverId") private Integer driverId; /** * 车辆id */ @TableField("carId") private Integer carId; /** * 订单号 */ @TableField("orderNum") private String orderNum; /** * 下单地点经度 */ @TableField("placementLon") private Double placementLon; /** * 下单地点纬度 */ @TableField("placementLat") private Double placementLat; /** * 下单地点 */ @TableField("placementAddress") private String placementAddress; /** * 起点经度 */ @TableField("startLon") private Double startLon; /** * 起点纬度 */ @TableField("startLat") private Double startLat; /** * 起点 */ @TableField("startAddress") private String startAddress; /** * 目的地经度 */ @TableField("endLon") private Double endLon; /** * 目的地纬度 */ @TableField("endLat") private Double endLat; /** * 目的地 */ @TableField("endAddress") private String endAddress; /** * 上车点经度 */ @TableField("boardingLon") private Double boardingLon; /** * 上车点纬度 */ @TableField("boardingLat") private Double boardingLat; /** * 上车地点 */ @TableField("boardingAddress") private String boardingAddress; /** * 上车时间 */ @TableField("boardingTime") private Date boardingTime; /** * 下车点经度 */ @TableField("getoffLon") private Double getoffLon; /** * 下车点纬度 */ @TableField("getoffLat") private Double getoffLat; /** * 下车点 */ @TableField("getoffAddress") private String getoffAddress; /** * 下车时间 */ @TableField("getoffTime") private Date getoffTime; /** * 行驶里程数(米) */ @TableField("mileage") private Double mileage; /** * 支付方式(1=OK平台支付,2=其他方式支付) */ @TableField("payManner") private Integer payManner; /** * 支付方式(1=微信,2=支付宝,3=余额) */ @TableField("payType") private Integer payType; /** * 订单金额 */ @TableField("orderMoney") private Double orderMoney; /** * 起步里程 */ @TableField("startMileage") private Double startMileage; /** * 起步价 */ @TableField("startMoney") private Double startMoney; /** * 里程公里 */ @TableField("mileageKilometers") private Double mileageKilometers; /** * 里程费 */ @TableField("mileageMoney") private Double mileageMoney; /** * 时长分钟 */ @TableField("duration") private Double duration; /** * 时长费 */ @TableField("durationMoney") private Double durationMoney; /** * 等待分钟 */ @TableField("wait") private Double wait; /** * 等待费 */ @TableField("waitMoney") private Double waitMoney; /** * 远途公里 */ @TableField("longDistance") private Double longDistance; /** * 远途费 */ @TableField("longDistanceMoney") private Double longDistanceMoney; /** * 停车费 */ @TableField("parkMoney") private Double parkMoney; /** * 过路费 */ @TableField("roadTollMoney") private Double roadTollMoney; //节假费 @TableField("holidayFee") private Double holidayFee; /** * 红包抵扣金额 */ @TableField("redPacketMoney") private Double redPacketMoney; /** * 优惠券抵扣金额 */ @TableField("couponMoney") private Double couponMoney; /** * 红包id */ @TableField("redPacketId") private Integer redPacketId; /** * 优惠券id */ @TableField("couponId") private Integer couponId; /** * 折扣 */ @TableField("discount") private Double discount; /** * 折扣优惠金额 */ @TableField("discountMoney") private Double discountMoney; /** * 折扣活动id */ @TableField("activityId") private Integer activityId; /** * 打折卡id */ @TableField("taxiCardId") private Integer taxiCardId; /** * 打车卡记录id */ @TableField("userTaxiCardId") private Integer userTaxiCardId; /** * 优惠金额 */ @TableField("discountAmount") private Double discountAmount; /** * 公司id */ @TableField("companyId") private Integer companyId; /** * 支付金额 */ @TableField("payMoney") private Double payMoney; //感谢费 @TableField("thankYouFee") private Double thankYouFee; /** * 是否是代下单(0:否,1:是) */ @TableField("substitute") private Integer substitute; /** * 乘车人姓名 */ @TableField("passengers") private String passengers; /** * 乘车人电话 */ @TableField("passengersPhone") private String passengersPhone; /** * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) */ @TableField("state") private Integer state; /** * 下单时间 */ @TableField("insertTime") private Date insertTime; /** * 出行时间 */ @TableField("travelTime") private Date travelTime; /** * 抢单时间 */ @TableField("snatchOrderTime") private Date snatchOrderTime; /** * 司机点出发时间 */ @TableField("setOutTime") private Date setOutTime; /** * 司机到达预约地点时间 */ @TableField("arriveTime") private Date arriveTime; /** * 开始服务时间 */ @TableField("startServiceTime") private Date startServiceTime; /** * 结束服务时间 */ @TableField("endServiceTime") private Date endServiceTime; /** * 订单类型(1=普通,2=预约) */ @TableField("orderType") private Integer orderType; /** * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) */ @TableField("orderSource") private Integer orderSource; /** * 发票id */ @TableField("invoiceId") private Integer invoiceId; /** * 是否是改派单(1=否,=是) * * @return */ @TableField("isReassign") private Integer isReassign; /** * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 */ @TableField("reassignNotice") private Integer reassignNotice; /** * 高德猎鹰轨迹id * * @return */ @TableField("trackId") private String trackId; /** * 是否删除(1=否,2=是) */ @TableField("isDelete") private Integer isDelete; /** * 该派前的订单状态 * * @return */ @TableField("oldState") private Integer oldState; /** * 移动小号 * * @return */ @TableField("telX") private String telX; /** * 绑定小号关系id * * @return */ @TableField("bindId") private String bindId; /** * 乘车人数 */ @TableField("peopleNum") private Integer peopleNum; /** * 乘车类型(1=独享,2=一口价,3=拼车) */ @TableField("rideType") private Integer rideType; @TableField("pid") private Integer pid; /** * 是否异常订单 1否 2是 */ @TableField("abnormal") private Integer abnormal; /** * 推广订单 1否 2是 */ @TableField("promotion") private Integer promotion; private String promotionUser; private String promotionPhone; /** * 乘客反馈情况 */ @TableField("abnormalIntro") private String abnormalIntro; /** * 乘客反馈图片 */ @TableField("abnormalImg") private String abnormalImg; private Integer promotionDriverId; private BigDecimal promotionMoney; private Integer totalPeopleNum; /** * 预估里程(米) */ private Double estimateMileage; private Double estimateTime; private Integer spellSuccess; private String splitAllocation; private Integer responsibilityType; private Long promotionActivityId; /** * 中台行程id */ private String travelId; /** * 中台是否已创建订单(0=否,1=是) */ private Integer isCreated; /** * 是否是追缴单(0=否,1=是) */ private Integer recoveryOrder; public String getPromotionUser() { return promotionUser; } public void setPromotionUser(String promotionUser) { this.promotionUser = promotionUser; } public String getPromotionPhone() { return promotionPhone; } public void setPromotionPhone(String promotionPhone) { this.promotionPhone = promotionPhone; } public Integer getResponsibilityType() { return responsibilityType; } public void setResponsibilityType(Integer responsibilityType) { this.responsibilityType = responsibilityType; } public Integer getPromotion() { return promotion; } public void setPromotion(Integer promotion) { this.promotion = promotion; } public Integer getPromotionDriverId() { return promotionDriverId; } public void setPromotionDriverId(Integer promotionDriverId) { this.promotionDriverId = promotionDriverId; } public BigDecimal getPromotionMoney() { return promotionMoney; } public void setPromotionMoney(BigDecimal promotionMoney) { this.promotionMoney = promotionMoney; } public Integer getAbnormal() { return abnormal; } public void setAbnormal(Integer abnormal) { this.abnormal = abnormal; } public String getAbnormalIntro() { return abnormalIntro; } public void setAbnormalIntro(String abnormalIntro) { this.abnormalIntro = abnormalIntro; } public String getAbnormalImg() { return abnormalImg; } public void setAbnormalImg(String abnormalImg) { this.abnormalImg = abnormalImg; } public Integer getSpellSuccess() { return spellSuccess; } public void setSpellSuccess(Integer spellSuccess) { this.spellSuccess = spellSuccess; } public Double getEstimateTime() { return estimateTime; } public void setEstimateTime(Double estimateTime) { this.estimateTime = estimateTime; } public Double getEstimateMileage() { return estimateMileage; } public void setEstimateMileage(Double estimateMileage) { this.estimateMileage = estimateMileage; } public Integer getTotalPeopleNum() { return totalPeopleNum; } public void setTotalPeopleNum(Integer totalPeopleNum) { this.totalPeopleNum = totalPeopleNum; } public Integer getPid() { return pid; } public void setPid(Integer pid) { this.pid = pid; } public Integer getPeopleNum() { return peopleNum; } public void setPeopleNum(Integer peopleNum) { this.peopleNum = peopleNum; } public Integer getRideType() { return rideType; } public void setRideType(Integer rideType) { this.rideType = rideType; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } public Integer getCrossCityOrderId() { return crossCityOrderId; } public void setCrossCityOrderId(Integer crossCityOrderId) { this.crossCityOrderId = crossCityOrderId; } public Integer getPlace() { return place; } public void setPlace(Integer place) { this.place = place; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getServerCarModel() { return serverCarModel; } public void setServerCarModel(String serverCarModel) { this.serverCarModel = serverCarModel; } public Integer getServerCarModelId() { return serverCarModelId; } public void setServerCarModelId(Integer serverCarModelId) { this.serverCarModelId = serverCarModelId; } public Integer getDriverId() { return driverId; } public void setDriverId(Integer driverId) { this.driverId = driverId; } public Integer getCarId() { return carId; } public void setCarId(Integer carId) { this.carId = carId; } public String getOrderNum() { return orderNum; } public void setOrderNum(String orderNum) { this.orderNum = orderNum; } public Double getPlacementLon() { return placementLon; } public void setPlacementLon(Double placementLon) { this.placementLon = placementLon; } public Double getPlacementLat() { return placementLat; } public void setPlacementLat(Double placementLat) { this.placementLat = placementLat; } public String getPlacementAddress() { return placementAddress; } public void setPlacementAddress(String placementAddress) { this.placementAddress = placementAddress; } public Double getStartLon() { return startLon; } public void setStartLon(Double startLon) { this.startLon = startLon; } public Double getStartLat() { return startLat; } public void setStartLat(Double startLat) { this.startLat = startLat; } public String getStartAddress() { return startAddress; } public void setStartAddress(String startAddress) { this.startAddress = startAddress; } public Double getEndLon() { return endLon; } public void setEndLon(Double endLon) { this.endLon = endLon; } public Double getEndLat() { return endLat; } public void setEndLat(Double endLat) { this.endLat = endLat; } public String getEndAddress() { return endAddress; } public void setEndAddress(String endAddress) { this.endAddress = endAddress; } public Double getBoardingLon() { return boardingLon; } public void setBoardingLon(Double boardingLon) { this.boardingLon = boardingLon; } public Double getBoardingLat() { return boardingLat; } public void setBoardingLat(Double boardingLat) { this.boardingLat = boardingLat; } public String getBoardingAddress() { return boardingAddress; } public void setBoardingAddress(String boardingAddress) { this.boardingAddress = boardingAddress; } public Date getBoardingTime() { return boardingTime; } public void setBoardingTime(Date boardingTime) { this.boardingTime = boardingTime; } public Double getGetoffLon() { return getoffLon; } public void setGetoffLon(Double getoffLon) { this.getoffLon = getoffLon; } public Double getGetoffLat() { return getoffLat; } public void setGetoffLat(Double getoffLat) { this.getoffLat = getoffLat; } public String getGetoffAddress() { return getoffAddress; } public void setGetoffAddress(String getoffAddress) { this.getoffAddress = getoffAddress; } public Date getGetoffTime() { return getoffTime; } public void setGetoffTime(Date getoffTime) { this.getoffTime = getoffTime; } public Double getMileage() { return mileage; } public void setMileage(Double mileage) { this.mileage = mileage; } public Integer getPayManner() { return payManner; } public void setPayManner(Integer payManner) { this.payManner = payManner; } public Integer getPayType() { return payType; } public void setPayType(Integer payType) { this.payType = payType; } public Double getOrderMoney() { return orderMoney; } public void setOrderMoney(Double orderMoney) { this.orderMoney = orderMoney; } public Double getStartMileage() { return startMileage; } public void setStartMileage(Double startMileage) { this.startMileage = startMileage; } public Double getStartMoney() { return startMoney; } public void setStartMoney(Double startMoney) { this.startMoney = startMoney; } public Double getMileageKilometers() { return mileageKilometers; } public void setMileageKilometers(Double mileageKilometers) { this.mileageKilometers = mileageKilometers; } public Double getMileageMoney() { return mileageMoney; } public void setMileageMoney(Double mileageMoney) { this.mileageMoney = mileageMoney; } public Double getDuration() { return duration; } public void setDuration(Double duration) { this.duration = duration; } public Double getDurationMoney() { return durationMoney; } public void setDurationMoney(Double durationMoney) { this.durationMoney = durationMoney; } public Double getWait() { return wait; } public void setWait(Double wait) { this.wait = wait; } public Double getWaitMoney() { return waitMoney; } public void setWaitMoney(Double waitMoney) { this.waitMoney = waitMoney; } public Double getLongDistance() { return longDistance; } public void setLongDistance(Double longDistance) { this.longDistance = longDistance; } public Double getLongDistanceMoney() { return longDistanceMoney; } public void setLongDistanceMoney(Double longDistanceMoney) { this.longDistanceMoney = longDistanceMoney; } public Double getParkMoney() { return parkMoney; } public void setParkMoney(Double parkMoney) { this.parkMoney = parkMoney; } public Double getRoadTollMoney() { return roadTollMoney; } public void setRoadTollMoney(Double roadTollMoney) { this.roadTollMoney = roadTollMoney; } public Double getHolidayFee() { return holidayFee; } public void setHolidayFee(Double holidayFee) { this.holidayFee = holidayFee; } public Double getRedPacketMoney() { return redPacketMoney; } public void setRedPacketMoney(Double redPacketMoney) { this.redPacketMoney = redPacketMoney; } public Double getCouponMoney() { return couponMoney; } public void setCouponMoney(Double couponMoney) { this.couponMoney = couponMoney; } public Integer getRedPacketId() { return redPacketId; } public void setRedPacketId(Integer redPacketId) { this.redPacketId = redPacketId; } public Integer getCouponId() { return couponId; } public void setCouponId(Integer couponId) { this.couponId = couponId; } public Double getDiscount() { return discount; } public void setDiscount(Double discount) { this.discount = discount; } public Double getDiscountMoney() { return discountMoney; } public void setDiscountMoney(Double discountMoney) { this.discountMoney = discountMoney; } public Integer getActivityId() { return activityId; } public void setActivityId(Integer activityId) { this.activityId = activityId; } public Integer getTaxiCardId() { return taxiCardId; } public void setTaxiCardId(Integer taxiCardId) { this.taxiCardId = taxiCardId; } public Integer getUserTaxiCardId() { return userTaxiCardId; } public void setUserTaxiCardId(Integer userTaxiCardId) { this.userTaxiCardId = userTaxiCardId; } public Double getDiscountAmount() { return discountAmount; } public void setDiscountAmount(Double discountAmount) { this.discountAmount = discountAmount; } public Integer getCompanyId() { return companyId; } public void setCompanyId(Integer companyId) { this.companyId = companyId; } public Double getPayMoney() { return payMoney; } public void setPayMoney(Double payMoney) { this.payMoney = payMoney; } public Double getThankYouFee() { return thankYouFee; } public void setThankYouFee(Double thankYouFee) { this.thankYouFee = thankYouFee; } public Integer getSubstitute() { return substitute; } public void setSubstitute(Integer substitute) { this.substitute = substitute; } public String getPassengers() { return passengers; } public void setPassengers(String passengers) { this.passengers = passengers; } public String getPassengersPhone() { return passengersPhone; } public void setPassengersPhone(String passengersPhone) { this.passengersPhone = passengersPhone; } public Integer getState() { return state; } public void setState(Integer state) { this.state = state; } public Date getInsertTime() { return insertTime; } public void setInsertTime(Date insertTime) { this.insertTime = insertTime; } public Date getTravelTime() { return travelTime; } public void setTravelTime(Date travelTime) { this.travelTime = travelTime; } public Date getSnatchOrderTime() { return snatchOrderTime; } public void setSnatchOrderTime(Date snatchOrderTime) { this.snatchOrderTime = snatchOrderTime; } public Date getSetOutTime() { return setOutTime; } public void setSetOutTime(Date setOutTime) { this.setOutTime = setOutTime; } public Date getArriveTime() { return arriveTime; } public void setArriveTime(Date arriveTime) { this.arriveTime = arriveTime; } public Date getStartServiceTime() { return startServiceTime; } public void setStartServiceTime(Date startServiceTime) { this.startServiceTime = startServiceTime; } public Date getEndServiceTime() { return endServiceTime; } public void setEndServiceTime(Date endServiceTime) { this.endServiceTime = endServiceTime; } public Integer getOrderType() { return orderType; } public void setOrderType(Integer orderType) { this.orderType = orderType; } public Integer getOrderSource() { return orderSource; } public void setOrderSource(Integer orderSource) { this.orderSource = orderSource; } public Integer getInvoiceId() { return invoiceId; } public void setInvoiceId(Integer invoiceId) { this.invoiceId = invoiceId; } public Integer getIsReassign() { return isReassign; } public void setIsReassign(Integer isReassign) { this.isReassign = isReassign; } public Integer getReassignNotice() { return reassignNotice; } public void setReassignNotice(Integer reassignNotice) { this.reassignNotice = reassignNotice; } public String getTrackId() { return trackId; } public void setTrackId(String trackId) { this.trackId = trackId; } public Integer getIsDelete() { return isDelete; } public void setIsDelete(Integer isDelete) { this.isDelete = isDelete; } public Integer getOldState() { return oldState; } public void setOldState(Integer oldState) { this.oldState = oldState; } public String getTelX() { return telX; } public void setTelX(String telX) { this.telX = telX; } public String getBindId() { return bindId; } public void setBindId(String bindId) { this.bindId = bindId; } public String getSplitAllocation() { return splitAllocation; } public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } public String getTravelId() { return travelId; } public void setTravelId(String travelId) { this.travelId = travelId; } public Integer getIsCreated() { return isCreated; } public void setIsCreated(Integer isCreated) { this.isCreated = isCreated; } public Integer getRecoveryOrder() { return recoveryOrder; } public void setRecoveryOrder(Integer recoveryOrder) { this.recoveryOrder = recoveryOrder; } public Long getPromotionActivityId() { return promotionActivityId; } public void setPromotionActivityId(Long promotionActivityId) { this.promotionActivityId = promotionActivityId; } @Override public String toString() { return "OrderPrivateCar{" + "id=" + id + ", type=" + type + ", crossCityOrderId=" + crossCityOrderId + ", place=" + place + ", userId=" + userId + ", serverCarModel='" + serverCarModel + '\'' + ", serverCarModelId=" + serverCarModelId + ", driverId=" + driverId + ", carId=" + carId + ", orderNum='" + orderNum + '\'' + ", placementLon=" + placementLon + ", placementLat=" + placementLat + ", placementAddress='" + placementAddress + '\'' + ", startLon=" + startLon + ", startLat=" + startLat + ", startAddress='" + startAddress + '\'' + ", endLon=" + endLon + ", endLat=" + endLat + ", endAddress='" + endAddress + '\'' + ", boardingLon=" + boardingLon + ", boardingLat=" + boardingLat + ", boardingAddress='" + boardingAddress + '\'' + ", boardingTime=" + boardingTime + ", getoffLon=" + getoffLon + ", getoffLat=" + getoffLat + ", getoffAddress='" + getoffAddress + '\'' + ", getoffTime=" + getoffTime + ", mileage=" + mileage + ", payManner=" + payManner + ", payType=" + payType + ", orderMoney=" + orderMoney + ", startMileage=" + startMileage + ", startMoney=" + startMoney + ", mileageKilometers=" + mileageKilometers + ", mileageMoney=" + mileageMoney + ", duration=" + duration + ", durationMoney=" + durationMoney + ", wait=" + wait + ", waitMoney=" + waitMoney + ", longDistance=" + longDistance + ", longDistanceMoney=" + longDistanceMoney + ", parkMoney=" + parkMoney + ", roadTollMoney=" + roadTollMoney + ", holidayFee=" + holidayFee + ", redPacketMoney=" + redPacketMoney + ", couponMoney=" + couponMoney + ", redPacketId=" + redPacketId + ", couponId=" + couponId + ", discount=" + discount + ", discountMoney=" + discountMoney + ", activityId=" + activityId + ", taxiCardId=" + taxiCardId + ", userTaxiCardId=" + userTaxiCardId + ", discountAmount=" + discountAmount + ", companyId=" + companyId + ", payMoney=" + payMoney + ", thankYouFee=" + thankYouFee + ", substitute=" + substitute + ", passengers='" + passengers + '\'' + ", passengersPhone='" + passengersPhone + '\'' + ", state=" + state + ", insertTime=" + insertTime + ", travelTime=" + travelTime + ", snatchOrderTime=" + snatchOrderTime + ", setOutTime=" + setOutTime + ", arriveTime=" + arriveTime + ", startServiceTime=" + startServiceTime + ", endServiceTime=" + endServiceTime + ", orderType=" + orderType + ", orderSource=" + orderSource + ", invoiceId=" + invoiceId + ", isReassign=" + isReassign + ", reassignNotice=" + reassignNotice + ", trackId='" + trackId + '\'' + ", isDelete=" + isDelete + ", oldState=" + oldState + ", telX='" + telX + '\'' + ", bindId='" + bindId + '\'' + ", peopleNum=" + peopleNum + ", rideType=" + rideType + ", pid=" + pid + ", abnormal=" + abnormal + ", promotion=" + promotion + ", promotionUser='" + promotionUser + '\'' + ", promotionPhone='" + promotionPhone + '\'' + ", abnormalIntro='" + abnormalIntro + '\'' + ", abnormalImg='" + abnormalImg + '\'' + ", promotionDriverId=" + promotionDriverId + ", promotionMoney=" + promotionMoney + ", totalPeopleNum=" + totalPeopleNum + ", estimateMileage=" + estimateMileage + ", estimateTime=" + estimateTime + ", spellSuccess=" + spellSuccess + ", splitAllocation='" + splitAllocation + '\'' + ", responsibilityType=" + responsibilityType + ", promotionActivityId=" + promotionActivityId + ", travelId='" + travelId + '\'' + ", isCreated=" + isCreated + ", recoveryOrder=" + recoveryOrder + '}'; }} UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -154,7 +154,7 @@ * @return * @throws Exception */ ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception; ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -11,7 +11,6 @@ import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; @@ -20,6 +19,8 @@ import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -43,6 +44,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; import java.math.MathContext; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -970,17 +972,71 @@ orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar1.setState(10); this.updateById(orderPrivateCar1); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar1.getTravelId()); request.setStatus(orderPrivateCar1.getState()); if (null != orderPrivateCar1.getDriverId()) { driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar1.getPromotion()) { Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace())); for (OrderTaxi orderTaxi : list1) { orderCancelService.saveData(orderTaxi.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi.setState(10); orderTaxiService.updateById(orderTaxi); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); if (null != orderTaxi.getDriverId()) { driver1 = driverService.selectById(orderTaxi.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } } else { integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar.setState(10); this.updateById(orderPrivateCar); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); if (null != orderPrivateCar.getDriverId()) { driver1 = driverService.selectById(orderPrivateCar.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar.getPromotion()) { Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } } else { OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); @@ -997,6 +1053,24 @@ this.updateById(orderPrivateCar); } this.deleteTask(id);//删除定时任务 Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); if (null != orderPrivateCar.getDriverId()) { driver1 = driverService.selectById(orderPrivateCar.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar.getPromotion()) { Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); new Thread(new Runnable() { @Override @@ -1114,6 +1188,24 @@ orderPrivateCar.setTelX(""); orderPrivateCar.setBindId(""); this.updateById(orderPrivateCar); Driver driver = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); if (null != orderPrivateCar.getDriverId()) { driver = driverService.selectById(orderPrivateCar.getDriverId()); company = companyService.selectById(driver.getCompanyId()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar.getPromotion()) { Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); orderCancel.setState(2); orderCancel.setPayType(3); @@ -1907,8 +1999,7 @@ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { public ResultUtil payPrivateCarOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(orderId); if (orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9) { return ResultUtil.error("订单已完成支付,不允许重复支付", new ArrayList<>()); @@ -1927,7 +2018,7 @@ UserCouponRecord userCouponRecord = null; if (null != objectId && objectType == 1) { userCouponRecord = userCouponRecordService.selectById(objectId); if (userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()) { if (userCouponRecord.getCompanyId().compareTo(orderPrivateCar.getCompanyId()) != 0) { return ResultUtil.error("优惠券不能用于此订单", new ArrayList<>()); } if (userCouponRecord.getState() == 2) { @@ -2084,8 +2175,57 @@ if (orderMoney == 0) { return ResultUtil.error("请使用余额支付"); } String app = type == 1 ? "APP" : "JSAPI"; resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); // String app = type == 1 ? "APP" : "JSAPI"; // resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_1_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); Driver driver = driverService.selectById(orderPrivateCar.getDriverId()); if(null == orderPrivateCar.getIsCreated() || 0 == orderPrivateCar.getIsCreated()){ //调用中台创建订单及拉起支付接口 TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}"); tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId()); tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId()); tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID()); tradeOrderCreateData.setPartnerPayId(orderPrivateCar.getTravelId()); tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); tradeOrderCreateData.setOrderDesc("完成订单"); tradeOrderCreateData.setRetUrl(path); tradeOrderCreateData.setClientIp(ip); List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); goodsInfo.add(goodsInfoRequest); tradeOrderCreateData.setGoodsInfo(goodsInfo); TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); PayInfo payInfo = tradeOrderCreate.getPayInfo(); if(!"000000".equals(payInfo.getRetCode())){ return ResultUtil.error(payInfo.getRetMsg()); } orderPrivateCar.setIsCreated(1); resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); }else{ //拉起支付 TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); tradePayOff1Data.setPartnerPayId("PR" + orderPrivateCar.getId()); tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); tradePayOff1Data.setRetUrl(path); tradePayOff1Data.setClientIp(ip); tradePayOff1Data.setOrderDesc("完成订单"); List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); goodsInfo.add(goodsInfoRequest); tradePayOff1Data.setGoodsInfo(goodsInfo); PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); if(!"000000".equals(payInfo.getRetCode())){ return ResultUtil.error(payInfo.getRetMsg()); } resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); } paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, "", 1);//添加预支付数据 } if (payType == 2) {//支付宝支付 @@ -2099,12 +2239,7 @@ if (userInfo.getBalance() == null || userInfo.getBalance() < orderMoney) { return ResultUtil.error("余额不足,无法完成支付"); } // if(orderMoney > 0){ // resultUtil= appOrderController.moneyPay(orderId,userInfo.getId(),orderMoney); // if(resultUtil.getCode()==500){ // return ResultUtil.error("电子余额不足,无法完成支付"); // } // } userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); @@ -2277,6 +2412,24 @@ orderPrivateCar.setTelX(""); this.updateById(orderPrivateCar); Driver driver = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar.getTravelId()); request.setStatus(orderPrivateCar.getState()); if (null != orderPrivateCar.getDriverId()) { driver = driverService.selectById(orderPrivateCar.getDriverId()); company = companyService.selectById(driver.getCompanyId()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar.getPromotion()) { Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
@@ -284,6 +284,11 @@ */ @TableField("OnCall") private String OnCall; /** * 中台企业编号 */ @TableField("enterCode") private String enterCode; public String getDetailAddress() { @@ -733,7 +738,15 @@ public void setOnCall(String onCall) { OnCall = onCall; } public String getEnterCode() { return enterCode; } public void setEnterCode(String enterCode) { this.enterCode = enterCode; } @Override public String toString() { return "Company{" + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
@@ -335,6 +335,21 @@ */ @TableField("qrCode") private String qrCode; /** * 中台员工ID */ @TableField("empId") private Long empId; /** * 中台员工所属企业ID */ @TableField("enterId") private Long enterId; /** * 中台员工所属企业编号 */ @TableField("entercode") private String entercode; public String getQrCode() { return qrCode; @@ -841,7 +856,31 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } public Long getEmpId() { return empId; } public void setEmpId(Long empId) { this.empId = empId; } public Long getEnterId() { return enterId; } public void setEnterId(Long enterId) { this.enterId = enterId; } public String getEntercode() { return entercode; } public void setEntercode(String entercode) { this.entercode = entercode; } @Override public String toString() { return "Driver{" + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -145,6 +145,11 @@ */ private Date bindExpireDate; /** * 中台用户ID */ @TableField("onconUUID") private String onconUUID; private Date bindDate; @@ -364,7 +369,15 @@ public void setAppletsOpenId(String appletsOpenId) { this.appletsOpenId = appletsOpenId; } public String getOnconUUID() { return onconUUID; } public void setOnconUUID(String onconUUID) { this.onconUUID = onconUUID; } @Override public String toString() { return "UserInfo{" + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -157,6 +157,7 @@ serverCarModelWarpper.setContentExclusive(contentExclusive); serverCarModelWarpper.setContentPrice(contentPrice); serverCarModelWarpper.setWaitPrice(jsonObject); serverCarModelWarpper.setAmount(this.calculationPrice(contentExclusive, distance, duration, wait, waitMoney)); serverCarModelWarpper.setBuyNowAmount(this.calculationPrice(contentPrice, distance, duration, wait, waitMoney)); @@ -296,7 +297,7 @@ serverCarModelWarpper.setContentNotTwo(new JSONObject()); serverCarModelWarpper.setContentPutThree(new JSONObject()); serverCarModelWarpper.setContentNotThree(new JSONObject()); serverCarModelWarpper.setContentExclusive(new JSONObject()); serverCarModelWarpper.setContentExclusive(jsonObject); serverCarModelWarpper.setContentPrice(new JSONObject()); return serverCarModelWarpper; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -27,7 +27,6 @@ import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; import org.apache.commons.lang.time.DateUtils; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -51,7 +50,6 @@ import java.net.URLConnection; import java.security.spec.AlgorithmParameterSpec; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; @@ -236,6 +234,7 @@ } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); String onconUUID = null; if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -248,6 +247,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -265,6 +265,9 @@ userInfo.setConsumption(0D); userInfo.setBalance(0D); userInfo.setState(1); if(null != onconUUID){ userInfo.setOnconUUID(onconUUID); } //用户所属企业 if(null != registAreaCode){ @@ -868,7 +871,8 @@ nickName = userInfo.getNickName(); } //调中台接口查询用户 List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); String onconUUID = null; List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(phone); if (null == infoByPhone || infoByPhone.isEmpty()) { RegisterViaMobileRequest request = new RegisterViaMobileRequest(); request.setMobile(phone); @@ -881,6 +885,7 @@ if (!"0".equals(register.getStatus())) { return ResultUtil.error(register.getDesc()); } onconUUID = register.getOnconUUID(); } else { boolean b = this.checkCaptcha(phone, code); if (!b) { @@ -895,6 +900,7 @@ userInfo1.setAvatar(userInfo.getAvatar()); userInfo1.setSex(userInfo.getSex()); userInfo1.setNickName(userInfo.getNickName()); userInfo1.setOnconUUID(onconUUID); this.updateById(userInfo1); if (ToolUtil.isNotEmpty(loginType) && loginType.equals("Applets")) {//小程序登录后绑定手机号码 @@ -944,7 +950,7 @@ loginWarpper.setPhone(2); return ResultUtil.success(loginWarpper); } userInfo.setOnconUUID(onconUUID); userInfo.setPhone(phone); userInfo.setUpdateTime(new Date()); userInfo.setUpdateUser(userInfo.getId()); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -29,7 +29,7 @@ @Component public class PushUtil { private final String socket_uri = "http://172.21.35.142:6000"; private final String socket_uri = "http://127.0.0.1:6000"; @Autowired private IOrderTaxiService orderTaxiService; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,86 +1,169 @@ package com.stylefeng.guns.modular.system.util; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.account.controller.AppOrderController; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.SMSUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 定时任务工具类 */ @Slf4j @Component public class TaskUtil { @Autowired private IUserCouponRecordService userCouponRecordService; @Autowired private IUserMerchantCouponService userMerchantCouponService; @Autowired private AppOrderController appOrderController; @Autowired private IOrderPrivateCarService orderPrivateCarService; @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private IOrderLogisticsService orderLogisticsService; @Autowired private IOrderTaxiService orderTaxiService; @Autowired private ChinaMobileUtil chinaMobileUtil; /** * 每隔一分钟去处理的定时任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskMinute(){ try { //修改过期的优惠券 userCouponRecordService.updateTimeOut(); //修改过期的商家优惠券 userMerchantCouponService.updateExpired(); } catch (Exception e) { e.printStackTrace(); } } /** * 每天的凌晨执行的任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskDay(){ } // // /** // * 每月第一天的1点执行的任务 // */ // @Scheduled(cron = "0 0 1 1 * *") // public void taskMonth(){ // try { // // }catch (Exception e){ // e.printStackTrace(); // } // } @Autowired private IUserCouponRecordService userCouponRecordService; @Autowired private IUserMerchantCouponService userMerchantCouponService; @Autowired private AppOrderController appOrderController; @Autowired private IOrderPrivateCarService orderPrivateCarService; @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private IOrderLogisticsService orderLogisticsService; @Autowired private IOrderTaxiService orderTaxiService; @Autowired private ChinaMobileUtil chinaMobileUtil; @Autowired private IUserInfoService userInfoService; /** * 每隔一分钟去处理的定时任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskMinute() { try { //修改过期的优惠券 userCouponRecordService.updateTimeOut(); //修改过期的商家优惠券 userMerchantCouponService.updateExpired(); //处理超时未支付的订单 } catch (Exception e) { e.printStackTrace(); } } /** * 每天的凌晨执行的任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskDay() { } /** * 每天中午12点发送提醒短信 */ @Scheduled(cron = "0 0 12 * * ?") public void taskMonth() { try { List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("isDelete", 1) .eq("state", 7).eq("abnormal", 1) .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId()); SendSmsRequest request = new SendSmsRequest(); request.setDestAddress(userInfo.getPhone()); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); request.setTemplateParams(templateParams); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } List<OrderTaxi> orderTaxis = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("isDelete", 1) .eq("state", 7).eq("abnormal", 1) .last(" and now() > DATE_ADD(endServiceTime, INTERVAL 24 HOUR)")); for (OrderTaxi orderTaxi : orderTaxis) { UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); SendSmsRequest request = new SendSmsRequest(); request.setDestAddress(userInfo.getPhone()); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); request.setTemplateParams(templateParams); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } } catch (Exception e) { e.printStackTrace(); } } /** * 大于24小时未支付的订单 */ public void timoutNoPayment() { List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("state", 7) .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)")); for (OrderPrivateCar orderPrivateCar : orderPrivateCars) { //使用备付金进行支付订单 TradePayOffData tradePayOffData = new TradePayOffData(); tradePayOffData.setPartnerPayId("PR" + orderPrivateCar.getId()); tradePayOffData.setTotalFee(Double.valueOf(orderPrivateCar.getOrderMoney() * 100).intValue() + ""); tradePayOffData.setOrderDesc("完成订单"); PayInfo payInfo = OrderUtil.tradePayOff(tradePayOffData); String retCode = payInfo.getRetCode(); if(!"000000".equals(retCode)){ log.error("备付金支付失败:{}", payInfo.getRetMsg()); continue; } PayInfoData data = payInfo.getData(); String status = data.getStatus(); if("3".equals(status)){ log.error("备付金支付失败:{}", payInfo.getRetMsg()); continue; } //copy原始订单后生成追缴单 OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar(); BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1); orderPrivateCar1.setId(null); orderPrivateCar1.setRecoveryOrder(1); //修改原始订单为支付状态 orderPrivateCar.setState(8); orderPrivateCar.setPayType(5); orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney()); orderPrivateCarService.updateById(orderPrivateCar); orderPrivateCarService.insert(orderPrivateCar1); } } } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -10,6 +10,7 @@ import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -26,19 +27,19 @@ // CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderNo("0123456"); // request.setOrderNo("3456789012345678"); // request.setCustomerId("11448156"); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // request.setServiceType(1); // String travelItinerary = createTravelItinerary(request); // System.err.println(travelItinerary);//1948685426689200128 // System.err.println(travelItinerary);//1951088602595872768 //修改行程状态 // ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); // request.setOrderId("1948685426689200128"); // request.setOrderId("1951088602595872768"); // request.setStatus(7); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); @@ -53,24 +54,24 @@ // tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // tradeOrderCreateData.setCharge(new BigDecimal("0.01")); // tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); // tradeOrderCreateData.setOrderId("1948685426689200128"); // tradeOrderCreateData.setOrderNo("0123456"); // tradeOrderCreateData.setOrderId("1951088602595872768"); // tradeOrderCreateData.setOrderNo("3456789012345678"); // tradeOrderCreateData.setCustomerId("11448156"); // tradeOrderCreateData.setPayPartnerId("5400004"); // tradeOrderCreateData.setPartnerPayId("1948685426689200128"); // tradeOrderCreateData.setPartnerPayId("1951088602595872768"); // tradeOrderCreateData.setCurrency("RMB"); // tradeOrderCreateData.setTotalFee("1"); // tradeOrderCreateData.setRetUrl("/home/"); // tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradeOrderCreateData.setClientIp("127.0.0.1"); // tradeOrderCreateData.setNeedLoginFlag("N"); // tradeOrderCreateData.setOrderDesc("出行订单支付"); // tradeOrderCreateData.setAccessMode("H5"); // tradeOrderCreateData.setAccessMode("APP"); // // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); // goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); // goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); // goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); // goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); @@ -79,7 +80,7 @@ // tradeOrderCreateData.setGoodsInfo(goodsInfo); // TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); // System.err.println(tradeOrderCreate); // //TradeOrderCreate(orderInfo=OrderInfo(orderId=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f)) //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) //查询支付单信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); @@ -89,30 +90,30 @@ // System.err.println(getPaymentInfo); //拉起支付 // TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); // tradePayOff1Data.setPartnerId("5400004"); // tradePayOff1Data.setScene("TRAFFIC"); // tradePayOff1Data.setPartnerPayId("1948685426689200128"); // tradePayOff1Data.setCurrency("RMB"); // tradePayOff1Data.setTotalFee("1"); // tradePayOff1Data.setRetUrl("/home/"); // tradePayOff1Data.setClientIp("127.0.0.1"); // tradePayOff1Data.setNeedLoginFlag("N"); // tradePayOff1Data.setOrderDesc("出行订单支付"); // tradePayOff1Data.setAccessMode("APP"); // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); // goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); // goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); // goodsInfoRequest.setBusinessType("10408"); // goodsInfo.add(goodsInfoRequest); // tradePayOff1Data.setGoodsInfo(goodsInfo); // PayInfo payInfo = tradePayOff1(tradePayOff1Data); // System.err.println(payInfo); TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); tradePayOff1Data.setPartnerId("5400004"); tradePayOff1Data.setScene("TRAFFIC"); tradePayOff1Data.setPartnerPayId("1951088602595872768"); tradePayOff1Data.setCurrency("RMB"); tradePayOff1Data.setTotalFee("1"); tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); tradePayOff1Data.setClientIp("127.0.0.1"); tradePayOff1Data.setNeedLoginFlag("N"); tradePayOff1Data.setOrderDesc("出行订单支付"); tradePayOff1Data.setAccessMode("APP"); List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); goodsInfoRequest.setId("981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); goodsInfoRequest.setProfitSharing("1"); goodsInfoRequest.setAreaInfo("520100"); goodsInfoRequest.setPayType("0"); goodsInfoRequest.setBusinessType("10408"); goodsInfo.add(goodsInfoRequest); tradePayOff1Data.setGoodsInfo(goodsInfo); PayInfo payInfo = tradePayOff1(tradePayOff1Data); System.err.println(payInfo); //PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe) @@ -178,6 +179,21 @@ * @return */ public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) { tradePayOff1Data.setPartnerId("5400004"); tradePayOff1Data.setScene("TRAFFIC"); tradePayOff1Data.setCurrency("RMB"); tradePayOff1Data.setNeedLoginFlag("N"); tradePayOff1Data.setAccessMode("APP"); tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> { goodsInfoRequest.setId("981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setProfitSharing("1"); goodsInfoRequest.setAreaInfo("520100"); goodsInfoRequest.setPayType("0"); goodsInfoRequest.setBusinessType("10408"); }); TradeRequest request = new TradeRequest<TradePayOff1Data>(); request.setSceneId("1911676727023968256"); request.setAppId(QianYunTongProperties.appkey); @@ -356,6 +372,24 @@ * @return */ public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { tradeOrderCreateData.setScene("TRAFFIC"); tradeOrderCreateData.setPartnerId("522700"); tradeOrderCreateData.setOrderAppId("52270015"); tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); tradeOrderCreateData.setPayPartnerId("5400004"); tradeOrderCreateData.setCurrency("RMB"); tradeOrderCreateData.setNeedLoginFlag("N"); tradeOrderCreateData.setAccessMode("APP"); tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest->{ goodsInfoRequest.setId("981100006005901"); goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); goodsInfoRequest.setProfitSharing("1"); goodsInfoRequest.setAreaInfo("520100"); goodsInfoRequest.setPayType("0"); goodsInfoRequest.setBusinessType("10408"); }); TradeRequest request = new TradeRequest<TradeOrderCreateData>(); request.setSceneId("1945688132719169536"); request.setAppId(QianYunTongProperties.appkey); @@ -450,6 +484,28 @@ * @return */ public static PayInfo tradePayOff(TradePayOffData tradePayOffData) { tradePayOffData.setPartnerId("5400004"); tradePayOffData.setScene("TRAFFIC"); tradePayOffData.setCurrency("RMB"); tradePayOffData.setRetUrl(""); tradePayOffData.setClientIp(System.getProperty("http.remoteAddr")); tradePayOffData.setNeedLoginFlag("N"); tradePayOffData.setAccessMode("APP"); List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); paymentInfoRequest.setPayModeId("501212"); paymentInfoRequests.add(paymentInfoRequest); tradePayOffData.setPaymentInfos(paymentInfoRequests); List<GoodsInfo> goodsInfo = new ArrayList<>(); GoodsInfo goodsInfo1 = new GoodsInfo(); goodsInfo1.setMerchantCode(":B00000872"); goodsInfo1.setCustId("CB0000004686"); goodsInfo1.setCustName("证联消费平台交易客户"); goodsInfo1.setProfitSharing("1"); goodsInfo.add(goodsInfo1); tradePayOffData.setGoodsInfo(goodsInfo); TradeRequest request = new TradeRequest<TradePayOffData>(); request.setSceneId("1774717104844095488"); request.setAppId(QianYunTongProperties.appkey); UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -16,6 +16,7 @@ /** * 私钥地址 */ // String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem"; String privateKeyPath = "C:\\Users\\Administrator\\Desktop\\private_key_test.pem"; /** * 私钥地址 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/SMSUtil.java
@@ -70,12 +70,12 @@ public static void main(String[] args) { SendSmsRequest request = new SendSmsRequest(); request.setDestAddress("15828353127"); request.setTemplateId("TPL202410290001"); request.setTemplateId("TPL202507300002"); Map<String, String> templateParams = new HashMap<>(); templateParams.put("code", "1234"); // templateParams.put("code", "1234"); request.setTemplateParams(templateParams); request.setCode("code"); request.setSpId("T8d5hdfg"); // request.setCode("code"); request.setSpId("Y86asr7J"); SMSUtil.sendSms(request); } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/UserUtil.java
@@ -23,8 +23,8 @@ public static void main(String[] args) { List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127", "981100006005951"); System.out.println(userInfoByPhone); // List<QYTUserInfo> userInfoByPhone = getUserInfoByPhone("15828353127"); // System.out.println(userInfoByPhone); } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@ @Document(collection = "driver_position") public class DriverPosition { @Id private String id; /** * 司机id */ private Integer driverId; /** * 点位 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
@@ -64,6 +64,8 @@ private JSONObject contentExclusive;//独享 @ApiModelProperty("一口价规则") private JSONObject contentPrice;//一口价 @ApiModelProperty("等待费规则") private JSONObject waitPrice;//等待费 @ApiModelProperty("计价说明(拼车)") private String fareTypeNote1; @@ -362,4 +364,13 @@ } return data; } public JSONObject getWaitPrice() { return waitPrice; } public void setWaitPrice(JSONObject waitPrice) { this.waitPrice = waitPrice; } } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.stylefeng.guns.modular.system.model.BaseBean; import java.math.BigDecimal; import java.util.Date; @@ -385,6 +384,24 @@ private String splitAllocation; private Integer responsibilityType; private Integer promotion; private String voice; private Date voiceTime; private String promotionUser; private String promotionPhone; private String travelId; /** * 中台是否已创建订单(0=否,1=是) */ private Integer isCreated; private Long promotionActivityId; @@ -997,7 +1014,63 @@ public void setSplitAllocation(String splitAllocation) { this.splitAllocation = splitAllocation; } public Integer getPromotion() { return promotion; } public void setPromotion(Integer promotion) { this.promotion = promotion; } public String getVoice() { return voice; } public void setVoice(String voice) { this.voice = voice; } public Date getVoiceTime() { return voiceTime; } public void setVoiceTime(Date voiceTime) { this.voiceTime = voiceTime; } public String getPromotionUser() { return promotionUser; } public void setPromotionUser(String promotionUser) { this.promotionUser = promotionUser; } public String getPromotionPhone() { return promotionPhone; } public void setPromotionPhone(String promotionPhone) { this.promotionPhone = promotionPhone; } public String getTravelId() { return travelId; } public void setTravelId(String travelId) { this.travelId = travelId; } public Integer getIsCreated() { return isCreated; } public void setIsCreated(Integer isCreated) { this.isCreated = isCreated; } @Override public String toString() { return "OrderTaxi{" + UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
@@ -129,7 +129,7 @@ * @return * @throws Exception */ ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type)throws Exception; ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception; UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -20,6 +20,8 @@ import com.stylefeng.guns.modular.system.model.vo.UnPayOrderVO; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; @@ -146,7 +148,7 @@ @Autowired private IDriverServiceService driverServiceService; @Autowired private TAbnormalPayOrderMapper abnormalPayOrderMapper; @@ -185,10 +187,11 @@ @Value("${callbackPath}") private String callbackPath; @Autowired private TDriverPromotionActivityService driverPromotionActivityService; /** * 出租车下单操作 * @@ -496,17 +499,71 @@ orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderPrivateCar1.setState(10); orderPrivateCarService.updateById(orderPrivateCar1); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderPrivateCar1.getTravelId()); request.setStatus(orderPrivateCar1.getState()); if (null != orderPrivateCar1.getDriverId()) { driver1 = driverService.selectById(orderPrivateCar1.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderPrivateCar1.getPromotion()) { Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace())); for (OrderTaxi orderTaxi1 : list1) { orderCancelService.saveData(orderTaxi1.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi1.setState(10); this.updateById(orderTaxi1); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi1.getTravelId()); request.setStatus(orderTaxi1.getState()); if (null != orderTaxi1.getDriverId()) { driver1 = driverService.selectById(orderTaxi1.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi1.getPromotion()) { Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } } else { integer = orderCancelService.saveData(id, 2, "无司机接单", "无司机接单", null, null, 2, 1, uid); orderTaxi.setState(10); this.updateById(orderTaxi); Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); if (null != orderTaxi.getDriverId()) { driver1 = driverService.selectById(orderTaxi.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); } } else { OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString()); @@ -523,6 +580,24 @@ this.updateById(orderTaxi); } this.deleteTask(id);//删除定时任务 Driver driver1 = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); if (null != orderTaxi.getDriverId()) { driver1 = driverService.selectById(orderTaxi.getDriverId()); company = companyService.selectById(driver1.getCompanyId()); request.setDriverId(driver1.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver2.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); new Thread(new Runnable() { @Override @@ -642,6 +717,24 @@ orderTaxi.setTelX(""); orderTaxi.setBindId(""); this.updateById(orderTaxi); Driver driver = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); if (null != orderTaxi.getDriverId()) { driver = driverService.selectById(orderTaxi.getDriverId()); company = companyService.selectById(driver.getCompanyId()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); orderCancel.setState(2); orderCancel.setPayType(3); @@ -1343,7 +1436,7 @@ @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type) throws Exception { public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception { OrderTaxi orderTaxi = this.selectById(orderId); if (orderTaxi.getState() == 8 || orderTaxi.getState() == 9) { return ResultUtil.error("订单已完成支付,不允许重复支付", ""); @@ -1514,8 +1607,57 @@ if (orderMoney == 0) { return ResultUtil.error("请使用余额支付"); } String app = type == 1 ? "APP" : "JSAPI"; resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); // String app = type == 1 ? "APP" : "JSAPI"; // resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); Driver driver = driverService.selectById(orderTaxi.getDriverId()); if(null == orderTaxi.getIsCreated() || 0 == orderTaxi.getIsCreated()){ //调用中台创建订单及拉起支付接口 TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}"); tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); tradeOrderCreateData.setOrderId(orderTaxi.getTravelId()); tradeOrderCreateData.setOrderNo("TA" + orderTaxi.getId()); tradeOrderCreateData.setCustomerId(userInfo.getOnconUUID()); tradeOrderCreateData.setPartnerPayId(orderTaxi.getTravelId()); tradeOrderCreateData.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); tradeOrderCreateData.setOrderDesc("完成订单"); tradeOrderCreateData.setRetUrl(path); tradeOrderCreateData.setClientIp(ip); List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); goodsInfo.add(goodsInfoRequest); tradeOrderCreateData.setGoodsInfo(goodsInfo); TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); PayInfo payInfo = tradeOrderCreate.getPayInfo(); if(!"000000".equals(payInfo.getRetCode())){ return ResultUtil.error(payInfo.getRetMsg()); } orderTaxi.setIsCreated(1); resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); }else{ //拉起支付 TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); tradePayOff1Data.setPartnerPayId("PR" + orderTaxi.getId()); tradePayOff1Data.setTotalFee(Double.valueOf(orderMoney * 100).intValue() + ""); tradePayOff1Data.setRetUrl(path); tradePayOff1Data.setClientIp(ip); tradePayOff1Data.setOrderDesc("完成订单"); List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); goodsInfo.add(goodsInfoRequest); tradePayOff1Data.setGoodsInfo(goodsInfo); PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); if(!"000000".equals(payInfo.getRetCode())){ return ResultUtil.error(payInfo.getRetMsg()); } resultUtil = ResultUtil.success(payInfo.getData().getRedirectUrl()); } paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据 } if (payType == 2) {//支付宝支付 @@ -1737,10 +1879,10 @@ map.put("state", map.get("oldState")); } if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){ if (Integer.valueOf(String.valueOf(map.get("state"))) == 7 && (map.get("responsibilityType") == null || Integer.valueOf(String.valueOf(map.get("responsibilityType"))) < 4)) { map.put("appealButton", 1); } if(map.get("abnormalIntro")!=null){ if (map.get("abnormalIntro") != null) { map.put("appealStatus", 1); } String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); @@ -2082,6 +2224,24 @@ orderTaxi.setTelX(""); this.updateById(orderTaxi); Driver driver = null; Company company = null; //中台修改订单状态 ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); request.setOrderId(orderTaxi.getTravelId()); request.setStatus(orderTaxi.getState()); if (null != orderTaxi.getDriverId()) { driver = driverService.selectById(orderTaxi.getDriverId()); company = companyService.selectById(driver.getCompanyId()); request.setDriverId(driver.getEmpId().toString()); request.setSupplierShopId(company.getEnterCode()); } if (2 == orderTaxi.getPromotion()) { Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId()); request.setPromoterId(driver1.getEmpId().toString()); } OrderUtil.modifyTravelItinerary(request); query.setState(2); query.setCode(order_id); paymentRecordService.updateById(query); @@ -2297,7 +2457,7 @@ @Override public void addAppeal(Integer uid, Integer orderId, String abnormalIntro, String abnormalImg) { OrderTaxi orderTaxi = this.selectById(orderId); if(orderTaxi.getState()!=7 || orderTaxi.getAbnormalIntro()!=null){ if (orderTaxi.getState() != 7 || orderTaxi.getAbnormalIntro() != null) { throw new RuntimeException("此订单无法申诉"); } orderTaxi.setAbnormalIntro(abnormalIntro); @@ -2305,15 +2465,15 @@ orderTaxi.setAbnormal(2); this.baseMapper.updateById(orderTaxi); } @Override public void promotion(Integer orderId) { OrderTaxi orderTaxi = this.baseMapper.selectById(orderId); UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId()); if(orderTaxi.getPromotionDriverId()!=null){ if (orderTaxi.getPromotionDriverId() != null) { String registAreaCode = userInfo.getRegistAreaCode(); TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1")); if(tDriverPromotionActivity!=null){ if (tDriverPromotionActivity != null) { Double payMoney = orderTaxi.getPayMoney(); BigDecimal bigDecimal = tDriverPromotionActivity.getCommissionRatio().divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(payMoney)).setScale(2, RoundingMode.HALF_UP); orderTaxi.setPromotionDriverId(userInfo.getBindDriverId()); @@ -2323,7 +2483,7 @@ } } // 是否异常订单 if (orderTaxi.getResponsibilityType() !=null && orderTaxi.getResponsibilityType() >2) { if (orderTaxi.getResponsibilityType() != null && orderTaxi.getResponsibilityType() > 2) { TAbnormalPayOrder tAbnormalPayOrder = abnormalPayOrderMapper.selectList(new EntityWrapper<TAbnormalPayOrder>().eq("type", 2).eq("orderNum", orderTaxi.getOrderNum())).stream().findFirst().orElse(null); if (tAbnormalPayOrder != null) { tAbnormalPayOrder.setPayStatus(2);