客車網上售票系統(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}&nbsp;${car.start_date}&nbsp;${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)瀏覽售票網站,參考功能設計

五、項目燃盡圖更新:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM