From eb0fa100af9347ba2a93188170d023fe5cf396eb Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期二, 13 一月 2026 19:13:21 +0800
Subject: [PATCH] feat(user):扫码下单创建订单接口

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java |   49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
index e9a680b..2ff34dc 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -2,6 +2,7 @@
 
 
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityScanWarpper;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
 import com.stylefeng.guns.modular.crossCity.warpper.ScanOrderDetailWarpper;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
@@ -155,24 +156,58 @@
     /**
      * 【202601】获取扫码下单详情
      * @param lineShiftDriverId 司机排班记录ID
-     * @param otherFee 其他费用
      * @return 扫码下单详情
      */
     @ResponseBody
     @RequestMapping(value = "/api/orderCrossCity/queryScanOrderDetail", method = RequestMethod.POST)
     @ApiOperation(value = "【202601】获取扫码下单详情", tags = {"用户端-跨城"}, notes = "根据扫码内容获取下单页面详情数据,包含司机信息、线路信息、站点信息等")
-    @ApiImplicitParams({
-            @ApiImplicitParam(value = "司机排班记录ID", name = "lineShiftDriverId", required = true, dataType = "int"),
-            @ApiImplicitParam(value = "其他费用", name = "otherFee", required = false, dataType = "double")
-    })
-    public ResultUtil<ScanOrderDetailWarpper> queryScanOrderDetail(Integer lineShiftDriverId, Double otherFee) {
+    @ApiImplicitParam(value = "司机排班记录ID", name = "lineShiftDriverId", required = true, dataType = "int")
+    public ResultUtil<ScanOrderDetailWarpper> queryScanOrderDetail(Integer lineShiftDriverId, HttpServletRequest request) {
         try {
-            return orderCrossCityService.queryScanOrderDetail(lineShiftDriverId, otherFee);
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderCrossCityService.queryScanOrderDetail(lineShiftDriverId);
         } catch (Exception e) {
             e.printStackTrace();
             return ResultUtil.runErr();
         }
     }
+    /**
+     * 【202601】跨城出行扫码下单操作
+     * <p>用户扫描司机二维码后进行下单,系统自动分配座位号</p>
+     * <p>与普通下单的区别:仅支持拼车模式,座位自动分配,支持其他费用</p>
+     *
+     * @param orderCrossCityScanWarpper 扫码下单参数
+     * @param request HTTP请求
+     * @return 订单ID
+     */
+    @ResponseBody
+    @RequestMapping(value = "/api/orderCrossCity/orderCrossCityScan", method = RequestMethod.POST)
+    @ApiOperation(value = "【202601】跨城出行扫码下单操作", tags = {"用户端-跨城"}, notes = "用户扫描司机二维码下单,系统自动分配座位,仅支持拼车模式。返回订单ID后进行支付")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> orderCrossCityScan(OrderCrossCityScanWarpper orderCrossCityScanWarpper, HttpServletRequest request){
+        try {
+            // XSS过滤地址信息
+            String startAddress = orderCrossCityScanWarpper.getStartAddress();
+            orderCrossCityScanWarpper.setStartAddress(cleanXSS(startAddress));
+            orderCrossCityScanWarpper.setEndAddress(cleanXSS(orderCrossCityScanWarpper.getEndAddress()));
 
+            // 获取用户ID
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderCrossCityService.orderCrossCityScan(orderCrossCityScanWarpper, uid);
+        } catch (SystemException se){
+            return ResultUtil.error(se.getMessage());
+        } catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
 
 }

--
Gitblit v1.7.1