Pu Zhibing
2025-08-08 6dbd3b95671e6ac00a442b9866331397af1b10ba
修改bug
10个文件已删除
20个文件已修改
1465 ■■■■ 已修改文件
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/PayInfoController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java 249 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/BrandMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/ParamMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/BrandMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderTravelMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/ParamMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/Brand.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/Param.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IBrandService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IParamService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/BrandServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/ParamServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/task/base/AbstractJob.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java 319 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -868,7 +868,7 @@
     * @return
     */
    @ResponseBody
    @GetMapping("/base/user/addAppUser")
    @PostMapping("/base/user/addAppUser")
    public String addAppUser(String phone, String code, String areaCode){
        try {
            return userInfoService.addAppUser(phone, code, areaCode);
@@ -900,4 +900,19 @@
            return false;
        }
    }
    /**
     * 代驾系统验根据用户id获取电话号码
     * @param id
     * @return
     */
    @ResponseBody
    @GetMapping("/base/user/getUserPhone/{id}")
    public String getUserPhone(@PathVariable("id") Integer id){
        UserInfo userInfo = userInfoService.selectById(id);
        if(null != userInfo){
            return userInfo.getPhone();
        }
        return null;
    }
}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -2100,64 +2100,67 @@
    @Override
    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
        OrderCrossCity orderCrossCity = this.selectById(orderId);
        //计算预计距离和剩余时间
        String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
        if (null == value || "".equals(value)) {
            System.err.println("司机没有上传位置信息");
        if(null != orderCrossCity){
            //计算预计距离和剩余时间
            String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
            if (null == value || "".equals(value)) {
                System.err.println("司机没有上传位置信息");
                //调用获取轨迹中的数据
                List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 3);
                if (list.size() > 0) {
                    Map<String, Object> map = list.get(list.size() - 1);
                    value = map.get("lon") + "," + map.get("lat");
                }
            }
            
            //调用获取轨迹中的数据
            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 3);
            if (list.size() > 0) {
                Map<String, Object> map = list.get(list.size() - 1);
                value = map.get("lon") + "," + map.get("lat");
            OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
            orderServerWarpper.setOrderId(orderCrossCity.getId());
            orderServerWarpper.setOrderType(3);
            orderServerWarpper.setState(orderCrossCity.getState());
            orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
            orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
            orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
            if (orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3) {//前往预约地
                // TODO: 2023/11/4 无法修改
                Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat(), 1);
                String d = "0";
                String t = "0";
                if (null == distance) {
                    System.err.println("查询距离出错了");
                } else {
                    d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
                    t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
                }
                orderServerWarpper.setReservationMileage(d);
                orderServerWarpper.setReservationTime(t);
                orderServerWarpper.setServedMileage("0");
                orderServerWarpper.setServedTime("0");
                orderServerWarpper.setLaveMileage("0");
                orderServerWarpper.setLaveTime("0");
            }
        }
        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
        orderServerWarpper.setOrderId(orderCrossCity.getId());
        orderServerWarpper.setOrderType(3);
        orderServerWarpper.setState(orderCrossCity.getState());
        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
        orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
        if (orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3) {//前往预约地
            // TODO: 2023/11/4 无法修改
            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat(), 1);
            String d = "0";
            String t = "0";
            if (null == distance) {
                System.err.println("查询距离出错了");
            } else {
                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
            if (orderCrossCity.getState() == 5 || orderCrossCity.getState() == 6) {//服务中
                // TODO: 2023/11/4 无法修改
                Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat(), 1);
                String d = "0";
                String t = "0";
                if (null == distance) {
                    System.err.println("查询距离出错了");
                } else {
                    d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
                    t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
                }
                orderServerWarpper.setReservationMileage("0");
                orderServerWarpper.setReservationTime("0");
                orderServerWarpper.setServedMileage(String.valueOf(orderCrossCity.getMileage() / 1000));
                orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderCrossCity.getStartServiceTime().getTime()) / 60000).intValue() + "");
                orderServerWarpper.setLaveMileage(d);
                orderServerWarpper.setLaveTime(t);
            }
            orderServerWarpper.setReservationMileage(d);
            orderServerWarpper.setReservationTime(t);
            orderServerWarpper.setServedMileage("0");
            orderServerWarpper.setServedTime("0");
            orderServerWarpper.setLaveMileage("0");
            orderServerWarpper.setLaveTime("0");
            return orderServerWarpper;
        }
        if (orderCrossCity.getState() == 5 || orderCrossCity.getState() == 6) {//服务中
            // TODO: 2023/11/4 无法修改
            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat(), 1);
            String d = "0";
            String t = "0";
            if (null == distance) {
                System.err.println("查询距离出错了");
            } else {
                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString();
                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + "";
            }
            orderServerWarpper.setReservationMileage("0");
            orderServerWarpper.setReservationTime("0");
            orderServerWarpper.setServedMileage(String.valueOf(orderCrossCity.getMileage() / 1000));
            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderCrossCity.getStartServiceTime().getTime()) / 60000).intValue() + "");
            orderServerWarpper.setLaveMileage(d);
            orderServerWarpper.setLaveTime(t);
        }
        return orderServerWarpper;
        return new OrderServerWarpper();
    }
    
    
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/PayInfoController.java
@@ -4,7 +4,6 @@
import com.stylefeng.guns.modular.shunfeng.model.OrderRide;
import com.stylefeng.guns.modular.shunfeng.model.vo.ApiJson;
import com.stylefeng.guns.modular.shunfeng.service.IOrderRideService;
import com.stylefeng.guns.modular.shunfeng.service.IParamService;
import com.stylefeng.guns.modular.shunfeng.service.ITimeTaskService;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
@@ -32,8 +31,6 @@
public class PayInfoController {
    @Autowired
    private IParamService paramService;
    @Autowired
    private IOrderRideService orderRideService;
    @Autowired
    private ITimeTaskService timeTaskService;
@@ -53,6 +50,13 @@
     * @param couponId
     * @return
     */
    @ResponseBody
    @PostMapping("/payBalanceRide")
    @ApiOperation(value = "余额支付", httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int"),
            @ApiImplicitParam(name = "couponId", value = "优惠券id", dataType = "int"),
    })
    public Object payBalanceRide(Integer orderId,Integer couponId){
        try {
            OrderRide orderRide=orderRideService.selectById(orderId);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
@@ -14,12 +14,15 @@
import com.stylefeng.guns.modular.shunfeng.util.SensitiveWordUtil;
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
import com.stylefeng.guns.modular.system.model.SensitiveWords;
import com.stylefeng.guns.modular.system.model.TCarBrand;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.service.ITCarBrandService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.PushUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import io.swagger.annotations.*;
import net.sf.json.JSONObject;
@@ -50,9 +53,6 @@
        /*顺风车设置*/
        @Autowired
        private IParamRideService paramRideService;
        /*系统设置*/
        @Autowired
        private IParamService paramService;
        /*定时任务*/
        @Autowired
        private ITimeTaskService timeTaskService;
@@ -61,7 +61,7 @@
        private IDriverRideService driverRideService;
        /*顺风车品牌*/
        @Autowired
        private IBrandService brandService;
        private ITCarBrandService carBrandService;
        /*评价*/
        @Autowired
        private IEvaluateService evaluateService;
@@ -111,7 +111,7 @@
    public Object authentication(Integer userId,String name,String  identity,Integer type) {
        try {
            if (userId == null || userId == 0) {
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            /*发布顺风车行程实名认证*/
            UserApply apply=new UserApply();
@@ -129,6 +129,7 @@
                /*修改用户实名认证通过*/
                UserInfo userInfo=new UserInfo();
                userInfo.setId(userId);
                userInfo.setIsAuth(2);
                String sex = identity.substring(16, 17); //取指定位置的值(16位之后,17位结束;)
                int b = Integer.parseInt(sex);//强制类型转换
                if (b % 2 == 0) {
@@ -145,11 +146,11 @@
            applyService.insert(apply);
            Map<String,Object> reMap=new HashMap<>();
            reMap.put("auditState", aBoolean);
            return ApiJson.returnOK(reMap);
            return ResultUtil.success(reMap);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -164,7 +165,7 @@
    public Object authentication(Integer userId,String headImg) {
//        try {
//            if (userId == null || userId == 0) {
//                return ApiJson.returnNG("userId不能为空");
//                return ResultUtil.paranErr("userId不能为空");
//            }
//            /*查询实名认证信息*/
//            UserApply apply=applyService.selectOne(new EntityWrapper<UserApply>().eq("userId",userId)
@@ -202,7 +203,7 @@
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        return ApiJson.returnNG("异常");
        return ResultUtil.paranErr("异常");
    }
    /**
@@ -214,12 +215,12 @@
    @ApiOperation(value = "获取车辆品牌列表", httpMethod = "GET")
    public Object getBrandList(){
        try {
            List<Brand> brands=brandService.selectList(null);
            return ApiJson.returnOK(brands);
            List<TCarBrand> tCarBrands = carBrandService.selectList(null);
            return ApiJson.returnOK(tCarBrands);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -238,10 +239,10 @@
    public Object homeOrderCount(Integer userId,Integer type){
        try {
            if(ToolUtil.isEmpty(userId)){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            Integer count=0;
@@ -260,7 +261,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("获取异常");
        return ResultUtil.error("获取异常");
    }
    /**
@@ -279,10 +280,10 @@
    public Object homeOrderList(Integer userId,Integer type,Integer current,Integer size){
        try {
            if(ToolUtil.isEmpty(userId)){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            List<OrderRideVo> rideVoList=new ArrayList<>();
            OrderRideVo orderRideVo=new OrderRideVo();
@@ -305,7 +306,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("获取异常");
        return ResultUtil.error("获取异常");
    }
    /**
@@ -366,7 +367,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("获取异常");
        return ResultUtil.error("获取异常");
    }
    /**
@@ -401,22 +402,22 @@
                           String endName,Double money,Integer isDai,String lxPhone){
        try {
            if(ToolUtil.isEmpty(userId)){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if(ToolUtil.isEmpty(startTime)){
                return ApiJson.returnNG("startTime不能为空");
                return ResultUtil.paranErr("startTime不能为空");
            }
            if(ToolUtil.isEmpty(num)){
                return ApiJson.returnNG("num不能为空");
                return ResultUtil.paranErr("num不能为空");
            }
            if(ToolUtil.isEmpty(startName)){
                return ApiJson.returnNG("startName不能为空");
                return ResultUtil.paranErr("startName不能为空");
            }
            if(ToolUtil.isEmpty(endName)){
                return ApiJson.returnNG("endName不能为空");
                return ResultUtil.paranErr("endName不能为空");
            }
            if(ToolUtil.isEmpty(money)){
                return ApiJson.returnNG("money不能为空");
                return ResultUtil.paranErr("money不能为空");
            }
            /*用户只能发布一个进行中的行程*/
            /*EntityWrapper<OrderRide> entityWrapper=new EntityWrapper();
@@ -424,7 +425,7 @@
            entityWrapper.in("state","1,2,3,4");
            Integer count=orderRideService.selectCount(entityWrapper);
            if(count>0){
                return ApiJson.returnNG("还有进行中的订单");
                return ResultUtil.paranErr("还有进行中的订单");
            }*/
            /*用户可以发布多个订单*/
            ParamRide paramRide=paramRideService.selectOne(new EntityWrapper<ParamRide>().eq("type",2));
@@ -455,15 +456,9 @@
            orderRide.setState(1);//未支付状态
            orderRideService.insert(orderRide);
            //todo 定时人数  自动取消订单
            Param param = paramService.selectOne(new EntityWrapper<Param>().eq("type", 21));//顺风车支付倒计时设置(分钟)
            Integer time =10;
            Map<String,Object> reMap=new HashMap<>();
            if(param != null){
                time=Integer.parseInt(param.getContext());
                reMap.put("djs",time);
            }else{
                reMap.put("djs",time);
            }
            reMap.put("djs",time);
            reMap.put("orderId",orderRide.getId());
            reMap.put("addTime",orderRide.getAddTime());
            // 添加定时任务信息
@@ -479,11 +474,11 @@
            maps.put("orderId",orderRide.getId());
            maps.put("timeTaskId",timeTask.getId());
            QuartzManager.addJob(CourseExamineRide.class,(CourseExamineRide.DSCE+orderRide.getId()).toUpperCase(), TimeJobType.UNLOCK, DateUtil.getDate_strYMdHms(System.currentTimeMillis() + 1000*60*time) , maps);
            return ApiJson.returnOK(orderRide.getId());
            return ResultUtil.success(orderRide.getId());
        } catch (Exception e) {
            e.printStackTrace();
        }
            return ApiJson.returnNG("异常");
            return ResultUtil.error("异常");
        }
    /**
@@ -512,19 +507,19 @@
    public Object driverAddTravel(Integer driverId,String startTime,Integer num,String startName,String endName,Double startLat,Double startLon,Double endLat,Double endLon){
        try {
            if(ToolUtil.isEmpty(driverId)){
                return ApiJson.returnNG("driverId不能为空");
                return ResultUtil.paranErr("driverId不能为空");
            }
            if(ToolUtil.isEmpty(startTime)){
                return ApiJson.returnNG("startTime不能为空");
                return ResultUtil.paranErr("startTime不能为空");
            }
            if(ToolUtil.isEmpty(num)){
                return ApiJson.returnNG("num不能为空");
                return ResultUtil.paranErr("num不能为空");
            }
            if(ToolUtil.isEmpty(startName)){
                return ApiJson.returnNG("startName不能为空");
                return ResultUtil.paranErr("startName不能为空");
            }
            if(ToolUtil.isEmpty(endName)){
                return ApiJson.returnNG("endName不能为空");
                return ResultUtil.paranErr("endName不能为空");
            }
            /*用户的资料过期了不可以发布行程*/
            DriverRide driverRide=driverRideService.selectById(driverId);
@@ -535,7 +530,7 @@
                            || DateUtil.getDate(driverRide.getDutyInsuranceTime(), "yyyy-MM-dd").getTime()-new Date().getTime()<0
                            || DateUtil.getDate(driverRide.getAnnualInspectionTime(), "yyyy-MM-dd").getTime()-new Date().getTime()<0
                            ){
                        return ApiJson.returnNG("您的证件已过期,请重新上传资料");
                        return ResultUtil.error("您的证件已过期,请重新上传资料");
                    }
                }
                /*1一个司机可以创建多个行程*/
@@ -560,7 +555,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
@@ -607,46 +602,46 @@
                              String businessInsuranceTime,String businessInsuranceImg,String dutyInsuranceTime,String dutyInsuranceImg,String annualInspectionTime,String annualInspectionImg){
        try {
            if(ToolUtil.isEmpty(userId)){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if(ToolUtil.isEmpty(carType)){
                return ApiJson.returnNG("carType不能为空");
                return ResultUtil.paranErr("carType不能为空");
            }
            if(ToolUtil.isEmpty(brandId)){
                return ApiJson.returnNG("brandId不能为空");
                return ResultUtil.paranErr("brandId不能为空");
            }
            if(ToolUtil.isEmpty(carNum)){
                return ApiJson.returnNG("carNum不能为空");
                return ResultUtil.paranErr("carNum不能为空");
            }
            if(ToolUtil.isEmpty(license)){
                return ApiJson.returnNG("license不能为空");
                return ResultUtil.paranErr("license不能为空");
            }
            if(ToolUtil.isEmpty(licenseImg)){
                return ApiJson.returnNG("licenseImg不能为空");
                return ResultUtil.paranErr("licenseImg不能为空");
            }
            if(ToolUtil.isEmpty(comInsuranceTime)){
                return ApiJson.returnNG("comInsuranceTime不能为空");
                return ResultUtil.paranErr("comInsuranceTime不能为空");
            }
            if(ToolUtil.isEmpty(comInsuranceImg)){
                return ApiJson.returnNG("comInsuranceImg不能为空");
                return ResultUtil.paranErr("comInsuranceImg不能为空");
            }
            if(ToolUtil.isEmpty(businessInsuranceTime)){
                return ApiJson.returnNG("businessInsuranceTime不能为空");
                return ResultUtil.paranErr("businessInsuranceTime不能为空");
            }
            if(ToolUtil.isEmpty(businessInsuranceImg)){
                return ApiJson.returnNG("businessInsuranceImg不能为空");
                return ResultUtil.paranErr("businessInsuranceImg不能为空");
            }
            if(ToolUtil.isEmpty(dutyInsuranceTime)){
                return ApiJson.returnNG("dutyInsuranceTime不能为空");
                return ResultUtil.paranErr("dutyInsuranceTime不能为空");
            }
            if(ToolUtil.isEmpty(dutyInsuranceImg)){
                return ApiJson.returnNG("dutyInsuranceImg不能为空");
                return ResultUtil.paranErr("dutyInsuranceImg不能为空");
            }
            if(ToolUtil.isEmpty(annualInspectionTime)){
                return ApiJson.returnNG("annualInspectionTime不能为空");
                return ResultUtil.paranErr("annualInspectionTime不能为空");
            }
            if(ToolUtil.isEmpty(annualInspectionImg)){
                return ApiJson.returnNG("annualInspectionImg不能为空");
                return ResultUtil.paranErr("annualInspectionImg不能为空");
            }
            DriverRide driverRide=new DriverRide();
            driverRide.setBrandId(brandId);
@@ -710,7 +705,7 @@
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -724,19 +719,19 @@
    public Object driverInfo(Integer driverId){
        try {
            if(ToolUtil.isEmpty(driverId)){
                return ApiJson.returnNG("driverId不能为空");
                return ResultUtil.paranErr("driverId不能为空");
            }
            DriverRide driverRide=driverRideService.selectById(driverId);
            /*获取司机品牌id*/
            Brand b=brandService.selectById(driverRide.getBrandId());
            if(b!=null){
                driverRide.setCarType(b.getName());
            TCarBrand tCarBrand = carBrandService.selectById(driverRide.getBrandId());
            if(tCarBrand!=null){
                driverRide.setCarType(tCarBrand.getName());
            }
            return ApiJson.returnOK(driverRide);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -755,10 +750,10 @@
    public Object cancelServiceMoney(Integer orderId,Integer type){
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            Double serviceMoney=0d;
            if(type==1){//用户
@@ -800,11 +795,11 @@
                }
                orderTravelService.updateById(orderTravel);//更新取消服务费
            }
            return ApiJson.returnOK(serviceMoney);
            return ResultUtil.success(serviceMoney);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -819,14 +814,14 @@
    public Object userCancel(Integer orderId){
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            /*查看这个订单是否在进行中*/
            OrderRide orderRide=orderRideService.selectById(orderId);
            if(orderRide!=null){
                /*查询该订单是否已经取消*/
                if(orderRide.getState()==6){
                    return ApiJson.returnNG("该订单已取消");
                    return ResultUtil.error("该订单已取消");
                }
                //用户取消给司机推送
                if(orderRide.getDriverId()!=null) {
@@ -844,11 +839,11 @@
                    orderTravelService.updateById(orderTravel);
                }
            }
            return ApiJson.returnOK("");
            return ResultUtil.success("");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    //用户取消退款
    public void userCancelTuik(OrderRide orderRide){
@@ -905,12 +900,12 @@
    public Object driverCancel(Integer orderId){
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            OrderTravel orderTravel=orderTravelService.selectById(orderId);
            if(orderTravel!=null){
                if(orderTravel.getState()==6){
                    return ApiJson.returnNG("该订单已取消");
                    return ResultUtil.error("该订单已取消");
                }
                DriverRide driverRide=driverRideService.selectById(orderTravel.getDriverId());
                if(orderTravel.getServiceMoney()!=null && orderTravel.getServiceMoney()>0){
@@ -961,11 +956,11 @@
                }
            }
            return ApiJson.returnOK("");
            return ResultUtil.success("");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -986,10 +981,10 @@
    public Object driverOperation(Integer userOrderId,Integer type,Integer driverOrderId){
        try {
            if(ToolUtil.isEmpty(driverOrderId)){
                return ApiJson.returnNG("driverOrderId不能为空");
                return ResultUtil.paranErr("driverOrderId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            OrderTravel orderTravel=orderTravelService.selectById(driverOrderId);//司机行程
            /*用户的资料过期了不可以发布行程*/
@@ -1000,17 +995,17 @@
                        || DateUtil.getDate(driverRide.getDutyInsuranceTime(), "yyyy-MM-dd").getTime()-new Date().getTime()<0
                        || DateUtil.getDate(driverRide.getAnnualInspectionTime(), "yyyy-MM-dd").getTime()-new Date().getTime()<0
                        ){
                    return ApiJson.returnNG("您的证件已过期,请重新上传资料");
                    return ResultUtil.error("您的证件已过期,请重新上传资料");
                }
            }
            OrderRide orderRide=orderRideService.selectById(userOrderId);
            if(orderRide!=null && orderRide.getState()==6){
                return  ApiJson.returnNG("用户已取消该行程");
                return  ResultUtil.error("用户已取消该行程");
            }
            if(orderTravel!=null){
                if(type==1){//1确认同行 一个行程只能匹配一个订单
                    if(orderTravel.getState()==3){
                        return ApiJson.returnNG("该行程已经绑定了用户订单");
                        return ResultUtil.error("该行程已经绑定了用户订单");
                    }
                    orderTravel.setState(3);
                    //绑定司机行程、设置用户订单状态
@@ -1045,11 +1040,7 @@
                    if(ToolUtil.isNotEmpty(driverRide.getByInviteCode())){
                        /*计算推广用户的提成*/
                        UserInfo userInfo1=userInfoService.selectOne(new EntityWrapper<UserInfo>().eq("inviteCodeRide",driverRide.getByInviteCode()));
                        Param param=paramService.selectOne(new EntityWrapper<Param>().eq("type",22));
                        Double discount=100d;
                        if(param!=null){
                            discount=Double.valueOf(param.getContext());
                        }
                        Double money=orderRide.getMoney()*discount/100;//提成金额
                        userInfoService.updateById(userInfo1);
                        
@@ -1079,11 +1070,11 @@
                }
            }
            pushUtil.pushOrderState(1, orderRide.getUserId(), orderRide.getId(), 8, orderRide.getState(), null);
            return ApiJson.returnOK("");
            return ResultUtil.success("");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
     * 用户评价
@@ -1107,16 +1098,16 @@
    public Object evaluate(Integer orderId,Integer driverId,Integer userId,Integer score,String  content){
        try {
            if(userId == null || userId == 0){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if(driverId == null || driverId == 0){
                return ApiJson.returnNG("driverId不能为空");
                return ResultUtil.paranErr("driverId不能为空");
            }
            if(orderId == null || orderId == 0){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            if(score == null || score == 0){
                return ApiJson.returnNG("score不能为空");
                return ResultUtil.paranErr("score不能为空");
            }
            Evaluate evaluate=new Evaluate();
            evaluate.setAddTime(new Date());
@@ -1134,7 +1125,7 @@
                SensitiveWordUtil.init(sensitiveWordSet);
                boolean result = SensitiveWordUtil.contains(content);
                if(result){
                    return ApiJson.returnNG("评价内容包含敏感词");
                    return ResultUtil.error("评价内容包含敏感词");
                }
            }
            evaluate.setContent(content);
@@ -1161,11 +1152,11 @@
            orderRideService.updateById(orderTaxi);
            evaluateService.insert(evaluate);
            /*需要反订单数据*/
            return ApiJson.returnOK(orderId);
            return ResultUtil.success(orderId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("");
        return ResultUtil.error("");
    }
    /**
@@ -1191,13 +1182,13 @@
    public Object complaints(Integer driverId,Integer userId,String  content,String reMark,Integer type,Integer orderId) {
        try {
            if (userId == null || userId == 0) {
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            if (driverId == null || driverId == 0) {
                return ApiJson.returnNG("driverId不能为空");
                return ResultUtil.paranErr("driverId不能为空");
            }
            if (orderId == null || orderId == 0) {
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            Complaints complaints=new Complaints();
            complaints.setAddTime(new Date());
@@ -1212,7 +1203,7 @@
            SensitiveWordUtil.init(sensitiveWordSet);
            boolean result = SensitiveWordUtil.contains(content);
            if(result){
                return ApiJson.returnNG("投诉内容包含敏感词");
                return ResultUtil.error("投诉内容包含敏感词");
            }
            complaints.setContent(content);
            complaints.setReMark(reMark);
@@ -1240,11 +1231,11 @@
                orderTravel.setIsComplaint(2);
                orderTravelService.updateById(orderTravel);
            }
            return ApiJson.returnOK("投诉成功");
            return ResultUtil.success("投诉成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("");
        return ResultUtil.error("");
    }
    /**
     *  用户邀请司机接单(需要发送消息)
@@ -1262,10 +1253,10 @@
    public Object myOrders(Integer orderId,Integer userId){
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            if(ToolUtil.isEmpty(userId)){
                return ApiJson.returnNG("userId不能为空");
                return ResultUtil.paranErr("userId不能为空");
            }
            OrderTravel orderTravel=orderTravelService.selectById(orderId);
            UserInfo userInfo_=userInfoService.selectOne(new EntityWrapper<UserInfo>().eq("driverId",orderTravel.getDriverId()));//司机用户
@@ -1280,11 +1271,11 @@
                    throw new RuntimeException(e);
                }
            }
            return ApiJson.returnOK("邀请成功");
            return ResultUtil.success("邀请成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
     * 用户订单匹配列表页面,用户订单去匹配司机的行程
@@ -1306,16 +1297,16 @@
    public Object userMatchingOrderList(Integer orderId,Integer current,Integer size,Integer type,Double lon,Double lat){
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            if(ToolUtil.isEmpty(lon)){
                return ApiJson.returnNG("lon不能为空");
                return ResultUtil.paranErr("lon不能为空");
            }
            if(ToolUtil.isEmpty(lat)){
                return ApiJson.returnNG("lat不能为空");
                return ResultUtil.paranErr("lat不能为空");
            }
            OrderRide orderRide=orderRideService.selectById(orderId);
            current=current==null?1:current;
@@ -1330,11 +1321,11 @@
            orderRideVo.setNum(orderRide.getNum());
            orderRideVo.setType(type+1);//搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近
            List<OrderRideVo> orderRides=orderTravelService.getOrderTravel(orderRideVo);
            return ApiJson.returnOK(orderRides);
            return ResultUtil.success(orderRides);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -1360,16 +1351,16 @@
        try {
            try {
                if(ToolUtil.isEmpty(orderId)){
                    return ApiJson.returnNG("orderId不能为空");
                    return ResultUtil.paranErr("orderId不能为空");
                }
                if(ToolUtil.isEmpty(type)){
                    return ApiJson.returnNG("type不能为空");
                    return ResultUtil.paranErr("type不能为空");
                }
                if(ToolUtil.isEmpty(lon)){
                    return ApiJson.returnNG("lon不能为空");
                    return ResultUtil.paranErr("lon不能为空");
                }
                if(ToolUtil.isEmpty(lat)){
                    return ApiJson.returnNG("lat不能为空");
                    return ResultUtil.paranErr("lat不能为空");
                }
                OrderTravel orderTravel=orderTravelService.selectById(orderId);
                current=current==null?1:current;
@@ -1384,14 +1375,14 @@
                orderRideVo.setLat(lat);
                orderRideVo.setType(type+1);//搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近,4价格最低
                List<OrderRideVo> orderRides=orderRideService.getOrderRide(orderRideVo);
                return ApiJson.returnOK(orderRides);
                return ResultUtil.success(orderRides);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -1412,10 +1403,10 @@
    public Object orderInfo(Integer orderId,Integer type,Double lon,Double lat) {
        try {
            if(ToolUtil.isEmpty(orderId)){
                return ApiJson.returnNG("orderId不能为空");
                return ResultUtil.paranErr("orderId不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            //取司机的经纬度
            OrderRideInfoVo orderRideInfoVo=new OrderRideInfoVo();
@@ -1429,19 +1420,13 @@
                orderRideInfoVo=orderTravelService.getOrderInfo(orderRideInfoVo);
            }
            /*获取顺风车订单支付倒计时*/
            Param param = paramService.selectOne(new EntityWrapper<Param>().eq("type", 21));//顺风车支付倒计时设置(分钟)
            Integer time =10;
            if(param != null){
                time=Integer.parseInt(param.getContext());
                orderRideInfoVo.setDjs(time);
            }else{
                orderRideInfoVo.setDjs(time);
            }
            return ApiJson.returnOK(orderRideInfoVo);
            orderRideInfoVo.setDjs(time);
            return ResultUtil.success(orderRideInfoVo);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return ApiJson.returnNG("异常");
            return ResultUtil.error("异常");
        }
    /**
@@ -1456,10 +1441,10 @@
    public Object orderInfo(String inviteCode,Integer type) {
        try {
            if(ToolUtil.isEmpty(inviteCode)){
                return ApiJson.returnNG("inviteCode不能为空");
                return ResultUtil.paranErr("inviteCode不能为空");
            }
            if(ToolUtil.isEmpty(type)){
                return ApiJson.returnNG("type不能为空");
                return ResultUtil.paranErr("type不能为空");
            }
            Integer count=0;
            if(type==1){
@@ -1467,11 +1452,11 @@
            }else {
                count=userInfoService.selectCount(new EntityWrapper<UserInfo>().eq("inviteCodeRide",inviteCode));
            }
            return ApiJson.returnOK(count);
            return ResultUtil.success(count);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
    /**
@@ -1486,7 +1471,7 @@
    public Object orderInfo(Integer driverId) {
        try {
            if(ToolUtil.isEmpty(driverId)){
                return ApiJson.returnNG("driverId不能为空");
                return ResultUtil.paranErr("driverId不能为空");
            }
            DriverRide driverRide=driverRideService.selectById(driverId);
            Integer count=0;
@@ -1499,11 +1484,11 @@
                    count=1;
                }
            }
            return ApiJson.returnOK(count);
            return ResultUtil.success(count);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ApiJson.returnNG("异常");
        return ResultUtil.error("异常");
    }
}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/BrandMapper.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/ParamMapper.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/BrandMapper.xml
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderRideMapper.xml
@@ -31,11 +31,11 @@
    </sql>
    <!--用户顺风车订单 type :1待处理的订单,2根据线路、时间,人数综合匹配排序 3按时间排序最早,4距离最近排序,5价格最高 and r.startTime>=now()-->
    <select id="getOrderRide" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideVo">
        select r.*,_fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat)  as distance,u.headImg,u.sex,u.totalOrders,u.nickName as name,
        select r.*,calculate_distance(#{lat},#{lon},r.startLat, r.startLon) as distance,u.avatar as headImg,u.sex,u.totalOrders,u.nickName as name,
        r.id as userOrderId,t.id as  driverOrderId from app_order_ride r
        left join app_order_travel t on r.travelId=t.id
        left join app_user_info u on r.userId=u.id
        left join app_user_info u1 on r.driverId=u1.driverId
        left join t_user u on r.userId=u.id
        left join t_user u1 on r.driverId=u1.driverId
        <where>
            <if test="userId!=null">
                and r.userId = #{userId}
@@ -51,13 +51,13 @@
            order by r.startTime desc
        </if>
        <if test="type==2">
            order by _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) asc,r.startTime desc,(r.num-#{num}) asc
            order by calculate_distance(#{lat},#{lon},r.startLat, r.startLon) asc,r.startTime desc,(r.num-#{num}) asc
        </if>
        <if test="type==3">
            order by r.startTime asc
        </if>
        <if test="type==4">
            order by _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) asc
            order by calculate_distance(#{lat},#{lon},r.startLat, r.startLon) asc
        </if>
        <if test="type==5">
            order by r.money desc
@@ -79,11 +79,11 @@
    <!--获取订单详情-->
    <select id="getOrderInfo" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideInfoVo">
        select r.addTime,r.startTime,r.endName,r.startName,r.money,r.id as userOrderId,r.state,t.id as driverOrderId,r.isEvaluate,t.isComplaint,
        r.num,r.userId,r.driverId ,u.headImg,CASE  when r.isDai=1 then r.lxPhone else u.phone end as phone,u.sex,u.nickName as name,u.totalOrders,
        _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat) as distance
        r.num,r.userId,r.driverId ,u.avatar as headImg,CASE  when r.isDai=1 then r.lxPhone else u.phone end as phone,u.sex,u.nickName as name,u.totalOrders,
        calculate_distance(#{lat},#{lon},r.startLat, r.startLon) as distance
        from (select * from app_order_ride where id=#{userOrderId}) r
        left join app_order_travel t on r.travelId=t.id
        left join app_driver_ride d on d.id=r.driverId
        left join app_user_info u on r.userId=u.id
        left join t_user u on r.userId=u.id
    </select>
</mapper>
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/OrderTravelMapper.xml
@@ -25,11 +25,11 @@
    </sql>
    <!--顺风车司机订单行程 type :1待处理的订单,2根据线路、时间,人数综合匹配排序 3按时间排序,4距离最近排序 and r.startTime>=now()-->
    <select id="getOrderTravel" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideVo">
        select r.*,_fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat)  as distance,d.totalOrders,u.sex,u.headImg,u.realName as name,
        select r.*,calculate_distance(#{lat},#{lon},r.startLat, r.startLon)  as distance,d.totalOrders,u.sex,u.avatar as headImg,u.nickName as name,
        r.id as driverOrderId,i.id as userOrderId
        from app_order_travel r
        left join app_order_ride i on i.travelId=r.id
        left join app_user_info u on u.driverId = r.driverId
        left join t_user u on u.driverId = r.driverId
        left join app_driver_ride d on d.id=r.driverId
        <where>
            <if test="driverId!=null">
@@ -46,24 +46,24 @@
          order by r.startTime desc
        </if>
        <if test="type==2">
            order by  _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat)  asc,r.startTime desc,(r.num-#{num}) asc
            order by calculate_distance(#{lat},#{lon}, r.startLat,r.startLon)  asc,r.startTime desc,(r.num-#{num}) asc
        </if>
        <if test="type==3">
            order by r.startTime asc
        </if>
        <if test="type==4">
            order by _fnGetDistance(#{lon},#{lat}, r.startLon, r.startLat)  asc
            order by calculate_distance(#{lat},#{lon}, r.startLat,r.startLon)  asc
        </if>
        LIMIT #{current},#{size}
    </select>
    <!--根据订单id获取订单详情-->
    <select id="getOrderInfo" resultType="com.stylefeng.guns.modular.shunfeng.model.vo.OrderRideInfoVo">
        select t.addTime,r.startTime,r.endName,r.startName,r.money,r.id as userOrderId,r.state,t.id as driverOrderId,r.isComplaint,r.num,
        r.userId,r.driverId,u.headImg,u.phone,u.sex,u.realName as name,d.carNum,d.carType,d.totalOrders,IFNULL(format(d.evaluateScore/d.evaluateNum,2),0)as evaluateScore,r.evaluateScoreUser,r.isEvaluate
        r.userId,r.driverId,u.avatar as headImg,u.phone,u.sex,u.nickName as realName as name,d.carNum,d.carType,d.totalOrders,IFNULL(format(d.evaluateScore/d.evaluateNum,2),0)as evaluateScore,r.evaluateScoreUser,r.isEvaluate
        ,r.content
        from (select * from app_order_travel where id= #{driverOrderId}) t
        left join app_order_ride r on t.id=r.travelId
        left join app_driver_ride d on d.id=t.driverId
        left join app_user_info u on d.id=u.driverId
        left join t_user u on d.id=u.driverId
    </select>
</mapper>
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/ParamMapper.xml
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/Brand.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/Param.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IBrandService.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IParamService.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/BrandServiceImpl.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/ParamServiceImpl.java
File was deleted
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/task/base/AbstractJob.java
@@ -3,7 +3,6 @@
import com.stylefeng.guns.core.util.SpringContextHolder;
import com.stylefeng.guns.modular.shunfeng.service.IOrderRideService;
import com.stylefeng.guns.modular.shunfeng.service.IParamService;
import com.stylefeng.guns.modular.shunfeng.service.ITimeTaskService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
@@ -22,14 +21,11 @@
    protected ITimeTaskService timeTaskService;
    protected IParamService paramService;
    protected IOrderRideService orderRideService;
    public AbstractJob(){
        this.timeTaskService = SpringContextHolder.getBean( ITimeTaskService.class);
        this.paramService = SpringContextHolder.getBean( IParamService.class);
        this.orderRideService = SpringContextHolder.getBean( IOrderRideService.class);
    }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -2204,7 +2204,12 @@
                //调用中台创建订单及拉起支付接口
                TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
                tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
                tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
                //追缴单不要分账
                if(0 == orderPrivateCar.getRecoveryOrder()){
                    tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
                }else{
                    tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
                }
                tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
                tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId());
                tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId());
@@ -2218,6 +2223,11 @@
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                if(0 == orderPrivateCar.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                }
                goodsInfo.add(goodsInfoRequest);
                tradeOrderCreateData.setGoodsInfo(goodsInfo);
                TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
@@ -2238,6 +2248,11 @@
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                if(0 == orderPrivateCar.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                }
                goodsInfo.add(goodsInfoRequest);
                tradePayOff1Data.setGoodsInfo(goodsInfo);
                PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
@@ -162,7 +162,9 @@
        a.emergencyContactNumber as emergencyContactNumber,
        a.balance as balance,
        if((select count(1) from t_user_taxi_card where userId = #{uid}) = 0, 0, 1) as payTaxiCar,
        if((select id from t_merchant where auditStatus = 2 and userType = 1 and userId = a.id and state = 1) is null, 0, 1) as merchant
        if((select id from t_merchant where auditStatus = 2 and userType = 1 and userId = a.id and state = 1) is null, 0, 1) as merchant,
        a.isDriverRide,
        a.driverId
        from t_user a where 1 = 1
        <if test="null != uid">
            and a.id = #{uid}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.util;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.account.controller.AppOrderController;
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
@@ -84,7 +85,7 @@
            //修改过期的商家优惠券
            userMerchantCouponService.updateExpired();
            //处理超时未支付的订单
//            timoutNoPayment();
            timoutNoPayment();
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -142,9 +143,26 @@
     */
    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 30 MINUTE)"));
                .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 72 HOUR)"));
        for (OrderPrivateCar orderPrivateCar : orderPrivateCars) {
            try {
                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                Company company = companyService.selectById(driver.getCompanyId());
                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
                if(null == orderPrivateCar.getIsCreated()){
                    //先调中台创建订单
                    CreateOrderRequest createOrderRequest = new CreateOrderRequest();
                    createOrderRequest.setTreatShopId(driver.getEmpId().toString());
                    createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
                    createOrderRequest.setCharge(new BigDecimal(orderPrivateCar.getOrderMoney()));
                    createOrderRequest.setOrderNo("PR" + orderPrivateCar.getId());
                    createOrderRequest.setOrderId(orderPrivateCar.getTravelId());
                    createOrderRequest.setCustomerId(userInfo.getOnconUUID());
                    OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
                    orderPrivateCar.setIsCreated(1);
                    orderPrivateCar.setTravelId(orderInfo.getOrderId());
                    orderPrivateCarService.updateById(orderPrivateCar);
                }
                //使用备付金进行支付订单
                TradePayOffData tradePayOffData = new TradePayOffData();
                tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
@@ -154,44 +172,40 @@
                String retCode = payInfo.getRetCode();
                if (!"000000".equals(retCode)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    continue;
                    return;
                }
                PayInfoData data = payInfo.getData();
                String status = data.getStatus();
                if ("3".equals(status)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    continue;
                    return;
                }
                if("0".equals(status)){
                    //查询支付信息
                    GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
                    getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
                    GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
                    status = getPaymentInfo.getStatus();
                }
                PayInfoData payInfoData = payInfo.getData();
                PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
                //支付成功,通知三方
                PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
                paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
                paymentOrderRequest.setPaymentInfo(payInfoData.getPaymentInfos());
                paymentOrderRequest.setOrderId("PR" + orderPrivateCar.getId());
                paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
                paymentOrderRequest.setPayTime(data.getPayTime());
                paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
                //查询三方订单状态
                Driver driver1 = driverService.selectById(orderPrivateCar.getDriverId());
                Company company = companyService.selectById(driver1.getCompanyId());
                UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar.getUserId());
                GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
                request.setCustomerId(userInfo1.getOnconUUID());
                request.setOrderNo("PR" + orderPrivateCar.getId());
                request.setDriverId(driver1.getEmpId().toString());
                ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
                Integer status1 = travelItineraryList.getList().get(0).getStatus();
                if(9 != status1){
                if(!"0".equals(status)){
                    //支付成功,通知三方
                    PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
                    paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
                    paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
                    paymentOrderRequest.setOrderId(orderPrivateCar.getTravelId());
                    paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
                    paymentOrderRequest.setPayTime(data.getPayTime());
                    paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                    OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(orderPrivateCar.getTravelId());
                    request1.setStatus(9);
                    if (null != orderPrivateCar.getDriverId()) {
                        request1.setDriverId(driver1.getEmpId().toString());
                        request1.setDriverId(driver.getEmpId().toString());
                        request1.setSupplierShopId(company.getEnterCode());
                    }
                    if (2 == orderPrivateCar.getPromotion()) {
@@ -199,38 +213,55 @@
                        request1.setPromoterId(driver2.getEmpId().toString());
                    }
                    OrderUtil.modifyTravelItinerary(request1);
                    String payId = payInfo.getData().getPayId();
                    //copy原始订单后生成追缴单
                    OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
                    BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
                    orderPrivateCar1.setId(null);
                    orderPrivateCar1.setRecoveryOrder(1);
                    //修改原始订单为支付状态
                    orderPrivateCar.setState(9);
                    orderPrivateCar.setPayType(5);
                    orderPrivateCar.setPayMoney(orderPrivateCar.getOrderMoney());
                    orderPrivateCarService.updateById(orderPrivateCar);
                    //保存追缴单
                    orderPrivateCarService.insert(orderPrivateCar1);
                    //添加三方支付记录
                    try {
                        paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                    Driver driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
                    UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar1.getUserId());
                    Company company1 = companyService.selectById(driver1.getCompanyId());
                    //调三方订单中心创建行程单
                    CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
                    request.setOrderNo("PR" + orderPrivateCar1.getId());
                    request.setCustomerId(userInfo1.getOnconUUID());
                    request.setDriverId(driver1.getEmpId().toString());
                    request.setSupplierShopId(company1.getEnterCode());
                    request.setServiceType(2);
                    String travelItinerary = OrderUtil.createTravelItinerary(request);
                    orderPrivateCar1.setTravelId(travelItinerary);
                    orderPrivateCar1.setIsCreated(0);
                    orderPrivateCarService.updateById(orderPrivateCar1);
                    //修改订单状态为待支付
                    ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
                    modifyTravelItineraryRequest.setOrderId(orderPrivateCar1.getTravelId());
                    modifyTravelItineraryRequest.setStatus(orderPrivateCar1.getState());
                    modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
                    modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
                    if (2 == orderPrivateCar1.getPromotion()) {
                        Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
                        modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
                    }
                    OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
                }
                String payId = payInfo.getData().getPayId();
                //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);
                //添加三方支付记录
                paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
                Driver driver = driverService.selectById(orderPrivateCar1.getDriverId());
                UserInfo userInfo = userInfoService.selectById(orderPrivateCar1.getUserId());
                //调用三方创建订单
                CreateOrderRequest createOrderRequest = new CreateOrderRequest();
                createOrderRequest.setTreatShopId(driver.getEmpId().toString());
                createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
                createOrderRequest.setCharge(new BigDecimal(orderPrivateCar1.getOrderMoney()));
                createOrderRequest.setOrderNo("PR" + orderPrivateCar1.getId());
                createOrderRequest.setCustomerId(userInfo.getOnconUUID());
                OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
                orderPrivateCar1.setTravelId(orderInfo.getOrderId());
                orderPrivateCar1.setIsCreated(1);
                //保存追缴单
                orderPrivateCarService.insert(orderPrivateCar1);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -241,6 +272,23 @@
                .eq("isDelete", 1).eq("recoveryOrder", 0).last(" and now() >= DATE_ADD(insertTime, INTERVAL 24 HOUR)"));
        for (OrderTaxi orderTaxi : orderTaxis) {
            try {
                Driver driver = driverService.selectById(orderTaxi.getDriverId());
                Company company = companyService.selectById(driver.getCompanyId());
                UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
                if(null == orderTaxi.getIsCreated()){
                    //先调中台创建订单
                    CreateOrderRequest createOrderRequest = new CreateOrderRequest();
                    createOrderRequest.setTreatShopId(driver.getEmpId().toString());
                    createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
                    createOrderRequest.setCharge(new BigDecimal(orderTaxi.getOrderMoney()));
                    createOrderRequest.setOrderNo("TA" + orderTaxi.getId());
                    createOrderRequest.setOrderId(orderTaxi.getTravelId());
                    createOrderRequest.setCustomerId(userInfo.getOnconUUID());
                    OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
                    orderTaxi.setIsCreated(1);
                    orderTaxi.setTravelId(orderInfo.getOrderId());
                    orderTaxiService.updateById(orderTaxi);
                }
                //使用备付金进行支付订单
                TradePayOffData tradePayOffData = new TradePayOffData();
                tradePayOffData.setPartnerPayId(orderTaxi.getTravelId());
@@ -250,31 +298,40 @@
                String retCode = payInfo.getRetCode();
                if (!"000000".equals(retCode)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    continue;
                    return;
                }
                PayInfoData data = payInfo.getData();
                String status = data.getStatus();
                if ("3".equals(status)) {
                    log.error("备付金支付失败:{}", payInfo.getRetMsg());
                    continue;
                    return;
                }
                //查询三方订单状态
                Driver driver1 = driverService.selectById(orderTaxi.getDriverId());
                Company company = companyService.selectById(driver1.getCompanyId());
                UserInfo userInfo1 = userInfoService.selectById(orderTaxi.getUserId());
                GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
                request.setCustomerId(userInfo1.getOnconUUID());
                request.setOrderNo("TA" + orderTaxi.getId());
                request.setDriverId(driver1.getEmpId().toString());
                ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
                Integer status1 = travelItineraryList.getList().get(0).getStatus();
                if(8 != status1){
                if("0".equals(status)){
                    //查询支付信息
                    GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
                    getPaymentInfoDataRequest.setPartnerPayId(orderTaxi.getTravelId());
                    GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
                    status = getPaymentInfo.getStatus();
                }
                PayInfoData payInfoData = payInfo.getData();
                PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
                if(!"0".equals(status)){
                    //支付成功,通知三方
                    PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
                    paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
                    paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
                    paymentOrderRequest.setOrderId(orderTaxi.getTravelId());
                    paymentOrderRequest.setCharge(BigDecimal.valueOf(orderTaxi.getOrderMoney()));
                    paymentOrderRequest.setPayTime(data.getPayTime());
                    paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
                    OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(orderTaxi.getTravelId());
                    request1.setStatus(8);
                    request1.setStatus(9);
                    if (null != orderTaxi.getDriverId()) {
                        request1.setDriverId(driver1.getEmpId().toString());
                        request1.setDriverId(driver.getEmpId().toString());
                        request1.setSupplierShopId(company.getEnterCode());
                    }
                    if (2 == orderTaxi.getPromotion()) {
@@ -282,37 +339,55 @@
                        request1.setPromoterId(driver2.getEmpId().toString());
                    }
                    OrderUtil.modifyTravelItinerary(request1);
                    String payId = payInfo.getData().getPayId();
                    //copy原始订单后生成追缴单
                    OrderTaxi orderTaxi1 = new OrderTaxi();
                    BeanUtils.copyProperties(orderTaxi, orderTaxi1);
                    orderTaxi1.setId(null);
                    orderTaxi1.setRecoveryOrder(1);
                    //修改原始订单为支付状态
                    orderTaxi.setState(9);
                    orderTaxi.setPayType(5);
                    orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
                    orderTaxiService.updateById(orderTaxi);
                    //保存追缴单
                    orderTaxiService.insert(orderTaxi1);
                    //添加三方支付记录
                    try {
                        paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderTaxi.getOrderMoney(), payId, 2);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                    Driver driver1 = driverService.selectById(orderTaxi1.getDriverId());
                    UserInfo userInfo1 = userInfoService.selectById(orderTaxi1.getUserId());
                    Company company1 = companyService.selectById(driver1.getCompanyId());
                    //调三方订单中心创建行程单
                    CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
                    request.setOrderNo("TA" + orderTaxi1.getId());
                    request.setCustomerId(userInfo1.getOnconUUID());
                    request.setDriverId(driver1.getEmpId().toString());
                    request.setSupplierShopId(company1.getEnterCode());
                    request.setServiceType(1);
                    String travelItinerary = OrderUtil.createTravelItinerary(request);
                    orderTaxi1.setTravelId(travelItinerary);
                    orderTaxi1.setIsCreated(0);
                    orderTaxiService.updateById(orderTaxi1);
                    //修改订单状态为待支付
                    ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
                    modifyTravelItineraryRequest.setOrderId(orderTaxi1.getTravelId());
                    modifyTravelItineraryRequest.setStatus(orderTaxi1.getState());
                    modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
                    modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
                    if (2 == orderTaxi1.getPromotion()) {
                        Driver driver2 = driverService.selectById(orderTaxi1.getPromotionDriverId());
                        modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
                    }
                    OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
                }
                String payId = payInfo.getData().getPayId();
                //copy原始订单后生成追缴单
                OrderTaxi orderTaxi1 = new OrderTaxi();
                BeanUtils.copyProperties(orderTaxi, orderTaxi1);
                orderTaxi1.setId(null);
                orderTaxi1.setRecoveryOrder(1);
                //修改原始订单为支付状态
                orderTaxi.setState(8);
                orderTaxi.setPayType(5);
                orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
                orderTaxiService.updateById(orderTaxi);
                //添加三方支付记录
                paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderTaxi.getId(), 2, 3, orderTaxi.getOrderMoney(), payId, 2);
                Driver driver = driverService.selectById(orderTaxi1.getDriverId());
                UserInfo userInfo = userInfoService.selectById(orderTaxi1.getUserId());
                //调用三方创建订单
                CreateOrderRequest createOrderRequest = new CreateOrderRequest();
                createOrderRequest.setTreatShopId(driver.getEmpId().toString());
                createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
                createOrderRequest.setCharge(new BigDecimal(orderTaxi1.getOrderMoney()));
                createOrderRequest.setOrderNo("TA" + orderTaxi1.getId());
                createOrderRequest.setCustomerId(userInfo.getOnconUUID());
                OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
                orderTaxi1.setTravelId(orderInfo.getOrderId());
                orderTaxi1.setIsCreated(1);
                //保存追缴单
                orderTaxiService.insert(orderTaxi1);
            } catch (Exception e) {
                e.printStackTrace();
            }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -92,30 +92,30 @@
//        System.err.println(getPaymentInfo);
        
        //拉起支付
        TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
        tradePayOff1Data.setPartnerId("5400004");
        tradePayOff1Data.setScene("TRAFFIC");
        tradePayOff1Data.setPartnerPayId("1951088602595872768");
        tradePayOff1Data.setCurrency("RMB");
        tradePayOff1Data.setTotalFee("1");
        tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay");
        tradePayOff1Data.setClientIp("127.0.0.1");
        tradePayOff1Data.setNeedLoginFlag("N");
        tradePayOff1Data.setOrderDesc("出行订单支付");
        tradePayOff1Data.setAccessMode("APP");
        List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
        GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
        goodsInfoRequest.setId("981100006005901");
        goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
        goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
        goodsInfoRequest.setProfitSharing("1");
        goodsInfoRequest.setAreaInfo("520100");
        goodsInfoRequest.setPayType("0");
        goodsInfoRequest.setBusinessType("10408");
        goodsInfo.add(goodsInfoRequest);
        tradePayOff1Data.setGoodsInfo(goodsInfo);
        PayInfo payInfo = tradePayOff1(tradePayOff1Data);
        System.err.println(payInfo);
//        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)
        
        
@@ -190,7 +190,7 @@
        tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> {
            goodsInfoRequest.setId("981100006005901");
            goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
            goodsInfoRequest.setProfitSharing("1");
            goodsInfoRequest.setAreaInfo("520100");
            goodsInfoRequest.setPayType("0");
            goodsInfoRequest.setBusinessType("10408");
@@ -396,7 +396,6 @@
        tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> {
            goodsInfoRequest.setId("981100006005901");
            goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
            goodsInfoRequest.setProfitSharing("1");
            goodsInfoRequest.setAreaInfo("520100");
            goodsInfoRequest.setPayType("0");
            goodsInfoRequest.setBusinessType("10408");
@@ -520,13 +519,18 @@
        List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
        PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
        paymentInfoRequest.setPayModeId("501212");
        paymentInfoRequest.setRealFee(tradePayOffData.getTotalFee().toString());
        paymentInfoRequest.setTradeFee(tradePayOffData.getTotalFee().toString());
        paymentInfoRequest.setAccountTyp("501");
        paymentInfoRequests.add(paymentInfoRequest);
        tradePayOffData.setPaymentInfos(paymentInfoRequests);
        List<GoodsInfo> goodsInfo = new ArrayList<>();
        GoodsInfo goodsInfo1 = new GoodsInfo();
        goodsInfo1.setMerchantCode("B00000872");
        goodsInfo1.setMerchantCode("B00000905");
        goodsInfo1.setCustId("CB0000004686");
        goodsInfo1.setCustName("证联消费平台交易客户");
        goodsInfo1.setBusinessType("10408");
        goodsInfo1.setAgreementNo("00000000468618354161754464398681");
        goodsInfo1.setProfitSharing("1");
        goodsInfo.add(goodsInfo1);
        tradePayOffData.setGoodsInfo(goodsInfo);
@@ -664,7 +668,7 @@
        log.info("【(补偿单)支付成功通知】请求结果:" + result);
        JSONObject jsonObject = JSON.parseObject(result);
        String resCode = jsonObject.getString("resCode");
        if (!"0".equals(resCode)) {
        if (!"000000".equals(resCode)) {
            log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
            throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg"));
        }
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
@@ -39,6 +39,10 @@
     */
    private String channelSource;
    /**
     * 行程单ID
     */
    private String orderId;
    /**
     * 业务侧订单号
     */
    private String orderNo;
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
@@ -39,6 +39,14 @@
     */
    private String totalFee;
    /**
     * 支付工单状态
     * 0    待支付
     * 1    部分支付成功
     * 2    支付成功
     * 3    支付失败
     */
    private String status;
    /**
     * 商品信息
     */
    private List<GoodsInfoRequest> goodsInfo;
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfo.java
@@ -21,6 +21,14 @@
     */
    private String custName;
    /**
     *交通场景固定值
     */
    private String businessType;
    /**
     * 免密支付协议号
     */
    private String agreementNo;
    /**
     * 分账标识。0:不分账,1:分账
     */
    private String profitSharing;
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
@@ -12,4 +12,16 @@
     * 支付模式。此场景下默认传501212(测试和生产一致)
     */
    private String payModeId;
    /**
     * 支付金额
     */
    private String realFee;
    /**
     *
     */
    private String tradeFee;
    /**
     * 账户类型 501
     */
    private String accountTyp;
}
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
@@ -26,7 +26,7 @@
    /**
     * 支付明细json串
     */
    private List<PaymentInfo> paymentInfo;
    private String paymentInfo;
    /**
     * 订单ID
     */
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
@@ -49,6 +49,10 @@
    private Integer merchant;
    @ApiModelProperty("是否进件(0=否,1=是)")
    private Integer isCould;
    @ApiModelProperty("是否为顺风车司机(0否,1是)")
    private Integer isDriverRide;
    @ApiModelProperty("顺风车司机id")
    private Integer driverId;
    public Integer getIsCould() {
        return isCould;
@@ -177,7 +181,23 @@
    public void setMerchant(Integer merchant) {
        this.merchant = merchant;
    }
    public Integer getIsDriverRide() {
        return isDriverRide;
    }
    public void setIsDriverRide(Integer isDriverRide) {
        this.isDriverRide = isDriverRide;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    @Override
    public String toString() {
        return "UserInfoWarpper{" +
@@ -218,6 +238,8 @@
            userInfoWarpper.setPayTaxiCar(null != map.get("payTaxiCar") ? Integer.valueOf(String.valueOf(map.get("payTaxiCar"))) : 0);
            userInfoWarpper.setMerchant(null != map.get("merchant") ? Integer.valueOf(String.valueOf(map.get("merchant"))) : 0);
            userInfoWarpper.setIsCould(Integer.valueOf(String.valueOf(map.get("isCloud"))));
            userInfoWarpper.setIsDriverRide(null != map.get("isDriverRide") ? Integer.valueOf(String.valueOf(map.get("isDriverRide"))) : 0);
            userInfoWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
        }
        return userInfoWarpper;
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -1615,7 +1615,12 @@
                //调用中台创建订单及拉起支付接口
                TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
                tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
                tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
                //追缴单不要分账
                if(0 == orderTaxi.getRecoveryOrder()){
                    tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderTaxi.getPromotion() == 2 ? 1 : 0) + "\"}");
                }else{
                    tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
                }
                tradeOrderCreateData.setCharge(new BigDecimal(orderMoney));
                tradeOrderCreateData.setOrderId(orderTaxi.getTravelId());
                tradeOrderCreateData.setOrderNo("TA" + orderTaxi.getId());
@@ -1629,6 +1634,11 @@
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                if(0 == orderTaxi.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                }
                goodsInfo.add(goodsInfoRequest);
                tradeOrderCreateData.setGoodsInfo(goodsInfo);
                TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData);
@@ -1649,6 +1659,11 @@
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                if(0 == orderTaxi.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
                }else{
                    goodsInfoRequest.setProfitSharing("0");
                }
                goodsInfo.add(goodsInfoRequest);
                tradePayOff1Data.setGoodsInfo(goodsInfo);
                PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data);
UserQYTTravel/guns-admin/src/main/resources/application.yml
@@ -53,7 +53,7 @@
eureka:
  client:
    service-url: #注册中心地址
      defaultZone: http://sinata:sinata@192.168.110.111:8000/eureka #启用身份验证的方式连接
      defaultZone: http://sinata:sinata@192.168.110.85:8000/eureka #启用身份验证的方式连接
    register-with-eureka: true #在注册中心进行注册
    fetch-registry: true #从Eureka中获取注册信息。
UserQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,146 +1,173 @@
package com.stylefeng.guns;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Company;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
import java.util.List;
/**
 * SpringBoot方式启动类
 *
 * @author stylefeng
 * @Date 2017/5/21 12:06
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
public class GunsApplicationTest {
    @Autowired
    private IOrderPrivateCarService orderPrivateCarService;
    @Autowired
    private IUserInfoService userInfoService;
    @Autowired
    private IDriverService driverService;
    @Autowired
    private ICompanyService companyService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Test
    public void test(){
        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(211);
        //使用备付金进行支付订单
        TradePayOffData tradePayOffData = new TradePayOffData();
        tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
        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());
            return;
        }
        PayInfoData data = payInfo.getData();
        String status = data.getStatus();
        if ("3".equals(status)) {
            log.error("备付金支付失败:{}", payInfo.getRetMsg());
            return;
        }
        PayInfoData payInfoData = payInfo.getData();
        PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
        //支付成功,通知三方
        PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
        paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
        paymentOrderRequest.setPaymentInfo(payInfoData.getPaymentInfos());
        paymentOrderRequest.setOrderId("PR" + orderPrivateCar.getId());
        paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
        paymentOrderRequest.setPayTime(data.getPayTime());
        paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
        OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
        //查询三方订单状态
        Driver driver1 = driverService.selectById(orderPrivateCar.getDriverId());
        Company company = companyService.selectById(driver1.getCompanyId());
        UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar.getUserId());
        GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
        request.setCustomerId(userInfo1.getOnconUUID());
        request.setOrderNo("PR" + orderPrivateCar.getId());
        request.setDriverId(driver1.getEmpId().toString());
        ListPage<List<TravelItinerary>> travelItineraryList = OrderUtil.getTravelItineraryList(request);
        Integer status1 = travelItineraryList.getList().get(0).getStatus();
        if(9 != status1){
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderPrivateCar.getTravelId());
            request1.setStatus(9);
            if (null != orderPrivateCar.getDriverId()) {
                request1.setDriverId(driver1.getEmpId().toString());
                request1.setSupplierShopId(company.getEnterCode());
            }
            if (2 == orderPrivateCar.getPromotion()) {
                Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request1.setPromoterId(driver2.getEmpId().toString());
            }
            OrderUtil.modifyTravelItinerary(request1);
        }
        String payId = payInfo.getData().getPayId();
        //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);
        //添加三方支付记录
        try {
            paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        Driver driver = driverService.selectById(orderPrivateCar1.getDriverId());
        UserInfo userInfo = userInfoService.selectById(orderPrivateCar1.getUserId());
        //调用三方创建订单
        CreateOrderRequest createOrderRequest = new CreateOrderRequest();
        createOrderRequest.setTreatShopId(driver.getEmpId().toString());
        createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
        createOrderRequest.setCharge(new BigDecimal(orderPrivateCar1.getOrderMoney()));
        createOrderRequest.setOrderNo("PR" + orderPrivateCar1.getId());
        createOrderRequest.setCustomerId(userInfo.getOnconUUID());
        OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
        orderPrivateCar1.setTravelId(orderInfo.getOrderId());
        orderPrivateCar1.setIsCreated(1);
        //保存追缴单
        orderPrivateCarService.insert(orderPrivateCar1);
    }
}
//package com.stylefeng.guns;
//
//import com.alibaba.fastjson.JSON;
//import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
//import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
//import com.stylefeng.guns.modular.system.model.Company;
//import com.stylefeng.guns.modular.system.model.Driver;
//import com.stylefeng.guns.modular.system.model.UserInfo;
//import com.stylefeng.guns.modular.system.service.ICompanyService;
//import com.stylefeng.guns.modular.system.service.IDriverService;
//import com.stylefeng.guns.modular.system.service.IUserInfoService;
//import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
//import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
//import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
//import lombok.extern.slf4j.Slf4j;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.math.BigDecimal;
//import java.util.List;
//
///**
// * SpringBoot方式启动类
// *
// * @author stylefeng
// * @Date 2017/5/21 12:06
// */
//@Slf4j
//@RunWith(SpringRunner.class)
//@SpringBootTest
//public class GunsApplicationTest {
//
//    @Autowired
//    private IOrderPrivateCarService orderPrivateCarService;
//
//    @Autowired
//    private IUserInfoService userInfoService;
//
//    @Autowired
//    private IDriverService driverService;
//    @Autowired
//    private ICompanyService companyService;
//    @Autowired
//    private IPaymentRecordService paymentRecordService;
//
//
//
//
//    @Test
//    public void test(){
//        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(228);
//        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
//        Company company = companyService.selectById(driver.getCompanyId());
//        UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
//        if(null == orderPrivateCar.getIsCreated()){
//            //先调中台创建订单
//            CreateOrderRequest createOrderRequest = new CreateOrderRequest();
//            createOrderRequest.setTreatShopId(driver.getEmpId().toString());
//            createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}");
//            createOrderRequest.setCharge(new BigDecimal(orderPrivateCar.getOrderMoney()));
//            createOrderRequest.setOrderNo("PR" + orderPrivateCar.getId());
//            createOrderRequest.setOrderId(orderPrivateCar.getTravelId());
//            createOrderRequest.setCustomerId(userInfo.getOnconUUID());
//            OrderInfo orderInfo = OrderUtil.tradeOrderCreate(createOrderRequest);
//            orderPrivateCar.setIsCreated(1);
//            orderPrivateCar.setTravelId(orderInfo.getOrderId());
//            orderPrivateCarService.updateById(orderPrivateCar);
//        }
//        //使用备付金进行支付订单
//        TradePayOffData tradePayOffData = new TradePayOffData();
//        tradePayOffData.setPartnerPayId(orderPrivateCar.getTravelId());
//        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());
//            return;
//        }
//        PayInfoData data = payInfo.getData();
//        String status = data.getStatus();
//        if ("3".equals(status)) {
//            log.error("备付金支付失败:{}", payInfo.getRetMsg());
//            return;
//        }
//        if("0".equals(status)){
//            //查询支付信息
//            GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
//            getPaymentInfoDataRequest.setPartnerPayId(orderPrivateCar.getTravelId());
//            GetPaymentInfo getPaymentInfo = OrderUtil.paymentInfo(getPaymentInfoDataRequest);
//            status = getPaymentInfo.getStatus();
//        }
//        PayInfoData payInfoData = payInfo.getData();
//        PaymentInfo paymentInfo = payInfoData.getPaymentInfos().get(0);
//        if(!"0".equals(status)){
//            //支付成功,通知三方
//            PaymentOrderRequest paymentOrderRequest = new PaymentOrderRequest();
//            paymentOrderRequest.setPayItemId(paymentInfo.getPayItemId());
//            paymentOrderRequest.setPaymentInfo(JSON.toJSONString(payInfoData.getPaymentInfos()));
//            paymentOrderRequest.setOrderId(orderPrivateCar.getTravelId());
//            paymentOrderRequest.setCharge(BigDecimal.valueOf(orderPrivateCar.getOrderMoney()));
//            paymentOrderRequest.setPayTime(data.getPayTime());
//            paymentOrderRequest.setPaymentSerialNumber(payInfoData.getPayId());
//            OrderInfo orderInfo1 = OrderUtil.paymentOrder(paymentOrderRequest);
//
//            //中台修改订单状态
//            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
//            request1.setOrderId(orderPrivateCar.getTravelId());
//            request1.setStatus(9);
//            if (null != orderPrivateCar.getDriverId()) {
//                request1.setDriverId(driver.getEmpId().toString());
//                request1.setSupplierShopId(company.getEnterCode());
//            }
//            if (2 == orderPrivateCar.getPromotion()) {
//                Driver driver2 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
//                request1.setPromoterId(driver2.getEmpId().toString());
//            }
//            OrderUtil.modifyTravelItinerary(request1);
//
//            String payId = payInfo.getData().getPayId();
//            //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);
//            //添加三方支付记录
//            try {
//                paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderPrivateCar.getOrderMoney(), payId, 2);
//            } catch (Exception e) {
//                throw new RuntimeException(e);
//            }
//
//
//            Driver driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
//            UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar1.getUserId());
//            Company company1 = companyService.selectById(driver1.getCompanyId());
//            //调三方订单中心创建行程单
//            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
//            request.setOrderNo("PR" + orderPrivateCar1.getId());
//            request.setCustomerId(userInfo1.getOnconUUID());
//            request.setDriverId(driver1.getEmpId().toString());
//            request.setSupplierShopId(company1.getEnterCode());
//            request.setServiceType(2);
//            String travelItinerary = OrderUtil.createTravelItinerary(request);
//            orderPrivateCar1.setTravelId(travelItinerary);
//            orderPrivateCar1.setIsCreated(0);
//            orderPrivateCarService.updateById(orderPrivateCar1);
//            //修改订单状态为待支付
//            ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
//            modifyTravelItineraryRequest.setOrderId(orderPrivateCar1.getTravelId());
//            modifyTravelItineraryRequest.setStatus(orderPrivateCar1.getState());
//            modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
//            modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
//            if (2 == orderPrivateCar1.getPromotion()) {
//                Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
//                modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
//            }
//            OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
//        }
//    }
//}