【人】 常常自以為是的認為這個站人不多啦,隨便處理就好;可以用就好了;過關就好了。實務上就遇到了,雖說做過不少流量大的站,但是還是會走不出既有思維。取號的方法很多,隨便就可以說好幾種做法。
Thank you for reading this post, don't forget to subscribe!- 在成立訂單之後再取號
- 跟資料庫要一組唯一的號碼
- 寫在readis
這裡就用一個檔案來存目前的流水號,主要是用日期六碼在前面,後面帶四位數的流水號,這樣一天就有9999張訂單了,不夠的再加位數。大致的流程就這樣,備份一下吧。
/**
* [getNewAgreementNo 訂單號碼取號機]
* @return [type] [description]
* @Another Angus
* @date 2022-06-25
*/
function getNewAgreementNo() {
$todayNo = date( 'Ymd') ;
$nowSN = config('serial_number') ;
if ( !($nowSN) || strpos( $nowSN['agreement_no'], $todayNo) > -1) {
$atLastNo = (int)str_replace($todayNo, "", $nowSN['agreement_no']) + 1 ;
$nowSN['agreement_no'] = $todayNo.str_pad($atLastNo, 4,'0', STR_PAD_LEFT) ;
} else {
$atLastNo = 1 ;
$nowSN['agreement_no'] = $todayNo.str_pad($atLastNo, 4,'0', STR_PAD_LEFT) ;
}
mac_arr2file( DIR_EXTRA."serial_number.php", $nowSN) ;
return $nowSN['agreement_no'] ;
}
執行結果
$AgreementNo = getNewAgreementNo();
echo $AgreementNo ;
202206250006