第四章 系統建置
4.8 競價子系統
此子系統主要就是要讓會員們能夠對他們感興趣的拍賣品出價競標或是直 接購買。
(a)Input:
在物品詳細資料頁面中有“出價競標或是立即購買”供會員選擇所要使用 的購買方式,若是希望以相較於立即購買價還低的價格買入該項拍賣品,則可以 參與該項拍賣品的競價而選擇“出價競標”,並在其後金額欄位輸入競價金額,
如下圖 4.8.1 所示:
此子系統分成兩個功能:
1.出價競標 2.立即購買
1.出價競標
(b)Process:
buyprice=CInt(request.form("bidprice")) checkprice = eval(presentprice + addprice) If buyprice >= immediateprice Then
str5="insert into 出價紀錄(物品編號,買方帳號,出價金額,出價時間) values('"&bookid&"','"&buyername&"','"&immediateprice&"','"&buytime&"')"
Call Sendmail1 Call Sendmail3 Call Sendmail4 Else
If buyprice < leastprice Then
response.write("<p align=center><font size=6 color=red>出價成功(!!!您的出價低於拍 賣底價)</p>")
conn.Execute (str5)
str6="update 物品資料 set 最高價買主='"&buyername&"',目前出價
='"&immediateprice&"',出價狀態=1,競標人次='"&bidtimes&"',成功交易=1,結束時間
='"&buytime&"',結標通知=1 where 物品編號='"&bookid&"'"
conn.Execute (str6)
response.write("<br><br><br><center><font size=6 color=red>恭禧您購得此項商 品!!!</font></center>")
If buyername<>lastbuyername Then End If
If buyprice < checkprice Then
response.write("<br><br><br><center><font size=6 color=red>您的出價小於最低出價 金額!!!</font></center>")
response.write("<p align=center><a href='javascript:window.history.go(-1)'>再次出價
</a></p>") Else
str3="insert into 出價紀錄(物品編號,買方帳號,出價金額,出價時間) values('"&bookid&"','"&buyername&"','"&buyprice&"','"&buytime&"')"
conn.Execute (str3)
str4="update 物品資料 set 最高價買主='"&buyername&"',目前出價='"&buyprice&"', 出價狀態=2,競標人次='"&bidtimes&"',成功交易=0 where 物品編號='"&bookid&"'"
conn.Execute (str4)
response.write("<p align=center><a href='javascript:window.history.go(-1)'>再次出價
str7="insert into 出價紀錄(物品編號,買方帳號,出價金額,出價時間) values('"&bookid&"','"&buyername&"','"&buyprice&"','"&buytime&"')"
conn.Execute (str7)
str8="update 物品資料 set 最高價買主='"&buyername&"',目前出價='"&buyprice&"', 出價狀態=2,競標人次='"&bidtimes&"',成功交易=1 where 物品編號='"&bookid&"'"
conn.Execute (str8)
response.write("<p align=center><font size=6 color=red>出價成功</p>") Call Sendmail2
If lastbuyername<>"" And lastbuyername<>buyername Then Call Sendmail5
End If End If End If End If
(c)Output:
在輸入競價金額按下“我要出價”後,系統會先判斷出價者的信用指數是否 高於賣方所訂之最低評價,若是低於則出現“出價資格不符”之訊息,如下圖 4.8.2 所示:
若是競價者的信用指數高於賣方所訂的最低評價,則系統接著判斷競價金額 是否高於最低出價金額,即目前出價加上出價增額,若低於則顯示“您的出價小 於最低出價金額!!!”訊息,如下圖 4.8.3 所示:
圖 4.8.3 參與競價失敗畫面
若是所輸入之競價金額高於最低出價金額,但卻低於賣方所訂之拍賣底價,
雖然出價被接受,但成功交易不成立,如下圖 4.8.4 所示:
若所輸入之競價金額高於賣方所訂立之拍賣底價,則成功交易成立,顯示
“出價成功”訊息,並同時寄發“出價成功”及“出價被超過”(若存在目前最 高出價者)訊息郵件,如下圖 4.8.5 所示:
圖 4.8.5 出價成功畫面
若競價金額高於賣方所訂之直接購買價,則系統自動幫你以直接購買價結 標,如下圖 4.8.6 所示:
2.立即購買 (a)Input:
若買方對拍賣品有立即性需求,在能夠接受賣方所訂之直接購買價的情況 下,可以選擇以立即購的方式購買該拍賣品,如下圖 4.8.7 所示:
4.8.7 選擇立即購畫面
(b)Process:
If tertime > NOW() And presentstate<>1 Then
If buyername<>Empty And buyerpasswd<>Empty And buyername=userid Then set conn=Server.CreateObject("ADODB.Connection")
conn.Open "test123"
set rs=Server.CreateObject("ADODB.Recordset")
set rs=conn.Execute("select * from 會員資料 where 帳號='"&buyername&"' And 密碼='"&buyerpasswd&"'")
If rs.fields("信用指數") >= buyerlimit Then
If buyway<>"出價競標" Then bidtimes=bidtimes + 1
buyprice=buyway
str1="insert into 出價紀錄(物品編號,買方帳號,出價金額,出價時間) values('"&bookid&"','"&buyername&"','"&buyprice&"','"&buytime&"')"
conn.Execute (str1)
conn.Execute (str2)
Call Sendmail1
If buyername<>lastbuyername Then
str2="update 物品資料 set 最高價買主='"&buyername&"',目前出價
='"&buyprice&"',出價狀態=1,競標人次='"&bidtimes&"',成功交易=1,結束時間
='"&buytime&"',結標通知=1 where 物品編號='"&bookid&"'"
response.write("<br><br><br><center><font size=6 color=red>恭禧您購得此項商 品!!!</font></center>")
Call Sendmail3 Call Sendmail4 End If
(c)Output:
在選擇“立即購”按下“我要出價”後,系統會先判斷出價者的信用指數是 否高於賣方所訂之最低評價,若是低於則出現“出價資格不符”之訊息,如下圖 4.8.8 所示:
圖 4.8.8 立即購失敗畫面
反之,若信用指數高於最低評價,則系統顯示“恭喜您購得此項商品!!!”訊 息,同時寄發競標成功訊息郵件和拍賣品成功賣出訊息郵件給買賣雙方,如下圖 4.8.9 所示: