提交 e329ceb3 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

gen ulid

上级 bb7e145c
fields:
- field: field_uuid
format: "uuid(-)"
- field: f1
from: uuid.v2.yaml
use: by_format
postfix: "\t"
- field: f2
from: ulid.v1.yaml
use: ulid{3}
......@@ -6,4 +6,10 @@ version: 1.0
fields:
- field: f1
format: "uuid(- )"
from: uuid.v2.yaml
use: by_format
postfix: "\t"
- field: f2
from: ulid.v1.yaml
use: ulid{3}
\ No newline at end of file
......@@ -22,6 +22,8 @@ func CreateField(field *model.DefField) model.FieldWithValues {
CreateListField(field, &fieldWithValue)
} else if field.Type == constant.FieldTypeTimestamp {
CreateTimestampField(field, &fieldWithValue)
} else if field.Type == constant.FieldTypeUlid {
CreateUlidField(field, &fieldWithValue)
} else if field.Type == constant.FieldTypeArticle {
CreateArticleField(field, &fieldWithValue)
}
......
......@@ -5,6 +5,9 @@ import (
"github.com/easysoft/zendata/src/model"
constant "github.com/easysoft/zendata/src/utils/const"
stringUtils "github.com/easysoft/zendata/src/utils/string"
"github.com/easysoft/zendata/src/utils/vari"
"github.com/oklog/ulid/v2"
"math/rand"
"strconv"
"strings"
"time"
......@@ -30,6 +33,23 @@ func CreateTimestampField(field *model.DefField, fieldWithValue *model.FieldWith
fieldWithValue.Values = values
}
func CreateUlidField(field *model.DefField, fieldWithValue *model.FieldWithValues) {
count := 0
t := time.Unix(1000000, 0)
entropy := ulid.Monotonic(rand.New(rand.NewSource(t.UnixNano())), 0)
for true {
val := ulid.MustNew(ulid.Timestamp(t), entropy).String()
fieldWithValue.Values = append(fieldWithValue.Values, val)
count++
if count >= constant.MaxNumb || count > vari.Total {
break
}
}
}
func convertTmFormat(field *model.DefField) { // to 2006-01-02 15:04:05
format := field.Format
......
......@@ -56,6 +56,7 @@ var (
FieldTypeList = "list"
FieldTypeTimestamp = "timestamp"
FieldTypeUlid = "ulid"
FieldTypeArticle = "article"
LeftBrackets rune = '('
......
title: ULID
desc: 通用唯一词典分类标识符。
author: wwccss
version: 1.0
field: ulid
instances:
- instance: ulid
note: 标准26位长度,按字母升序排序。
fields:
- field: part1
type: ulid
\ No newline at end of file
title: UUID
desc: 通用唯一识别码。
author: wwccss
version: 1.0
field: uuid
instances:
- instance: by_format
note: 以-为分隔符的随机UUID
fields:
- field: part1
range: 1-9
format: "uuid(-)"
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册