客車網上售票系統(2)
阿新 • • 發佈:2020-07-24
一、今日完成任務
車票查詢
車票查詢分頁
預訂車票
提交訂單
付款、取消訂單
退票
二、核心原始碼:
(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){ varstr="<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框架
六、專案燃盡圖更新: