golang 生成定單號的操作

2022-09-22 01:12:09 字數 1348 閱讀 2848

年(2位)+一年中的第幾天(3位)+指定位數隨機數

//生成單號

//06123***xx

//sum 最少10位,sum 表示全部單號位數

func makeyeardaysrand(sum int) string

//組合

strs += days

//剩餘隨機數

sum = sum - 5

if sum < 1

//0~9999999的隨機數

ran := getrand()

pow := math.pow(10, float64(sum)) - 1

"sum=>", sum)

"pow=>", pow)

result := strconv.itoa(ran.intn(int(pow)))

count = len(result)

"result=>", result)

if count < sum

//組合

strs += result

return strs

}//年中的第幾天

func getdaysinyearbythisyear() int

y, month, d := now.date()

m := int(month)

for i := 0; i < m-1; i++

if (y%400 == 0 || (y%4 == 0 && y%100 != 0)) && m > 2 else

return total;

}補充:基於go語言實現的支援高併發訂單號生vkbvzm成函式

1.固定24位長度訂單號,毫秒+程序id+序號。

2.同一毫秒內只要不超過一萬次併發,則訂單號不會重複。

github位址:

packag程式設計客棧e ordernum

import (

"fmt"

"github.com/w3liu/go-common/程式設計客棧constant/timeformat"

"os"

"sync/atomic"

"time")

var num int64

//生成24位訂單號

//前面17位代表時間精確到毫秒,中間3位代表程序id,最後4位代表序號

func generate(t time.time) string

//對長度不足n的數字前面補0

func sup(i int64, n int) string

return m

}本文標題: golang 生成定單號的操作

本文位址: /jiaoben/golang/370290.html

PHP訂單號的生成

前陣子,公司有個電子商務專案,需要生成訂單號。當時的考慮很簡單,取系統時間加上隨機數,或者使用 uniqid 方法。我們都知道,訂單號最基本的要求就是唯一,這個條件必須滿足。仔細考慮下上述方法,在顧客購買量少的情況下,訂單重複的可能性為零,但是在購買高蜂期生成的訂單號重複是很有可能發生的。所以上述方...

php訂單號的生成

來自ecshop訂單號生成函式 includes lib order.php檔案中的get order sn 得到新訂單號 return string function build order no 原訂單號格式為年月日 5位隨機數,例如 2012022112345。如果你想改變訂單號的生成規則,可...

關於訂單號的生成

現在在做乙個手機 的專案,boss叫我設計乙個訂單號,訂單號要求唯一。我冥思苦想,然後查閱了其他大 的生成方法,boss給我的要求是10位,好吧,這個重複性超級高。我是這樣設計的 使用者id後4位 日期 月日 隨機2位數 感覺這樣的重複性還是挺高的,假設有10w個使用者,那麼前面4位重複的就有10個...