Pu Zhibing
2025-11-05 0b0f2682b308e76a33ce96571dfeb6388d9cd63d
Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong
8个文件已修改
213 ■■■■■ 已修改文件
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -6,7 +6,6 @@
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import java.util.List;
import java.util.Map;
@@ -164,4 +163,7 @@
     * @throws Exception
     */
    List<OrderCrossCity> taskMidAxbUnBindSend() throws Exception;
    ResultUtil cancleOrder(Integer orderId) throws Exception;
}
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -167,6 +167,15 @@
    @Autowired
    private ICompanyService companyService;
    @Autowired
    private WeChatUtil weChatUtil;
    @Value("${filePath}")
    private String filePath;
    @Value("${qyt.admin_url}")
    private String adminUrl;
    /**
     * 获取司机抢单页面的订单详情
@@ -698,9 +707,27 @@
        //添加消息
        systemNoticeService.addSystemNotice(1, "您的跨城订单已下单成功!", orderCrossCity.getUserId(), 1);
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setId(orderCrossCity.getId());
//        baseWarpper.setContent("");
//        //生成小程序二维码,用于司机展示让用户跳转到小程序完成订单支付
//        String appletPath = "pages/home/home";
//        InputStream inputStream = weChatUtil.getwxacodeunlimit(appletPath, "", "release");
//        if (inputStream != null) {
//            File file = FileUtil.writeFromStream(inputStream, new File(filePath + "/" + UUID.randomUUID().toString() + ".png"));
//            HttpRequest post = HttpUtil.createPost(adminUrl + "/upload/image");
//            post.form("file", file);
//            HttpResponse execute = post.execute();
//            int status = execute.getStatus();
//            if(200 != status){
//                throw new RuntimeException("上传图片异常");
//            }
//            JSONObject jsonObject = JSON.parseObject(execute.body());
//            Integer code = jsonObject.getInteger("code");
//            if(200 == code){
//                baseWarpper.setContent(jsonObject.getString("data"));
//            }
//        }
        //创建定时任务,取消订单30分钟
        TimerTask timerTask = new TimerTask() {
@@ -1177,4 +1204,39 @@
            size++;
        }
    }
    @Override
    public ResultUtil cancleOrder(Integer orderId) throws Exception {
        OrderCrossCity orderCrossCity = orderCrossCityMapper.selectById(orderId);
        if(orderCrossCity.getState() == 7 && orderCrossCity.getPayMoney() == null){
            orderCrossCity.setState(10);
            orderCrossCityMapper.updateById(orderCrossCity);
            OrderCancel orderCancel = new OrderCancel();
            orderCancel.setOrderId(orderId);
            orderCancel.setOrderType(3);
            orderCancel.setReason("用户未及时付款,系统自动取消订单");
            orderCancel.setRemark("用户未及时付款,系统自动取消订单");
            orderCancel.setState(2);
            orderCancel.setInsertTime(new Date());
            orderCancel.setUserType(2);
            orderCancelService.insert(orderCancel);
            //修改司机座位
            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
            lineShiftDriverMapper.updateById(lineShiftDriver);
            //修改司机为空闲
            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
            if(orderCrossCities.size() == 0){
                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
                driver.setState(2);
                driverService.updateById(driver);
            }
        }
        return ResultUtil.success();
    }
}
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -3,10 +3,7 @@
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -88,7 +85,9 @@
     * @throws Exception
     */
    ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception;
    ResultUtil cancleOrder(Integer orderId) throws Exception;
    ResultUtil updatePeopleNum(Integer orderId, Integer peopleNum) throws Exception;
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
@@ -129,7 +129,12 @@
     * @throws Exception
     */
    ResultUtil confirmFees(Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception;
    ResultUtil cancleOrder(Integer orderId, Integer orderType) throws Exception;
    ResultUtil updatePeopleNum(Integer orderId, Integer peopleNum) throws Exception;
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -779,8 +779,8 @@
                return orderPrivateCarService.cancleOrder(orderId);
            case 2://出租
                break;
            case 3://城际(没有此流程)
                break;
            case 3://
                return orderCrossCityService.cancleOrder(orderId);
            case 4://
                break;
            case 5:
@@ -794,6 +794,9 @@
    public ResultUtil updatePeopleNum(Integer orderId, Integer peopleNum) throws Exception {
        return orderPrivateCarService.updatePeopleNum(orderId,peopleNum);
    }
    @Override
    public ResultUtil confirmFees1(Integer orderId, Integer orderType, Integer type, Double travelFee, String additionalFee) throws Exception {
        switch (orderType){
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -694,6 +694,63 @@
    }
    @ResponseBody
    @PostMapping("/base/order/queryOrderInfoNoAuth")
    @ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class)
    @ApiImplicitParams({
            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
    })
    public ResultUtil<OrderInfoWarpper> queryOrderInfoNoAuth(Integer driverId, Integer orderId) {
        try {
            OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
            if(!orderCrossCity.getDriverId().equals(driverId)){
                return ResultUtil.error("权限不足");
            }
            Map<String, Object> map = orderCrossCityService.queryOrderInfo(orderId);
            List<OrderAdditionalFeeWarpper> list = new ArrayList<>();
            if (map.get("companyId") != null) {
                Company companyId = companyService.selectById(map.get("companyId").toString());
                map.put("companyName", companyId.getName());
            } else {
                map.put("companyName", "");
            }
            if (map.get("telX") != null) {
                map.put("driverPhone", map.get("telX"));
            }
            List<OrderAdditionalFee> orderAdditionalFees = orderAdditionalFeeService.selectList(new EntityWrapper<OrderAdditionalFee>().eq("orderType", 3).eq("orderId", orderId));
            orderAdditionalFees.forEach(orderAdditionalFee -> {
                AdditionalFee additionalFee = additionalFeeService.selectById(orderAdditionalFee.getAdditionalFeeId());
                OrderAdditionalFeeWarpper orderAdditionalFeeWarpper = new OrderAdditionalFeeWarpper();
                orderAdditionalFeeWarpper.setName(additionalFee.getName());
                orderAdditionalFeeWarpper.setAdditionalFee(orderAdditionalFee.getAmount());
                list.add(orderAdditionalFeeWarpper);
            });
            OrderInfoWarpper orderInfoWarpper = OrderInfoWarpper.getOrderInfoWarpper(map, list);
            orderInfoWarpper.setContentPutOne(new JSONObject());
            orderInfoWarpper.setContentNotOne(new JSONObject());
            orderInfoWarpper.setContentPutTwo(new JSONObject());
            orderInfoWarpper.setContentNotTwo(new JSONObject());
            orderInfoWarpper.setContentPutThree(new JSONObject());
            orderInfoWarpper.setContentNotThree(new JSONObject());
            orderInfoWarpper.setContentExclusive(new JSONObject());
            orderInfoWarpper.setContentPrice(new JSONObject());
            String arriveTime = orderInfoWarpper.getArriveTime();
            if (ToolUtil.isNotEmpty(arriveTime)) {
                orderInfoWarpper.setTime(arriveTime.substring(11, arriveTime.length() - 3));
            }
            return ResultUtil.success(orderInfoWarpper);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/order/addAppeal")
    @ApiOperation(value = "发起申诉", tags = {"用户端-服务中"}, notes = "", response = OrderInfoWarpper.class)
@@ -1464,9 +1521,12 @@
            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(value = "小程序支付成功跳转路径", name = "path", required = true, dataType = "String"),
            @ApiImplicitParam(value = "设备当前IP地址", name = "ip", required = true, dataType = "String"),
            @ApiImplicitParam(value = "支付角色(1=乘客,2=司机)", name = "role", required = true, dataType = "int"),
            @ApiImplicitParam(value = "jscode", name = "jscode", required = true, dataType = "String"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type, String path, String ip, HttpServletRequest request) {
    public ResultUtil payTaxiOrder1(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type,
                                    String path, String ip, Integer role, String jscode, HttpServletRequest request) {
        System.out.println(objectType);
        System.out.println(objectId);
        try {
@@ -1480,7 +1540,7 @@
                case 2:
                    return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type, path, ip);
                case 3:
                    ResultUtil resultUtil = orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type, path, ip);
                    ResultUtil resultUtil = orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type, path, ip, role, jscode);
                    orderCrossCityService.promotion(orderId);
@@ -1498,6 +1558,35 @@
    }
    @ResponseBody
    @PostMapping("/base/taxi/payTaxiOrder1NoAuth")
    @ApiOperation(value = "1.0-订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(3=跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "优惠数据id", name = "objectId", required = false, dataType = "int"),
            @ApiImplicitParam(value = "数据类型(1=优惠券,2=打车卡)", name = "objectType", required = false, dataType = "int"),
            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(value = "小程序支付成功跳转路径", name = "path", required = true, dataType = "String"),
            @ApiImplicitParam(value = "设备当前IP地址", name = "ip", required = true, dataType = "String"),
            @ApiImplicitParam(value = "支付角色(1=乘客,2=司机)", name = "role", required = true, dataType = "int"),
            @ApiImplicitParam(value = "jscode", name = "jscode", required = true, dataType = "String"),
    })
    public ResultUtil payTaxiOrder1NoAuth(Integer payType, Integer orderId, Integer orderType, Integer objectId, Integer objectType, Integer type,
                                    String path, String ip, Integer role, String jscode, HttpServletRequest request) {
        try {
            ResultUtil resultUtil = orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type, path, ip, role, jscode);
            orderCrossCityService.promotion(orderId);
            return resultUtil;
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 订单完成后添加评价操作
     *
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -96,7 +96,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil payCrossCityOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip)throws Exception;
    ResultUtil payCrossCityOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip, Integer role, String jscode)throws Exception;
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -207,6 +207,9 @@
    @Autowired
    private ICompanyService iCompanyService;
    @Autowired
    private WeChatUtil weChatUtil;
    /**
     * 计算支付金额
@@ -851,14 +854,26 @@
    
    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public ResultUtil payCrossCityOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip) throws Exception {
    public ResultUtil payCrossCityOrder1(Integer payType, Integer orderId, Integer objectId, Integer objectType, Integer type, String path, String ip, Integer role, String jscode) throws Exception {
        OrderCrossCity orderCrossCity = this.selectById(orderId);
        Integer uid = orderCrossCity.getUserId();
        UserInfo userInfo = userInfoService.selectById(uid);
        String appletsOpenId = userInfo.getAppletsOpenId();
        //司机端发起的支付
        if(null != role && 2 == role){
            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
            appletsOpenId = driver.getAppletsOpenId();
            if(ToolUtil.isNotEmpty(appletsOpenId)){
                Map<String, String> stringMap = weChatUtil.code2Session(jscode);
                appletsOpenId = stringMap.get("openid");
                driver.setAppletsOpenId(appletsOpenId);
                driverService.updateById(driver);
            }
        }
        if (orderCrossCity.getState() != 7) {
            return ResultUtil.error("订单已完成支付,不允许重复支付", "");
        }
        Integer uid = orderCrossCity.getUserId();
        Double orderMoney = orderCrossCity.getOrderMoney();
        UserInfo userInfo = userInfoService.selectById(uid);
        ResultUtil resultUtil = ResultUtil.success(new Object());
        orderCrossCity.setCouponMoney(0D);//初始化历史数据
        orderCrossCity.setCouponId(null);
@@ -1053,7 +1068,7 @@
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                goodsInfoRequest.setSubOpenId(appletsOpenId);
                if(0 == orderCrossCity.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
@@ -1081,7 +1096,7 @@
                tradePayOff1Data.setOrderDesc("完成订单");
                List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
                GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
                goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId());
                goodsInfoRequest.setSubOpenId(appletsOpenId);
                if(0 == orderCrossCity.getRecoveryOrder()){
                    goodsInfoRequest.setProfitSharing("1");
                }else{
@@ -1207,13 +1222,7 @@
        this.updateAllColumnById(orderCrossCity);
        return resultUtil;
    }
    public static void main(String[] args) {
        double a = 1.189999995;
        double v = new BigDecimal(a).setScale(2, RoundingMode.HALF_UP).doubleValue();
        System.out.println(v);
    }
    
    @Autowired
    private AppOrderController appOrderController;