网上售票系统第五天
前面的訂單功能實現的有點粗糙,特別是座位號 的問題,還有退票,改簽的問題,這里我們改簽是 把之前的訂單取消掉,然后重新 生成一個新的訂單
今日任務:
1,實現改簽,改簽后座位號會放在一個表中,等待下個同伴次的客車 訂票的時候 使用,使用后變為0
2,后臺功能
1,車站管理
2,班次管理
3,用戶管理
4,留言管理
先把前臺的一個改簽功能 做完,前面已經分析過了,這里的改簽只是把之前的訂單 狀態改變為不可用,然后重新插入用戶新的訂單,同時退/改簽表中插入一條數據來記錄改用戶改簽的班次 和座位號以便下次使用。
點擊改簽====跳轉到搜索訂票頁面
之后的流程 和之前訂票的流程一樣,在這里我們要保存 需要改簽訂單id 和班次id 以及座位號
在后面提交訂單的時候 進行判斷 如果變量里面有 需要改簽訂單的id 我們就認為 這是一個改簽單, 然后提交這個改簽,之后把 該變量的值 設置為null 以便下次 買票的時候 進行再次使用。
貼一點代碼
$(".btn").click(function () {
if(timetop>0)
{
if(gqorderid==0){
var myDate = new Date();
var year=myDate.getFullYear(); //獲取當前年
var month=myDate.getMonth()+1; //獲取當前月
var date=myDate.getDate(); //獲取當前日
var now=year+'-'+getNow(month)+"-"+getNow(date);
var cc = new Object();
cc.orderseat=shu2.zuohao;
cc.orderfreid=shu2.banciid;
cc.orderuserid=userid;
cc.orderprice=shu3.price;
cc.orderdate=now;
cc.orderplaydate=null;
cc.orderstatus=1;
cc.orderremark='未';
cc.orderissue=startDate;
cc.orderusernumber=idnumberziji;
// alert(cc.orderusernumber)
$.ajax({
url:webname+'/car/ticket/insertorder',
dataType:"json",
type:"post",
contentType:"application/json;charset=UTF-8",
data:JSON.stringify(cc),
success:function (data) {
if(data>0)
{
// alert(data)
document.cookie = "cookie_unsoldTicket_price = " + cc.orderprice + "; path=/myticket/static/html/";
document.cookie = "cookie_neworderid = " + data + "; path=/myticket/static/html/";
window.location.href=(webname+'/static/html/pay.html');
}
}
,error:function (e) {
alert("未知錯誤!");
}
})
}
if(gqorderid>0){
var myDate = new Date();
var year=myDate.getFullYear(); //獲取當前年
var month=myDate.getMonth()+1; //獲取當前月
var date=myDate.getDate(); //獲取當前日
var now=year+'-'+getNow(month)+"-"+getNow(date);
var cc = new Object();
cc.orderid=gqorderid;
cc.orderseat=shu2.zuohao;
cc.orderfreid=shu2.banciid;
cc.orderuserid=userid;
cc.orderprice=shu3.price;
cc.orderdate=now;
cc.orderplaydate=null;
cc.orderstatus=1;
cc.orderremark='未';
cc.orderissue=startDate;
cc.orderusernumber=idnumberziji;
//alert(cc.orderid);
$.ajax({
url:webname+'/car/user/gaiqianorder',
dataType:"json",
type:"post",
contentType:"application/json;charset=UTF-8",
data:JSON.stringify(cc),
success:function (data) {
if(data>0)
{
document.cookie = "cookie_neworderid = " + data + "; path=/myticket/static/html/";
document.cookie = "cookie_unsoldTicket_price = " + cc.orderprice + "; path=/myticket/static/html/";
document.cookie = "cookie_gqorderid = " + 0 + "; path=/myticket/static/html/";
alert("成功改簽!")
window.location.href=webname+'/static/html/pay.html';
}
}
,error:function (e) {
alert("改簽失敗,可能是余票不足!");
}
})
}
}
})
$(".btn92").click(function () {
window.location.href=webname+'/html/12306/settlement.html';
})
})
function timedCount() {
if(timetop >= 0) {
t = setTimeout( "timedCount()",1000);
minutes = Math.floor(timetop / 60);
seconds = Math.floor(timetop % 60);
msg = minutes + "分" + seconds + "秒";
timetop = timetop - 1;
document.getElementById('txt').innerText = msg
} else {
alert("時間到")
}
}
window.onload=timedCount;
@RequestMapping("/car/user/gaiqianorder")
public int gaiqian(@RequestBody Orderinfo orderinfo)
{
// System.out.println(orderinfo.getOrderid());
// return 1;
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(System.currentTimeMillis());
//System.out.println(formatter.format(date));
String refundtime=formatter.format(date);
Orderinfo oo=orderinfoService.getbyid(orderinfo.getOrderid());
System.out.println(orderinfo.getOrderid());
orderinfoService.updategaiqian(orderinfo);
if (orderinfoService.add(orderinfo)>0) {
Refund refund=new Refund();
refund.setRefundnumber(oo.getOrderusernumber());
refund.setOrderfreid(oo.getOrderfreid());
refund.setRefundremark("改簽");
refund.setRefundseat(oo.getOrderseat());
refund.setRefundstatus(0);
refund.setRefundtime(refundtime);
refund.setRefunduserid(oo.getOrderuserid());
refundService.add(refund);
System.out.println(orderinfo.getOrderid());
return orderinfo.getOrderid();
}
else {
return 0;
}
}
=============================================================
下面寫后臺的功能; 后臺的功能 基本比較單一,基本對表的一些操作,在下面我也找了一個 layui框架, 使用框架的效率比較高;;
大致頁面如下:
這個沒什么業務,就是對表的一些操作 貼一些代碼吧
@Resource
IUserticketService userticketService;
@RequestMapping("/car/user/login")
public Userticket UserLogin(@RequestBody Userticket userticket){
return userticketService.userlogin(userticket);
}
@RequestMapping("/car/user/getuserinfo")
public Userticket getUserticket(@RequestBody Userticket userticket){
return userticketService.getbyid(userticket.getUserid());
}
@RequestMapping("/car/user/changephone")
public int changephone(@RequestBody Userticket userticket)
{
String pwd= userticketService.getbyid(userticket.getUserid()).getUserpwd();
if (pwd.equals(userticket.getUserpwd())) {
if (userticketService.changePhone(userticket)>0) {
return 1;
}
else {
return 0;
}
}
else {
return 0;
}
}
@RequestMapping("/car/user/adduser")
public int add(@RequestBody Userticket userticket)
{
if (userticketService.checkInfo(userticket)>0) {
return 0;
}
return userticketService.add(userticket);
}
<select id="getlist" resultType="com.hp.entity.Userticket">
select *from Userticket;
</select>
<select id="getbyid" resultType="com.hp.entity.Userticket" parameterType="_int">
select *from Userticket u where u.userid=#{id};
</select>
<update id="update" parameterType="com.hp.entity.Userticket">
update Userticket set username=#{username},usernumber=#{usernumber},userrealname=#{userrealname},userpwd=#{userpwd},usertype=#{usertype},usertelephone=#{usertelephone},useremail=#{useremail},userguhua=#{userguhua},useraddress=#{useraddress},useryoubian=#{useryoubian} where userid=#{userid};
</update>
<delete id="delete" parameterType="_int">
delete from Userticket where userid=#{id};
</delete>
<insert id="add" parameterType="com.hp.entity.Userticket">
insert into userticket values(#{username},#{usernumber},#{userpwd},#{usersex},#{userrealname},#{usertype},#{usertelephone},#{userguhua},#{useraddress},#{useryoubian},#{useremail})
</insert>
<select id="userlogin" resultType="com.hp.entity.Userticket" parameterType="com.hp.entity.Userticket">
select *from userticket where username=#{username} and userpwd=#{userpwd};
</select>
<update id="changePhone" parameterType="com.hp.entity.Userticket">
update userticket set usertelephone=#{usertelephone} where userid=#{userid};
</update>
<select id="checkInfo" resultType="java.lang.Integer">
select count(usernumber) from userticket where usernumber=#{usernumber};
</select>
未完成任務:
班次管理,車站管理,留言管理
這周主要是 ssm 的培訓, 時間比較緊張
未實現功能: 使用layui進行 銷售的一個統計,打算做一個餅狀圖或者 柱狀圖
更新一下燃盡圖:
總結
- 上一篇: (转)C# WebApi 身份认证解决方
- 下一篇: 设计模式(六)------设计模式六大原