php生成訂單號-當天從1開始自增


/**
 * 生成訂單號
 *	-當天從1開始自增
 *	-訂單號模樣:20190604000001
 * @param Client $redis
 * @param $key
 * @param $back:序號回退,如果訂單創建失敗,事務回滾可用
 * @return string
 */
public static function createOrderSn($key, $back=0)
{
    $sn = Redis::get($key);//laravel redis讀取,替換一下
    $snDate = substr($sn,0,8);
    $snNo = intval(substr($sn,8));
    $curDate = date('Ymd');
    if($back==1){//序號回退
        if($curDate==$snDate){
            $snNo = ($snNo>1) ? ($snNo-1) : 1;
            $sn = $curDate.sprintf("%06d",$snNo);
        }
    }else{//序號增加
        if(empty($sn)){
            $sn = $curDate.'000001';
        }else{
            $snNo = ($curDate==$snDate) ? ($snNo+1) : 1;
            $sn = $curDate.sprintf("%06d",$snNo);
        }
    }
    Redis::set($key,$sn);//laravel redis寫入,替換一下
    return $sn;
}

自己封裝的,有不對請指示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM