package service import ( "time" "twin-api/app/common/dao" "twin-api/base/config" ) type Pkg struct{} func NewPkg() *Pkg { return &Pkg{} } // Latest 按 id 倒序取最新的、未达人数上限的可用包,过期则报错,否则返回下载链接 func (p *Pkg) Latest(limit int64) string { pkg, err := dao.NewPackage().GetAvailableByName("", limit) if err != nil { panic(config.ErrDb.New().Append(err)) } if pkg == nil { panic(config.ErrNoData.New().Append("package not found")) } if pkg.ExpireTime < time.Now().Unix() { panic(config.ErrPkgExpire.New()) } return pkg.Link }