開發(fā)實例丨僅需5分鐘,解決電商開發(fā)大問題,速來學(xué)習(xí)!
時間:2023-05-26 23:27:01 | 來源:網(wǎng)站運營
時間:2023-05-26 23:27:01 來源:網(wǎng)站運營
開發(fā)實例丨僅需5分鐘,解決電商開發(fā)大問題,速來學(xué)習(xí)?。?br>
01實例介紹
日常生活中,我們經(jīng)常需要使用到電商平臺,例如淘寶、京東、拼多多等,在這些交易場景下的訂單一般會設(shè)置一個支付時間,若超過這個支付時間,該訂單將會自動取消并刪除(或訂單狀態(tài)變?yōu)橐堰^期)。
超時訂單,一般情況下需要手動刪除,既費時間,又費人力,更甚者還會影響業(yè)務(wù)成交,尤其是在重大活動的時候,訂單超時自動刪除功能的重要性則被體現(xiàn)的淋漓盡致。
本節(jié)實例,我們將使用飛算SoFlu軟件機器人的全自動開發(fā)平臺實現(xiàn)訂單超時自動刪除功能。相對于傳統(tǒng)開發(fā),利用全自動開發(fā)平臺可視化開發(fā)模式,將功能的實現(xiàn)邏輯在流程圖中展示,開發(fā)過程變得更加簡潔。
02效果展示
在全自動開發(fā)平臺中,執(zhí)行“訂單超時自動刪除”定時任務(wù),系統(tǒng)將彈出調(diào)用成功的詳情頁面,其中data輸出“0”說明沒有需要刪除的訂單, data輸出1說明刪除了1條超時訂單,以此類推data輸出3即說明刪除了3條超時訂單,如圖2-1所示。此時數(shù)據(jù)庫中的訂單表有如下變化:未支付且超過規(guī)定支付時間的訂單將會自動刪除,如圖2-2、2-3所示。
說明:本實例僅針對后端程序開發(fā),若與前端頁面聯(lián)調(diào)可實現(xiàn)如圖2-4、2-5所展示的效果,此處以淘寶平臺為例。圖2?1 定時任務(wù)調(diào)用詳情頁面
圖2?2 調(diào)用定時任務(wù)前訂單表數(shù)據(jù)
圖2?3 調(diào)用定時任務(wù)后訂單表數(shù)據(jù)
圖2?4 執(zhí)行前前端頁面效果
圖2?5 執(zhí)行后前端頁面效果
03準(zhǔn)備工作
提前準(zhǔn)備一張數(shù)據(jù)表:訂單表 order_info(用于存儲訂單信息),表結(jié)構(gòu)設(shè)計及相關(guān)數(shù)據(jù)如下圖所示。
訂單表 order_info:圖3-1訂單表數(shù)據(jù)
說明:訂單表中的數(shù)據(jù)可以自行配置,其中pay_status(支付狀態(tài))為1時代表訂單已支付,為0時代表未支付。04流程圖設(shè)計概覽
圖4?1 定時任務(wù)流程圖
邏輯描述:1.將“需刪除的未支付且超過支付時間的訂單數(shù)目”初始化設(shè)置為0 ;
2.在<訂單表>查詢未支付訂單信息;
3.獲取<訂單表>中未支付訂單的總數(shù);
4.遍歷查詢到的未支付訂單信息,若當(dāng)前計數(shù)器索引值小于未支付訂單總數(shù),則開始遍歷流程;若當(dāng)前計數(shù)器索引值大于等于未支付訂單總數(shù),則進行遍歷完成流程。
5.開始遍歷流程:
(1)獲取當(dāng)前計數(shù)器索引值指向未支付訂單的最后支付時間(即訂單創(chuàng)建時間加上30分鐘)
(2)獲取當(dāng)前系統(tǒng)時間
(3)判斷當(dāng)前未支付訂單是否支付超時,若支付超時,即當(dāng)前未支付訂單的最后支付時間小于等于當(dāng)前系統(tǒng)時間,則進行支付超時流程;若支付未超時,即當(dāng)前未支付訂單的最后支付時間大于當(dāng)前系統(tǒng)時間,繼續(xù)遍歷下一條數(shù)據(jù)
(4)支付超時流程:刪除當(dāng)前未支付訂單
(5)支付超時流程:需刪除的未支付且超過支付時間的訂單數(shù)目加1,繼續(xù)遍歷下一條數(shù)據(jù)
6.遍歷完成流程:輸出需刪除的未支付且超過支付時間的訂單數(shù)目,結(jié)束流程
05全自動開發(fā)平臺具體操作過程
一、新增實體模型Count
進入全自動開發(fā)平臺“實體模型”功能模塊,新增一個實體模型Count,用于記錄“需刪除的未支付且超過支付時間的訂單數(shù)目”,如下圖所示。
圖5?1 實體模型模塊
圖5?2 新增實體模型
二、新增定時任務(wù)-訂單超時自動刪除
1.進入全自動開發(fā)平臺“定時任務(wù)”功能模塊,新增一個定時任務(wù),填寫定時任務(wù)的基本信息并設(shè)置Cron表達式,如下圖所示。
說明:本實例設(shè)置該定時任務(wù)5分鐘執(zhí)行一次,所以Cron表達式中秒指定為0即可,如圖5-2所示,分鐘設(shè)置為從0開始,每5分鐘執(zhí)行一次,您可以預(yù)覽最近10次的執(zhí)行時間,如圖5-3所示,您也可以根據(jù)實際需求設(shè)置Cron表達式。
圖5?3 定時任務(wù)模塊
圖5?4 新增定時任務(wù)
圖5?5 設(shè)置Cron表達式
圖5?6 設(shè)置Cron表達式
2.因本實例不需要配置入口參數(shù),直接單擊“提交”,進入下一步模型編輯即可。
圖5?7 參數(shù)列表
三、定時任務(wù)模型編輯
通過拖拽左側(cè)組件列表中所需的組件進行模型編輯。
圖5?8 進入模型編輯
圖5?9 窗體視圖
四、組件的具體配置(按邏輯描述展示)
1.使用賦值組件將“需刪除的未支付且超過支付時間的訂單數(shù)目”初始化設(shè)置為0。
圖5?10 賦值組件
【初始化“需刪除的未支付且超過支付時間的訂單數(shù)目”】
圖5?11 選擇數(shù)據(jù)模型
圖5?12 設(shè)置參數(shù)值
2.使用單SQL組件在<訂單表>查詢所有訂單未支付的信息,具體SQL內(nèi)容如5-15所示。
圖5?13 單SQL組件【查詢未支付訂單】
圖5?14 組件配置
圖5?15 SQL內(nèi)容
注意:若對于如何新增SQL語句不清晰,可參見飛算云智官網(wǎng)文檔中心
https://www.feisuanyz.com/support/helpCenter(全自動開發(fā)平臺 / 快速入門 / 新增SQL)
3.使用單函數(shù)組件調(diào)用函數(shù)listSize(List sourceList),用于獲取<訂單表>中未支付訂單List的大小,需傳入上一步單SQL組件【查詢未支付訂單】的執(zhí)行結(jié)果,如下圖所示。
圖5?16 單函數(shù)組件【獲取未支付訂單總數(shù)】
圖5?17 組件配置
4.使用計數(shù)器組件和互斥條件組件遍歷查詢到的未支付訂單信息,若當(dāng)前計數(shù)器索引值小于未支付訂單總數(shù),則開始遍歷流程;若當(dāng)前計數(shù)器索引值大于等于未支付訂單總數(shù),則進行遍歷完成流程。
說明:計數(shù)器組件【遍歷未支付訂單】的循環(huán)流程變量引用單函數(shù)組件【獲取未支付訂單總數(shù)】的執(zhí)行結(jié)果,操作符選擇遞增,如圖5-19所示。注意:計數(shù)器索引值從0開始。
圖5?18 遍歷查詢到的未支付訂單信息
圖5?19 計數(shù)器組件【遍歷未支付訂單】配置
圖5?20 開始遍歷流轉(zhuǎn)條件
圖5?21 遍歷完成流轉(zhuǎn)條件
5.開始遍歷流程:
(1)使用單函數(shù)組件調(diào)用函數(shù)addMinute(Date sourceDate,int addValue),獲取當(dāng)前計數(shù)器索引值指向未支付訂單的最后支付時間,需傳入當(dāng)前計數(shù)器索引值指向未支付訂單的創(chuàng)建時間以及支付超時時間,本實例的支付超時時間設(shè)置為30分鐘,如圖5-23所示。
說明:在設(shè)置參數(shù)“當(dāng)前計數(shù)器索引值指向未支付訂單的創(chuàng)建時間”時需進行多次選擇,首先選中“查詢未支付訂單”頁簽中查詢結(jié)果單條記錄“選擇流程變量”選項,如圖5-24所示,進入下一個參數(shù)選擇頁面,選擇“遍歷未支付訂單”頁簽下的當(dāng)前計數(shù)器索引,如圖5-25所示,最后回到“查詢未支付訂單”頁簽,選擇createTime(創(chuàng)建時間)即可,如圖5-26所示。
圖5?22 單函數(shù)組件
【獲取未支付訂單的最后支付時間】
圖5?23 組件配置
圖5?24 選擇流程變量
圖5?25 選擇當(dāng)前計數(shù)器索引值
圖5?26 選擇創(chuàng)建時間字段
(2)使用單函數(shù)組件調(diào)用函數(shù)getCurrDateTime()獲取當(dāng)前系統(tǒng)時間。
圖5?27 單函數(shù)組件
【獲取當(dāng)前系統(tǒng)時間】
圖5?28 組件配置
(3)使用互斥條件組件判斷當(dāng)前未支付訂單是否支付超時,若支付超時,即當(dāng)前未支付訂單的最后支付時間小于等于當(dāng)前系統(tǒng)時間,則進行支付超時流程;若支付未超時,即當(dāng)前未支付訂單的最后支付時間大于當(dāng)前系統(tǒng)時間,繼續(xù)遍歷下一條數(shù)據(jù)。
圖5?29 判斷當(dāng)前未支付訂單是否支付超時流程
圖5?30 支付超時流轉(zhuǎn)條件
圖5?31 支付未超時流轉(zhuǎn)條件
(4)支付超時流程:使用單SQL組件刪除當(dāng)前未支付訂單,需傳入當(dāng)前計數(shù)器索引值指向的未支付訂單,具體SQL內(nèi)容如圖5-34所示。
說明:在設(shè)置參數(shù)“當(dāng)前計數(shù)器索引值指向的未支付訂單”時同樣需要進行多次選擇,首先選中“查詢未支付訂單”頁簽中查詢結(jié)果單條記錄“選擇流程變量”選項,如圖5-35所示,進入下一個參數(shù)選擇頁面,選擇“遍歷未支付訂單”頁簽下的當(dāng)前計數(shù)器索引,如圖5-36所示,最后回到“查詢未支付訂單”頁簽,選擇當(dāng)前單條SQL記錄即可,如圖5-37所示。
圖5?32 單SQL組件
【刪除當(dāng)前未支付訂單】
圖5?33 組件配置
圖5?34 刪除當(dāng)前未支付訂單的SQL內(nèi)容
圖5?35 選擇流程變量
圖5?36 選擇當(dāng)前計數(shù)器索引值
圖5?37 選擇當(dāng)前計數(shù)器索引值指向的未支付訂單記錄
(5)支付超時流程:再次使用賦值組件將“需刪除的未支付且超過支付時間的訂單數(shù)目”加1,繼續(xù)遍歷下一條數(shù)據(jù)。
圖5?38 賦值組件
【需刪除的未支付且超過支付時間的訂單數(shù)目+1】
圖5?39 選擇數(shù)據(jù)模型
圖5?40 組件配置
6.遍歷完成流程:輸出需刪除的未支付且超過支付時間的訂單數(shù)目,結(jié)束流程。
說明:輸出結(jié)果組件的參數(shù)直接選擇賦值組件【初始化“需刪除的未支付且超過支付時間的訂單數(shù)目”】中數(shù)據(jù)模型Count即可,如圖5-43所示。
圖5?41 輸出結(jié)果組件
【輸出刪除的未支付訂單數(shù)】
圖5?42 組件配置
圖5?43 參數(shù)選擇
五、退出窗體視圖
流程圖設(shè)計完成后,保存并退出窗體視圖。
圖5?44 保存流程圖
六、提交定時任務(wù)
圖5?45 提交定時任務(wù)
七、執(zhí)行定時任務(wù)
1.單擊“執(zhí)行任務(wù)”,檢驗該定時任務(wù)是否可以實現(xiàn)預(yù)期功能。
說明:若點擊啟動任務(wù),則該定時任務(wù)將會根據(jù)Cron表達式的設(shè)置每五分鐘執(zhí)行一次。
圖5?46 執(zhí)行定時任務(wù)
2.通過測試用例響應(yīng)內(nèi)容查看定時任務(wù)的執(zhí)行結(jié)果,同時查看數(shù)據(jù)庫中訂單表的數(shù)據(jù)是否發(fā)生了變化。
圖5?47 查看響應(yīng)內(nèi)容
3.若定時任務(wù)的執(zhí)行結(jié)果出現(xiàn)錯誤或數(shù)據(jù)庫中訂單表中的數(shù)據(jù)未出現(xiàn)預(yù)期變化,您也可以通過查看可視化日志進行調(diào)試。
圖5?48 查看可視化日志
體驗入口網(wǎng)址:
https://feisuanyz.com/復(fù)制此鏈接至PC瀏覽器,點擊右上角【申請試用】,開始產(chǎn)品體驗旅程。
關(guān)鍵詞:學(xué)習(xí),解決,實例