55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
// Package model -----------------------------
|
||
// @file : container.go
|
||
// @author : JJXu
|
||
// @contact : wavingbear@163.com
|
||
// @time : 2024/7/1 上午11:47
|
||
// -------------------------------------------
|
||
package model
|
||
|
||
import (
|
||
"github.com/fonchain/fonchain-container/pkg/util"
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// Container 货柜
|
||
type Container struct {
|
||
Model
|
||
ContainerUid string `gorm:"column:container_uid;comment:货柜编号"`
|
||
Name string `gorm:"column:name;comment:货柜名称"`
|
||
ColumnLen int `gorm:"column:column_len;comment:货柜列数"`
|
||
RowLen int `gorm:"column:row_len;comment:货柜行数"`
|
||
}
|
||
|
||
func (c Container) TableName() string {
|
||
return "container"
|
||
}
|
||
func (c *Container) BeforeCreate(tx *gorm.DB) (err error) {
|
||
if c.ContainerUid == "" {
|
||
c.ContainerUid, err = util.GetUid()
|
||
}
|
||
return nil
|
||
}
|
||
|
||
// func (d *Device) BeforeCreate(tx *gorm.DB) error {
|
||
// // 获取当前日期,格式化为yyMMdd
|
||
// currentDate := time.Now().Format(stime.Format_NoSpacer_YMD)
|
||
//
|
||
// // 生成一个4位的随机序列号,范围0000-9999
|
||
// randomSeq := fmt.Sprintf("%04d", rand.Intn(10000))
|
||
//
|
||
// // 构造SN号主体部分
|
||
// sn := currentDate + productCode + randomSeq
|
||
//
|
||
// // 计算校验位,这里简单使用所有字符ASCII值之和对11取模
|
||
// var checkSum int
|
||
// for _, char := range sn {
|
||
// checkSum += int(char)
|
||
// }
|
||
// checkSum %= 11
|
||
// checkSumStr := fmt.Sprintf("%01d", checkSum)
|
||
//
|
||
// // 返回完整的SN号,包括校验位
|
||
// d.SN = sn + checkSumStr
|
||
// return nil
|
||
// }
|