客车网上售票系统(2)

一、今日完成任务

车票查询

车票查询分页

预订车票

提交订单

付款、取消订单

退票

二、核心源码:

1)车票查询:根据出发地、目的地、出发日期查询车票

//查询 
    $("#searchBtn").click(function(){
        //ajax提交后台
        $.ajax({
            type:"post",
            url:"search",
            data:{"begin_sta":$("#begin").val(),"end_sta":$("#cf").val(),"start_date":$("#time").val()},
            dataType:"json",
            success:function(data){
                $("#start_y").val(data[0].start);
                $("#start_c").val(data[0].count);
                $("#start_l").val(data[0].last);
                $("#tbody").html("");
                $.each(data[1],function(i,item){
                    var str="<tr><td>" + item.tnum + "</td><td>"+item.begin_sta+"</td><td>"+item.end_sta+
                            "</td><td>"+item.start_time+"</td><td>"+item.end_time+"</td><td>"+item.price+"</td><td>"
                            +item.snum+"</td><td><a class='yd' href='yd/"+item.cid+"'>预订</a></td></tr>";
                    $("#tbody").append(str);
                });
            }
        });
    });

dao

//根据出发地、目的地、出发日期  查票
    @Select("select c.*,t.tnum,t.seatnum from carinfo c,traininfo t where c.tid=t.tid and c.begin_sta=#{begin_sta} and c.end_sta=#{end_sta} and start_date=#{start_date}")
    public List<CarTrain> findByProperty(Carinfo car);

controller

//查票
    @RequestMapping(value="/search",produces={"application/json;charset=utf-8"})
    @ResponseBody
    public String serackCar(Carinfo car,HttpServletRequest request,Page page){
        PageHelper.offsetPage(page.getStart(), 5);
        List<CarTrain> list = carSerivce.findByProperty(car);
        System.out.println(list.size());
        //总数
        PageInfo<CarTrain> pageInfo=new PageInfo<CarTrain>(list);
        int total=(int) pageInfo.getTotal();
        page.caculateLast(total);
        
        JSONArray array=new JSONArray();
        array.add(page);
        array.add(list);
        return array.toString();
        
    }

(2)预订车票  查询列车信息显示到预订页面

//点击预订查询列车信息
    @Select("select c.*,t.tnum,t.seatnum from carinfo c,traininfo t where c.tid=t.tid and c.cid=#{cid}")
    public CarTrain findByCid(int cid);

(3)提交订单     在预订页面点击提交订单,提交订单需要添加一条订单信息,还需锁定座位

//添加订单
    @Insert("insert into orderinfo(cid,ucard,urealname,tel,oprice,state,odate,seatnum) values(#{cid},#{ucard},#{urealname},#{tel},#{oprice},#{state},#{odate},#{seatnum})")
    public int addOrder(Orderinfo orderinfo);
    
    //座位数减少
    @Update("update carinfo set snum=snum-1 where cid=#{cid}")
    public int updateSnum(int cid);

controller

//提交订单
    @RequestMapping("/addOrder")
    public String addOrder(Orderinfo order,HttpServletRequest request){
        //获取订单提交时间
        Date date=new Date();
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        String d = format.format(date);
        
        order.setOdate(d);
        order.setState("0");//未支付
        
        int a = carSerivce.addOrder(order);
        carSerivce.updateSnum(order.getCid());
        //待确认订单
        return "redirect:/confirmOrder";
    }

(4)付款、取消订单   提交订单后查询待确认订单(未付款订单),在此页面可以取消订单和付款

取消订单 mapperdao
//取消订单
    //删除订单
    @Delete("delete from orderinfo where oid=#{oid}")
    public int delOrder(int oid);
    //座位数增加
    @Update("update carinfo set snum=snum+1 where cid=#{cid}")
    public int updateSnum2(int cid);

付款

//订单编号查询订单
    @Select("select * from orderinfo where oid=#{oid}")
    public Orderinfo findOrderByOid(int oid);
    
    //付款 更改订单状态
    @Update("update orderinfo set state=1 where oid=#{oid}")
    public int updateOrderByOid(int oid);
    
    //添加车票信息
    @Insert("insert into ticketinfo(oid) values(#{oid})")
    public int addTicket(int oid);

controller

@RequestMapping("/endOrder/{oid}")
    @ResponseBody
    public String endOrder(@PathVariable("oid")int oid){
        carSerivce.updateOrderByOid(oid);
        return oid+"";
    }

(5)退票 退票需要先查询所有已付款订单,然后需要在发车前两小时钱退票

三、页面展示:

四、遇到的问题:

1)业务流程不熟悉,花费时间较多

2)layui框架分页等的使用不熟练

五、解决的方法:

1)浏览售票网站,参考功能设计

2)熟悉layui框架

六、项目燃尽图更新:

 

猜你喜欢

转载自www.cnblogs.com/guotongxue/p/13371952.html