一、今日完成任务
车票查询
车票查询分页
预订车票
提交订单
付款、取消订单
退票
二、核心源码:
(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="
" + item.tnum + ""+item.begin_sta+""+item.end_sta+"
"+item.start_time+""+item.end_time+""+item.price+""+item.snum+"
预订";$("#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 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 list = carSerivce.findByProperty(car);
System.out.println(list.size());
//总数
PageInfo pageInfo=new PageInfo(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框架
六、项目燃尽图更新:
标签:售票,客车,cid,int,oid,订单,item,网上,public
来源: https://www.cnblogs.com/guotongxue/p/13371952.html