zoukankan      html  css  js  c++  java
  • 生成订单号的两种方法

    第一种是以前写过的那种 , 订单号要多少位数自己控制,反正前面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);
        }
  • 相关阅读:
    获取当前时间的时间戳
    js获取时间戳
    排序(一)冒泡,选择,插入
    MATLAB入门(一)数组
    锐捷客户端下虚拟机VMware无法联网的问题
    C++ Primer 读书笔记
    LA 4329 树状数组入门
    BZOJ 4352 预处理 + DP
    BZOJ 1954 (POJ 3764) Trie的经典应用 求树上最大异或值
    BZOJ 1597 斜率优化
  • 原文地址:https://www.cnblogs.com/pyspang/p/10523633.html
Copyright © 2011-2022 走看看