一、今日完成任务
车票查询
车票查询分页
预订车票
提交订单
付款、取消订单
退票
二、核心源码:
(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框架
六、项目燃尽图更新: