package jst import ( "recook/internal/v2/lib/db" "sync" ) var once sync.Once var expressCache = make(map[string]string) type ExpressModel struct { db.BaseModel Id uint `gorm:"column:id;primary_key"` Name string `gorm:"column:name"` LcID string `gorm:"column:lc_id"` } // TableName sets the insert table name for this struct type. func (o *ExpressModel) TableName() string { return "jst_express" } // GetJSTExpressCode 获取jst快递编号. func (o *ExpressModel) GetJSTExpressCode(name string) string { once.Do(func() { var list []ExpressModel o.GetDb().Find(&list) for _, v := range list { expressCache[v.Name] = v.LcID } }) if len(name) == 0 { return "" } return expressCache[name] } func (o *ExpressModel) FindByLcID(by string) (result ExpressModel) { o.GetDb().Table(o.TableName()).First(&result, "lc_id = ?", by) return }