• 沒有找到結果。

checkout-check.jsp

在文檔中 二手樂器拍賣論壇之建構 (頁 102-0)

第四章 系統組織與架構

5.8 出價程式功能

5.8.2 checkout-check.jsp

這個程式是讓想要買東西的使用者確認這個物品的出價 價格訊息並讓使用者輸入帳號和密碼的頁面,然後會連到 BuyDeal.jsp去檢查使用者輸入的帳號密碼是否正確,如果使 用者忘記密碼時,則會連到SendPswd.jsp去讓系統用E-mail 送正確的密碼給使用者。[圖 5.24]為checkout-check.jsp程 式流程圖。

開 始

取 得 來 自 ch e ck o u t-m a in -p ag e.jsp

的 資 料

顯 示 出 物 品 種 類 ,名 稱 ,目 前 價 格 ,以 及 最

高 出 價 金 額

使 用 者 輸 入 帳 號 及 密 碼

導 入 到 B u y D e al.jsp

忘 記 密 碼

導 入 到 S en d P sw d .jsp

[圖 5.24 checkout-check.jsp 程式流程圖]

5.8.3 BuyDeal.jsp

這個程式是從 checkout-check.jsp 抓取使用者輸入的帳 號和密碼,並檢查其正確性,檢查方式是先抓出 Table[會員固 定資料]的結果集物件,然後再一筆一筆的比對有無此使用者, 並設定一個 check 變數,當 check=1 時代表帳號和密碼都正 確,check=2 時代表只有密碼錯誤,check=0 時代表帳號錯誤, 當帳號和密碼都是正確的時候就將網頁導入到 flag.jsp 中, 錯誤時就回到 checkout-check.jsp 中。[圖 5.25]為

BuyDeal.jsp 程式流程圖。 開 始

取 得 來 自 checkout.check.jsp的 帳

號 和 密 碼

會 員 固 定 資 料 讀 取 帳 號 密 碼

檢 查 帳 號 密 碼

正 確 錯 誤

將 網 頁 導 入 到 checkout-check.jsp中 將 網 頁 導 入 到 flag.jsp

[圖 5.25 BuyDeal.jsp 程式流程圖]

5.8.4 flag.jsp

這個程式是讓使用者確認完帳號密碼後,因為不可以同 時有兩個以上的人在更動資料庫,所以會利用此flag.jsp來 防止此事發生。

我 們 在 資 料 Table[ 賣 方 物 品 資 料 ] 中 新 増 三 個 欄 位 Flag1,Flag2,Flag3,當使用者要更動資料庫時,先去看 Flag1 是否有被改成 1,若沒有,則將 Flag1 改成 1,此時這個 user 就 搶到了 Flag1,接著再去搶 Flag2…以此類推。

當遇到有旗子已經被改成 1(代表已經被搶走)時,先把之 前已經改成 1 的 Flag 欄位改回 0,然後 flag.jsp 就連到 flag-failed.jsp 去 顯 示 出 資 料 庫 忙 碌 中 , 然 後 再 從 flag-failed.jsp 回到賣方物品主頁面 GoodsShow.jsp 中。

當三個旗子都搶到了後,代表現在沒有人在更動資料庫, 則此時就連到 checkout-success1.jsp 中去將出價紀錄存到 資料庫中。

以下是搶旗標流程演算法:

<1> 1.1 如果 Flag1 的值為 0:

=>將資料庫中 Flag1 的值改為 1

1.2 如果 Flag1 的值不為 0:

=>將網頁導向 flag-failed.jsp

<2> 2.1 如果 Flag2 的值為 0:

=>將資料庫中 Flag2 的值改為 1 2.2 如果 Flag2 的值不為 0:

=>1:將資料庫中的 Flag1 改回 0 =>2:將網頁導向 flag-failed.jsp

<3> 3.1 如果 Flag3 的值為 0:

=>將資料庫中 Flag3 的值改為 1,搶旗標成功!!!

=> 將 網 頁 導 向 checkout-success1.jsp, 並 在 checkout-success1.jsp 網頁完成資料庫的存入後, 將資料庫中的 Flag1,Flag2,Flag3 改回 0。

3.2 如果 Flag3 的值不為 0:

=> 1:將資料庫中的 Flag1,Flag2 改回 0 => 2:將網頁導向 flag-failed.jsp [圖 5.26]為 flag.jsp 程式流程圖。

開始

判斷Flag2值 值為1 值為0

將Flag1,Flag2 值為1 值改為0

將網頁導入 到checkout-success1.jsp

[圖 5.26 flag.jsp 程式流程圖]

5.8.5 flag-failed.jsp

這個程式主要是回應 flag.jsp 程式,當搶旗子動作失敗 時 ,flag-failed.jsp 就 顯 示 出 資 料 庫 忙 碌 中 , 然 後 再 從 flag-failed.jsp 回到賣方物品主頁面 GoodsShow.jsp 中讓 使用者再重新出價。[圖 5.27]為 flag-failed.jsp 程式流程 圖。

開 始

取 得 f l a g . j s p 的 物 品 種 類 和 物 品 編 號 變

顯 示 出 資 料 庫 忙 碌 中

將 網 頁 導 入 到 G o o d s S h o w . j s p 中

[圖 5.27 flag-failed.jsp 程式流程圖]

5.8.6 checkout-success1.jsp

這個程式主要是回應 flag.jsp 程式,當搶旗子動作成功 時,checkout-success1.jsp 就會將這次的交易紀錄更新到資

料庫中,被更動到的 Table 包括有[賣方物品資料]和[出價紀 錄]兩個 Table , 每次一有使用者出價時, checkout-

success1.jsp 就會比對現在出價的人的最高出價金額和資料 庫中這個物品的目前最高出價金額,會得到以下三種情形。

<1>現在出價的 user 的最高出價金額若比資料庫中的最高價 錢多時:

<1.1>則最新的物品目前價格此時又分兩種情形:

1: (user 出的最高價錢減掉資料庫中的最高價錢) >= (出 價增額)時:

則最新的物品目前價格等於資料庫中的最高價格加上出 價增額。

2: (user 出的最高價錢減掉資料庫中的最高價錢) < (出 價增額)時:

則最新的物品目前價格等於此 user 的最高出價。

<1.2>儲存[出價紀錄]。

<1.3>更新[賣方物品資料]。

<2>現在出價的 user 的最高出價金額若等於資料庫中的最高 價錢時:

<2.1>先出價者先贏,然後告訴他已有人出此價格。

<2.2>儲存[出價紀錄]。

<2.3>更新[賣方物品資料]。

<3>現在出價的 user 的最高出價金額若比資料庫中的最高價 錢少時:

<3.1>則最新的物品目前價格此時又分兩種情形:

1: (資料庫中的最高價錢減掉 user 出的最高價錢) >= (出 價增額)時:

則最新的物品目前價格等於 user 出的最高價錢加上出價 增額。

2: (資料庫中的最高價錢減掉 user 出的最高價錢) < (出 價增額)時:

則最新的物品目前價格等於資料庫中的最高價錢。

<3.2>儲存[出價紀錄]。

<3.3>更新[賣方物品資料]。

[圖 5.28]為 checkout-success1.jsp 程式流程圖。

開始

[圖 5.28 checkout-success1.jsp 程式流程圖]

5.8.7 checkout-success2.jsp

這個程式主要是回應 checkout-success1.jsp 更新完資 料庫後的後續動作,會告訴使用者出價已經完成,以及物品出 價過後的詳細訊息,包括有物品分類,物品名稱,上次價格,出 價增額,您的最高出價金額,您這次的出價價格等等的訊息。

[圖 5.29]為 checkout-success2.jsp 程式流程圖。

開 始

取 得 來 自 c h e c k o u t-s u c c e t-s t-s 2 .jt-s p

的 資 料

顯 示 出 價 已 經 完 成 的 訊 息 以 及 物 品 詳 細 資

返 回 到 G o o d s S h o w .js p

[圖 5.29 checkout-success2.jsp 程式流程圖]

5.8.8 buynow.jsp

當使用者在 checkout-main-page.jsp 中按下立刻買的的 按鈕時便會連到這一面,這一面會顯示出該物品的基本訊息 如名稱、數量、立刻買價錢。並會要求使用者輸入帳號與密 碼以作確認,使用者所輸入的帳號與密碼將連到

LoginDeal.jsp 程式作資料庫的比對。[圖 5.30]為 buynow.jsp 程式流程圖。

開 始

連 到 logindeal.jsp

顯 示 帳 號 密 碼

錯 誤 錯 誤

[圖 5.30 buynow.jsp 程式流程圖]

5.8.9 LoginDeal.jsp

此程式的主要功能是判斷 BuyNow.jsp 頁面使用者所輸入 的帳號密碼是否正確,以及錯誤時所對應的動作訊息。

當程式接收到使用者的帳號密碼後會先比對帳號部分,

如果帳號部分並不存在該使用者,則會顯示:並無此使用者 帳號,且將頁面導回至 BuyNow.jsp,如果帳號正確則會再一 步比對密碼部分,同樣的密碼若錯誤則會顯示:密碼不正確,

而導回至 BuyNow.jsp,而當帳號密碼皆正確時程式便會偵測 此帳號是否已經通過認證,若未通過則導回 BuyNow.jsp 並顯 示錯誤訊息,程式之所以要將帳號密碼的錯誤訊息分別顯示 是為了方便使用者知道其所填寫的資料錯誤為何,這樣可提 高 使 用 者 下 一 次 輸 入 時 的 正 確 性 。 [ 圖 5.31] 為 LoginDeal.jsp 程式流程圖。

開始

抓取BuyNow傳來的帳 號密碼與欲傳至 BuyNowDeal的資料

判斷

將帳號密碼與 BuyNowDeal需要值 傳至SendBuyNow.jsp

帳號密碼符合

帳號密碼錯誤

連結至 BuyNow

結束 會員固

定資料

[圖 5.31 LoginDeal.jsp 程式流程圖]

5.8.10 SendBuyNow.jsp

此程式的主要功能是處理會員利用立刻買功能所買下的 拍賣物品,並寄送雙方資訊以提供買賣雙方進行交易行為。

當程式被呼叫後會將此筆資料從資料庫 Table[賣方物品

資料]中轉移至[完成交易紀錄],程式會寄送郵件至買賣雙方 會員的信箱,其中各包含對方的基本資料及連絡電話讓雙方 能夠進一步連絡並進行金錢與物品交易,然後程式會將此拍 賣物品資料從資料庫 Table[賣方物品資料]轉移至[完成交易 紀錄],並且在資料庫 Table[評價判斷表]中寫入雙方的資 料,此動作則是讓買賣雙方能夠再市場的評價功能中為雙方 進行此次交易的評價。[圖 5.32]為 SendBuyNow.jsp 程式流 程圖。

開 始

[圖 5.32 SendBuyNow.jsp 程式流程圖]

5.8.11 buynowdeal.jsp

使用者在經過立刻買的處理過程結束後,系統會在這一 程式中顯示出使用者已經成功完成立刻買的訊息,使用者在 閱讀完之後便可以連結到 main.jsp 的頁面。[圖 5.33]為 buynowdeal.jsp 的程式流程圖。

開始

結束

顯示使用者已經成 功完成立刻買交易

[圖 5.33 buynowdeal.jsp 的程式流程圖]

5.9 結標程式功能

在這一部分的子系統中分為 2 個程式,每一項程式的說 明及程式流程如下:

5.9.1 EndDeal.jsp

此程式的作用是讓管理員設定固定時段執行結標動作,

並再結標動作開始時將所有拍賣中的物品期限減少一天。

管理員必須先行決定每日結標時間,當程式啟動之後便會以 24 小時為週期不段重複的執行結標動作,而當設定時間到達 之後,程式會抓取資料庫 Table[賣方物品資料]中每一筆資料 的拍賣期限出來並減少一天,然後呼叫 EndSend.jsp 處理結

標程序。[圖 5.34]為 EndDeal.jsp 程式流程圖。

開始

將所有賣方物品資 料的拍賣期限日期

-1

賣方物 品資料

連結至 EndSend.jsp

結束

[圖 5.34 EndDeal.jsp 程式流程圖]

5.9.2 EndSend.jsp

此程式的主要功能是處理拍賣期限已到達的拍賣物品,

並且判斷這些拍賣物品是否已達成交易,再根據情況寄送不 同的郵件至買賣雙方。

當程式被 EndDeal.jsp 呼叫後便會逐一的去搜尋資料庫 Table[賣方物品資料]中所有的件數,然後抓出其中[拍賣期 限]為 0 者,此表示該樣拍賣物品已經超過拍賣者訂定的拍賣 期限,待找出該樣物品後程式會先偵測該物品的最高出價是

否有超過賣方所訂立的底價,若未超過底價則表示該項物品 雖然有人競標,但是最高競標者所出的價位卻未超過賣方所 訂立的底價,則該項物品便不算達成交易,此時程式會傳送 一封郵件至賣方會員的信箱,並告知賣方會員其所拍賣物品 的詳細情況,同時程式會將此筆資料從資料庫 Table[賣方物 品資料]中轉移至[完成交易紀錄],若最高出價高於底價則表 示此物品已經成功賣出,此時程式將會郵件至買賣雙方會員 的信箱,其中各包含對方的基本資料及連絡電話讓雙方能夠 進一步連絡並進行金錢與物品交易,然後程式會將此拍賣物 品資料從資料庫 Table[賣方物品資料]轉移至[完成交易紀 錄],並且在資料庫 Table[評價判斷表]中寫入雙方的資料,

此動作則是讓買賣雙方能夠再市場的評價功能中為雙方進行 此次交易的評價。[圖 5.35]為 EndSend.jsp 程式流程圖。

開始

設定javamail bean

設定javamail

bean

5.10 我的拍賣程式功能

5.10.1 MySell.jsp

在這一部分的子系統中分為 1 個程式,每一項程式的說 明及程式流程如下:

我的拍賣為列出使用者現在正在拍賣的物品,可以讓 使用者快速的瀏覽物品的狀況及出價等等詳細的紀錄,不用 每次都用搜尋功能來尋找自己所帶的物品。當使用者每次登 入時伺服器會給每個使用者一個唯一的 session,在登入時就 把登入者的帳號存進 session 中,所以系統便讀取此值,再 比對資料庫中每個賣方物品資料的欄位,列出物品的賣方為 此 session 中的帳號的值,已完成此功能。[圖 5.36]為 MySell.jsp 程式流程圖。

開 始

[圖 5.36 MySell.jsp 程式流程圖]

5.11 發言程式功能

在這一部分的子系統中有 5 個程式,說明及程式流程如 下:

5.11.1 GoodsShow.jsp

為展示物品詳細資料的的頁面,包含物品的各個詳細資 料有賣方帳號、物品名稱、物品數量、物品分類、賣方希望

為展示物品詳細資料的的頁面,包含物品的各個詳細資 料有賣方帳號、物品名稱、物品數量、物品分類、賣方希望

在文檔中 二手樂器拍賣論壇之建構 (頁 102-0)

相關文件