生成訂單號的兩種方法


第一種是以前寫過的那種 , 訂單號要多少位數自己控制,反正前面6位都是時間:

PHP生成唯一訂單號

 

第二種是:

1,生成A類,B類兩個表,

CREATE TABLE `order_id_a` (
`id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`stub` char(1) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4;

CREATE TABLE `order_id_b` (
`id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`stub` char(1) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4;

其中,單數天是A類,雙數是B類;

 

2,然后根據一定的規則生成17位的訂單號:

<?php

    /**
     * 生成訂單號表a
     * @param int $suid 門店id
     * @return string
     */
    public static function getorderIdA($suid = 0)
    {
        $table = CaterDbTables::orderIdA();
        $sql = "REPLACE INTO $table (stub) VALUES ('a')";
        $conn = MysqlHelper::getInstance();
        $id = $conn->insert($sql, 1);
        $system_num = '11';
        return date('ymd') . $system_num . ($suid % 10) . sprintf("%08d", $id % 100000000);
    }

    /**
     * 生成訂單號表b
     * @param int $suid 門店id
     * @return string
     */
    public static function getorderIdB($suid = 0)
    {
        $table = CaterDbTables::orderIdB();
        $sql = "REPLACE INTO $table (stub) VALUES ('b')";
        $conn = MysqlHelper::getInstance();
        $id = $conn->insert($sql, 1);
        $system_num = '11';
        return date('ymd') . $system_num . ($suid % 10) . sprintf("%08d", $id % 100000000);
    }

 


免責聲明!

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



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