基于大模型的旅游平台(九)

本文介绍了个人火车票订单改签按钮的编写。

我认为个人火车票订单改签的关键是将所选订单的信息储存起来,然后根据订单中的起始地和终点地进行车次的搜索,选择车次购买后还要将原来的订单给退订。

将所选订单的信息储存起来

在后端写一个基于Spring MVC的Java后端控制器方法,处理HTTP POST请求,并返回一个Map作为JSON响应。

@PostMapping("/change")
@ResponseBody
public Map sendLoginResult(@RequestBody Map<String, String> map1, HttpSession session) {
    Map map = trainTicketService.changeOrder(map1, session);
    return map;
}

具体实现changeOrder这个方法

首先创建一个新的 HashMap 对象 map1,用于存储返回给前端的数据,然后将状态码和消息初始化。将传入的 map 对象存储在会话中,键名为 "ctorder",这样可以在会话期间保持订单信息。将 msg 和 status 添加到 map1 中,作为方法的返回结果。这个 map1 将会被转换为 JSON 或其他格式发送给前端。下面是相应的代码:

public Map changeOrder(Map<String, String> map, HttpSession session) {
        HashMap<String, Object> map1 = new HashMap<>();

        Integer status=200;
        String msg="";
        session.setAttribute("ctorder",map);


        map1.put("msg",msg);
        map1.put("status",status.toString());
        return map1;
    }

通过以上操作就完成了将所选订单的信息储存起来的操作。

改签按钮的点击事件

点击改签按钮之后会获取相应的订单信息,并将其储存在会话中,并打开改签的新页面。

通过以下代码获取订单信息

var orderId = $(this).data("order-id");
var param = orders.find(order => order.id == orderId);

发送 AJAX 请求将订单信息储存在会话中,并打开改签的新页面。

$.ajax({
            url:'/train/order/change',
            type:'post',
            // async:false,
            data:JSON.stringify(param),
            contentType: "application/json; charset=utf-8",
            dataType:"json",
            success:function (data){
                if (data.status==200){
                      window.location.href='/ctrain';

                }

            }

        });

通过以上操作就完成了改签按钮的点击事件

新页面的初始化和改签的实现

新页面是与购买火车票的页面基本相似的页面,去除了上方的输入框,修改了初始化和购买的方法。

初始化时根据会话中储存的订单信息进行初始化

getTrains(1, 10, ctorder.dptStationName, ctorder.arrStationName);

购买时不仅要添加新订单还要把原来的订单进行退订操作,完成操作后还要返回火车票个人订单的页面

 $.ajax({
                           url: '/train/order/' + ctorder.id,
                           type: 'DELETE',
                           success: function(success) {
                               // 删除成功后的操作,更新订单列表
                               if (success) {
                                    alert("改签成功!");
                                   console.log("Order deleted successfully");
                                   layer.closeAll();
                                   // 调用函数重新加载订单列表
                                  window.location.href='/train_order';
                               } else {
                                   console.error("Failed to delete order");
                               }
                           },
                           error: function(xhr, status, error) {
                               // 删除失败时的操作,可以提示用户或者记录错误信息等
                               console.error("Error deleting order:", error);
                           }
                       });

通过以上操作就完成了新页面的初始化和改签的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值