客车网上售票系统(3)
一、今日完成任务
退票
改签
二、核心源码:
(1)退票:
未支付、已退票、已改签不能点击退票
<c:forEach items="${list}" var="car"> <input type="hidden" value="${car.start_date}" id="s_date"/> <input type="hidden" value="${car.start_time}" id="s_time"/> <tr> <td>${car.odate}</td> <td>${car.urealname}</td> <td>二代身份证</td> <td>${car.ucard}</td> <td>${car.tnum} ${car.start_date} ${car.start_time}开<br/> ${car.begin_sta}-${car.end_sta} </td> <td>${car.seatnum}</td> <td>${car.oprice}</td> <td><c:if test="${car.state==0}">未支付</c:if> <c:if test="${car.state==1}">已支付</c:if> <c:if test="${car.state==2}">已退票</c:if> <c:if test="${car.state==3}">已改签</c:if> </td> <td><c:if test="${car.state==0||car.state==2||car.state==3}">无操作</c:if> <c:if test="${car.state==1}"><a class=\'yd\' href="javascript:tp(\'refund/${car.oid}\')">退票</a><a href="change/${car.oid}" class="yd" onclick="">改签</a> </c:if> </td> </tr> </c:forEach>
发车前两小时内以及超过发车时间,不能退票
function tp(str){ var layer; layui.use(\'layer\', function(){ layer = layui.layer; }); //查看是否已经超过发车时间 超过不予退票 var mydate = new Date(); var s_date=$("#s_date").val(); var s_time=$("#s_time").val(); var date2=new Date(s_date); if(date2.getTime()<mydate.getTime()){ layer.alert("发车前两小时内以及超过发车时间,不能退票", {icon: 1,offset:[\'400px\',\'900px\']}); } }
//退票页面 @RequestMapping("/refund/{oid}") public String refund(@PathVariable("oid")int oid,HttpServletRequest request){ CarTrainOrder selectFkOrder = carSerivce.selectFkOrder(oid); request.setAttribute("car", selectFkOrder); return "../refund.jsp"; }
//退票 //删除车票信息 //更新座位数carinfo中seatnum //更新订单表中state=2 @Delete("delete from ticketinfo where oid=#{oid}") public int deleteTicket(int oid); @Update("update carinfo set snum=snum+1 where cid=#{cid}") public int updateCarinfo(int cid); @Update("update orderinfo set state=2 where oid=#{oid}") public int updateOrder(int oid);
//退票 @RequestMapping("/confirmRefund") @ResponseBody public String confirmRefund(int oid,int cid){ //删除车票信息 //更新座位数carinfo中seatnum //更新订单表中state=2 int confirmRefund = carSerivce.confirmRefund(oid, cid); if(confirmRefund>0){ return "true"; } return "false"; }
页面展示
(2)改签
1.改签车票时,不能变更出发地、目的地、票种和身份信息
//点击图标显示地址 $(function(){ var layer; layui.use(\'layer\', function(){ layer = layui.layer; }); //给文本框赋值 $("#begin").val("${car.begin_sta}"); $("#cf").val("${car.end_sta}"); //文本框设为只读 $("#begin").attr("readonly",true); $("#cf").attr("readonly",true); $(\'#cf\').removeAttr(\'onclick\'); }); //点击日期图标弹出日期框 layui.use(\'laydate\', function(){ var laydate = layui.laydate; //常规用法 laydate.render({ elem: \'#time\', eventElem:"#rq", trigger: \'click\', min:minDate() }); }); function minDate() { var now = new Date(); return now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate(); }
三、遇到的问题:
1)业务流程不熟悉,花费时间较多
四、解决的方法:
1)浏览售票网站,参考功能设计
五、项目燃尽图更新: