mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[fix] 生成ID首位必须为字母
This commit is contained in:
@@ -186,7 +186,7 @@ func (p *DeviceApi) InsertDevice(rc *restfulx.ReqCtx) {
|
|||||||
data.OrgId = rc.LoginAccount.OrganizationId
|
data.OrgId = rc.LoginAccount.OrganizationId
|
||||||
list, _ := p.DeviceApp.FindList(entity.Device{Name: data.Name})
|
list, _ := p.DeviceApp.FindList(entity.Device{Name: data.Name})
|
||||||
biz.IsTrue(!(list != nil && len(*list) > 0), fmt.Sprintf("名称%s已存在,设置其他命名", data.Name))
|
biz.IsTrue(!(list != nil && len(*list) > 0), fmt.Sprintf("名称%s已存在,设置其他命名", data.Name))
|
||||||
data.Id = utils.GenerateID()
|
data.Id = utils.GenerateTdID("d")
|
||||||
data.LinkStatus = global.INACTIVE
|
data.LinkStatus = global.INACTIVE
|
||||||
data.LastAt = time.Now()
|
data.LastAt = time.Now()
|
||||||
data.Protocol = product.ProtocolName
|
data.Protocol = product.ProtocolName
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ func (p *ProductApi) GetProduct(rc *restfulx.ReqCtx) {
|
|||||||
func (p *ProductApi) InsertProduct(rc *restfulx.ReqCtx) {
|
func (p *ProductApi) InsertProduct(rc *restfulx.ReqCtx) {
|
||||||
var data entity.Product
|
var data entity.Product
|
||||||
restfulx.BindJsonAndValid(rc, &data)
|
restfulx.BindJsonAndValid(rc, &data)
|
||||||
data.Id = utils.GenerateID()
|
data.Id = utils.GenerateTdID("p")
|
||||||
data.Owner = rc.LoginAccount.UserName
|
data.Owner = rc.LoginAccount.UserName
|
||||||
data.OrgId = rc.LoginAccount.OrganizationId
|
data.OrgId = rc.LoginAccount.OrganizationId
|
||||||
// 如果未设置规则链,默认为主链
|
// 如果未设置规则链,默认为主链
|
||||||
|
|||||||
@@ -167,3 +167,35 @@ func GenerateID() string {
|
|||||||
}
|
}
|
||||||
return base64.URLEncoding.EncodeToString(id)[:10]
|
return base64.URLEncoding.EncodeToString(id)[:10]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
)
|
||||||
|
|
||||||
|
func RandString(n int) string {
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
output := make([]byte, n)
|
||||||
|
// We will take n bytes, one byte for each character of output.
|
||||||
|
randomness := make([]byte, n)
|
||||||
|
// read all random
|
||||||
|
_, err := rand.Read(randomness)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
l := len(letterBytes)
|
||||||
|
// fill output
|
||||||
|
for pos := range output {
|
||||||
|
// get random item
|
||||||
|
random := randomness[pos]
|
||||||
|
// random % 64
|
||||||
|
randomPos := random % uint8(l)
|
||||||
|
// put into output
|
||||||
|
output[pos] = letterBytes[randomPos]
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(output)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTdID(px string) string {
|
||||||
|
return px + RandString(9)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user