技术文摘

设计,技术,行业

php-生成订单编号

固定参数+年月日+2位随机码+4位流水号+2位随机码


 //生成订单编号
public function setOrderId($allianceid){
    if(empty($allianceid)){
        return false;
    }
    $date = date('Y').date('m').date('d');
    $str1 = mt_rand(99,10);
    $str2 = mt_rand(99,10);

    $file = fopen(rootDir.'newfile.txt','r+');//文件地址  可自定义
    if($file == false){

        $file = fopen(rootDir.'newfile.txt','r+');
        $data = array(
            'time' =>   $date,
            'num'  => 1
        );
        $data = serialize($data);
        fwrite($file,$data);
        fclose($file);
    }else{
        $data = fgets($file);
        $data = unserialize($data);
        if($data != false && $data['time'] == $date){
            $data['num'] += 1;
            $data = serialize($data);
            ftruncate($file,0);
            rewind($file);
            fwrite($file,$data);
        }else{
            $data['num'] = 1;
            $data['time'] = $date;
            $data = serialize($data);
            ftruncate($file,0);
            rewind($file);
            fwrite($file,$data);
        }
        fclose($file);
    }
    $data = unserialize($data);
    $num = $this->setnum($data['num']);
    //
    $orderid = $allianceid.$date.$str1.$num.$str2;

    return $orderid;
}
//不够4位填充0
public function setnum($num){
    $len = strlen($num);
    if($len == 4){
        return $num;
    }else{
        $str = 1000;
        $vacancy = 4-$len;
        $str = substr($str,1,$vacancy);
        return $str.$num;
    }

}