package article type LianV1Article struct { Id uint64 `xorm:"<- not null" ` //id Title string `xorm:"<- not null" json:"title"` //标题 Type uint64 `xorm:"<- not null"` //类型 Ctime int64 `xorm:"<- not null ctime" ` // 发布时间 Brief string `xorm:"<- not null" json:"brief"` //简介 Content string `xorm:"<- not null" json:"content"` //内容 Stocks string `xorm:"<- not null" json:"stocks"` //股票代码 } func NewLianV1Article(cfg ...articleConfiguration) *LianV1Article { article := &LianV1Article{} articleConfigurations(cfg).apply(article) return article } type articleConfiguration func(*LianV1Article) type articleConfigurations []articleConfiguration func (cfg articleConfigurations) apply(article *LianV1Article) { for _, c := range cfg { c(article) } } func WithArticleId(arg uint64) articleConfiguration { return func(article *LianV1Article) { article.Id = arg } } func WithArticleTitle(arg string) articleConfiguration { return func(article *LianV1Article) { article.Title = arg } } func WithArticleType(arg uint64) articleConfiguration { return func(article *LianV1Article) { article.Type = arg } } func WithArticleCtime(arg int64) articleConfiguration { return func(article *LianV1Article) { article.Ctime = arg } } func WithArticleBrief(arg string) articleConfiguration { return func(article *LianV1Article) { article.Brief = arg } } func WithArticleContent(arg string) articleConfiguration { return func(article *LianV1Article) { article.Content = arg } } func WithArticleStocks(arg string) articleConfiguration { return func(article *LianV1Article) { article.Stocks = arg } }