mirror of https://github.com/go-sonic/sonic.git
feat: for save
parent
949ab17986
commit
97d95406ee
@ -0,0 +1,361 @@
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
|
||||
package dal
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"gorm.io/gorm/schema"
|
||||
|
||||
"gorm.io/gen"
|
||||
"gorm.io/gen/field"
|
||||
|
||||
"gorm.io/plugin/dbresolver"
|
||||
|
||||
"github.com/go-sonic/sonic/model/entity"
|
||||
)
|
||||
|
||||
func newScrapPage(db *gorm.DB, opts ...gen.DOOption) scrapPage {
|
||||
_scrapPage := scrapPage{}
|
||||
|
||||
_scrapPage.scrapPageDo.UseDB(db, opts...)
|
||||
_scrapPage.scrapPageDo.UseModel(&entity.ScrapPage{})
|
||||
|
||||
tableName := _scrapPage.scrapPageDo.TableName()
|
||||
_scrapPage.ALL = field.NewAsterisk(tableName)
|
||||
_scrapPage.ID = field.NewInt32(tableName, "id")
|
||||
_scrapPage.Title = field.NewString(tableName, "title")
|
||||
_scrapPage.Md5 = field.NewString(tableName, "md5")
|
||||
_scrapPage.URL = field.NewString(tableName, "url")
|
||||
_scrapPage.Content = field.NewString(tableName, "content")
|
||||
_scrapPage.Summary = field.NewString(tableName, "summary")
|
||||
_scrapPage.CreateAt = field.NewInt64(tableName, "create_at")
|
||||
_scrapPage.Domain = field.NewString(tableName, "domain")
|
||||
_scrapPage.Resource = field.NewString(tableName, "resource")
|
||||
|
||||
_scrapPage.fillFieldMap()
|
||||
|
||||
return _scrapPage
|
||||
}
|
||||
|
||||
type scrapPage struct {
|
||||
scrapPageDo scrapPageDo
|
||||
|
||||
ALL field.Asterisk
|
||||
ID field.Int32
|
||||
Title field.String
|
||||
Md5 field.String
|
||||
URL field.String
|
||||
Content field.String
|
||||
Summary field.String
|
||||
CreateAt field.Int64
|
||||
Domain field.String
|
||||
Resource field.String
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
|
||||
func (s scrapPage) Table(newTableName string) *scrapPage {
|
||||
s.scrapPageDo.UseTable(newTableName)
|
||||
return s.updateTableName(newTableName)
|
||||
}
|
||||
|
||||
func (s scrapPage) As(alias string) *scrapPage {
|
||||
s.scrapPageDo.DO = *(s.scrapPageDo.As(alias).(*gen.DO))
|
||||
return s.updateTableName(alias)
|
||||
}
|
||||
|
||||
func (s *scrapPage) updateTableName(table string) *scrapPage {
|
||||
s.ALL = field.NewAsterisk(table)
|
||||
s.ID = field.NewInt32(table, "id")
|
||||
s.Title = field.NewString(table, "title")
|
||||
s.Md5 = field.NewString(table, "md5")
|
||||
s.URL = field.NewString(table, "url")
|
||||
s.Content = field.NewString(table, "content")
|
||||
s.Summary = field.NewString(table, "summary")
|
||||
s.CreateAt = field.NewInt64(table, "create_at")
|
||||
s.Domain = field.NewString(table, "domain")
|
||||
s.Resource = field.NewString(table, "resource")
|
||||
|
||||
s.fillFieldMap()
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *scrapPage) WithContext(ctx context.Context) *scrapPageDo {
|
||||
return s.scrapPageDo.WithContext(ctx)
|
||||
}
|
||||
|
||||
func (s scrapPage) TableName() string { return s.scrapPageDo.TableName() }
|
||||
|
||||
func (s scrapPage) Alias() string { return s.scrapPageDo.Alias() }
|
||||
|
||||
func (s scrapPage) Columns(cols ...field.Expr) gen.Columns { return s.scrapPageDo.Columns(cols...) }
|
||||
|
||||
func (s *scrapPage) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
|
||||
_f, ok := s.fieldMap[fieldName]
|
||||
if !ok || _f == nil {
|
||||
return nil, false
|
||||
}
|
||||
_oe, ok := _f.(field.OrderExpr)
|
||||
return _oe, ok
|
||||
}
|
||||
|
||||
func (s *scrapPage) fillFieldMap() {
|
||||
s.fieldMap = make(map[string]field.Expr, 9)
|
||||
s.fieldMap["id"] = s.ID
|
||||
s.fieldMap["title"] = s.Title
|
||||
s.fieldMap["md5"] = s.Md5
|
||||
s.fieldMap["url"] = s.URL
|
||||
s.fieldMap["content"] = s.Content
|
||||
s.fieldMap["summary"] = s.Summary
|
||||
s.fieldMap["create_at"] = s.CreateAt
|
||||
s.fieldMap["domain"] = s.Domain
|
||||
s.fieldMap["resource"] = s.Resource
|
||||
}
|
||||
|
||||
func (s scrapPage) clone(db *gorm.DB) scrapPage {
|
||||
s.scrapPageDo.ReplaceConnPool(db.Statement.ConnPool)
|
||||
return s
|
||||
}
|
||||
|
||||
func (s scrapPage) replaceDB(db *gorm.DB) scrapPage {
|
||||
s.scrapPageDo.ReplaceDB(db)
|
||||
return s
|
||||
}
|
||||
|
||||
type scrapPageDo struct{ gen.DO }
|
||||
|
||||
func (s scrapPageDo) Debug() *scrapPageDo {
|
||||
return s.withDO(s.DO.Debug())
|
||||
}
|
||||
|
||||
func (s scrapPageDo) WithContext(ctx context.Context) *scrapPageDo {
|
||||
return s.withDO(s.DO.WithContext(ctx))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) ReadDB() *scrapPageDo {
|
||||
return s.Clauses(dbresolver.Read)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) WriteDB() *scrapPageDo {
|
||||
return s.Clauses(dbresolver.Write)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Session(config *gorm.Session) *scrapPageDo {
|
||||
return s.withDO(s.DO.Session(config))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Clauses(conds ...clause.Expression) *scrapPageDo {
|
||||
return s.withDO(s.DO.Clauses(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Returning(value interface{}, columns ...string) *scrapPageDo {
|
||||
return s.withDO(s.DO.Returning(value, columns...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Not(conds ...gen.Condition) *scrapPageDo {
|
||||
return s.withDO(s.DO.Not(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Or(conds ...gen.Condition) *scrapPageDo {
|
||||
return s.withDO(s.DO.Or(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Select(conds ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Select(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Where(conds ...gen.Condition) *scrapPageDo {
|
||||
return s.withDO(s.DO.Where(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Order(conds ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Order(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Distinct(cols ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Distinct(cols...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Omit(cols ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Omit(cols...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Join(table schema.Tabler, on ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Join(table, on...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) LeftJoin(table schema.Tabler, on ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.LeftJoin(table, on...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) RightJoin(table schema.Tabler, on ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.RightJoin(table, on...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Group(cols ...field.Expr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Group(cols...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Having(conds ...gen.Condition) *scrapPageDo {
|
||||
return s.withDO(s.DO.Having(conds...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Limit(limit int) *scrapPageDo {
|
||||
return s.withDO(s.DO.Limit(limit))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Offset(offset int) *scrapPageDo {
|
||||
return s.withDO(s.DO.Offset(offset))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *scrapPageDo {
|
||||
return s.withDO(s.DO.Scopes(funcs...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Unscoped() *scrapPageDo {
|
||||
return s.withDO(s.DO.Unscoped())
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Create(values ...*entity.ScrapPage) error {
|
||||
if len(values) == 0 {
|
||||
return nil
|
||||
}
|
||||
return s.DO.Create(values)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) CreateInBatches(values []*entity.ScrapPage, batchSize int) error {
|
||||
return s.DO.CreateInBatches(values, batchSize)
|
||||
}
|
||||
|
||||
// Save : !!! underlying implementation is different with GORM
|
||||
// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values)
|
||||
func (s scrapPageDo) Save(values ...*entity.ScrapPage) error {
|
||||
if len(values) == 0 {
|
||||
return nil
|
||||
}
|
||||
return s.DO.Save(values)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) First() (*entity.ScrapPage, error) {
|
||||
if result, err := s.DO.First(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return result.(*entity.ScrapPage), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Take() (*entity.ScrapPage, error) {
|
||||
if result, err := s.DO.Take(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return result.(*entity.ScrapPage), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Last() (*entity.ScrapPage, error) {
|
||||
if result, err := s.DO.Last(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return result.(*entity.ScrapPage), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Find() ([]*entity.ScrapPage, error) {
|
||||
result, err := s.DO.Find()
|
||||
return result.([]*entity.ScrapPage), err
|
||||
}
|
||||
|
||||
func (s scrapPageDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*entity.ScrapPage, err error) {
|
||||
buf := make([]*entity.ScrapPage, 0, batchSize)
|
||||
err = s.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error {
|
||||
defer func() { results = append(results, buf...) }()
|
||||
return fc(tx, batch)
|
||||
})
|
||||
return results, err
|
||||
}
|
||||
|
||||
func (s scrapPageDo) FindInBatches(result *[]*entity.ScrapPage, batchSize int, fc func(tx gen.Dao, batch int) error) error {
|
||||
return s.DO.FindInBatches(result, batchSize, fc)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Attrs(attrs ...field.AssignExpr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Attrs(attrs...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Assign(attrs ...field.AssignExpr) *scrapPageDo {
|
||||
return s.withDO(s.DO.Assign(attrs...))
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Joins(fields ...field.RelationField) *scrapPageDo {
|
||||
for _, _f := range fields {
|
||||
s = *s.withDO(s.DO.Joins(_f))
|
||||
}
|
||||
return &s
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Preload(fields ...field.RelationField) *scrapPageDo {
|
||||
for _, _f := range fields {
|
||||
s = *s.withDO(s.DO.Preload(_f))
|
||||
}
|
||||
return &s
|
||||
}
|
||||
|
||||
func (s scrapPageDo) FirstOrInit() (*entity.ScrapPage, error) {
|
||||
if result, err := s.DO.FirstOrInit(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return result.(*entity.ScrapPage), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s scrapPageDo) FirstOrCreate() (*entity.ScrapPage, error) {
|
||||
if result, err := s.DO.FirstOrCreate(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return result.(*entity.ScrapPage), nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s scrapPageDo) FindByPage(offset int, limit int) (result []*entity.ScrapPage, count int64, err error) {
|
||||
result, err = s.Offset(offset).Limit(limit).Find()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if size := len(result); 0 < limit && 0 < size && size < limit {
|
||||
count = int64(size + offset)
|
||||
return
|
||||
}
|
||||
|
||||
count, err = s.Offset(-1).Limit(-1).Count()
|
||||
return
|
||||
}
|
||||
|
||||
func (s scrapPageDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) {
|
||||
count, err = s.Count()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = s.Offset(offset).Limit(limit).Scan(result)
|
||||
return
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Scan(result interface{}) (err error) {
|
||||
return s.DO.Scan(result)
|
||||
}
|
||||
|
||||
func (s scrapPageDo) Delete(models ...*entity.ScrapPage) (result gen.ResultInfo, err error) {
|
||||
return s.DO.Delete(models)
|
||||
}
|
||||
|
||||
func (s *scrapPageDo) withDO(do gen.Dao) *scrapPageDo {
|
||||
s.DO = *do.(*gen.DO)
|
||||
return s
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/go-sonic/sonic/service"
|
||||
)
|
||||
|
||||
type ScrapPageHandler struct {
|
||||
ScrapService service.ScrapService
|
||||
}
|
||||
|
||||
func NewScrapPageHandler(scrapService service.ScrapService) *ScrapPageHandler {
|
||||
return &ScrapPageHandler{
|
||||
ScrapService: scrapService,
|
||||
}
|
||||
}
|
||||
|
||||
func (handler *ScrapPageHandler) QueryMd5List(ctx *gin.Context) (interface{}, error) {
|
||||
return handler.ScrapService.QueryMd5List(ctx)
|
||||
}
|
||||
|
||||
func (handler *ScrapPageHandler) Create(ctx *gin.Context) (interface{}, error) {
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
// Code generated by gorm.io/gen. DO NOT EDIT.
|
||||
|
||||
package entity
|
||||
|
||||
const TableNameScrapPage = "scrap_page"
|
||||
|
||||
// ScrapPage mapped from table <scrap_page>
|
||||
type ScrapPage struct {
|
||||
ID *int32 `gorm:"column:id;type:INTEGER" json:"id"`
|
||||
Title *string `gorm:"column:title;type:varchar(128)" json:"title"`
|
||||
Md5 *string `gorm:"column:md5;type:varchar(128)" json:"md5"`
|
||||
URL *string `gorm:"column:url;type:text" json:"url"`
|
||||
Content *string `gorm:"column:content;type:text" json:"content"`
|
||||
Summary *string `gorm:"column:summary;type:text" json:"summary"`
|
||||
CreateAt *int64 `gorm:"column:create_at;type:bigint" json:"create_at"`
|
||||
Domain *string `gorm:"column:domain;type:varchar(128)" json:"domain"`
|
||||
Resource *string `gorm:"column:resource;type:text" json:"resource"`
|
||||
}
|
||||
|
||||
// TableName ScrapPage's table name
|
||||
func (*ScrapPage) TableName() string {
|
||||
return TableNameScrapPage
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package param
|
||||
|
||||
type ScrapPage struct {
|
||||
Title string `json:"title"`
|
||||
Summary string `json:"summary"`
|
||||
URL string `json:"url"`
|
||||
OriginURL string `json:"origin_url"`
|
||||
AddAt int64 `json:"add_at"`
|
||||
Md5 string `json:"md_5"`
|
||||
Content string `json:"content"`
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package impl
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-sonic/sonic/dal"
|
||||
"github.com/go-sonic/sonic/model/entity"
|
||||
"github.com/go-sonic/sonic/model/param"
|
||||
"github.com/go-sonic/sonic/service"
|
||||
)
|
||||
|
||||
type scrapServiceImpl struct{}
|
||||
|
||||
func NewScrapService() service.ScrapService {
|
||||
return &scrapServiceImpl{}
|
||||
}
|
||||
|
||||
func (impl *scrapServiceImpl) QueryMd5List(ctx context.Context) ([]string, error) {
|
||||
scrapPageDAL := dal.GetQueryByCtx(ctx).ScrapPage
|
||||
entities, err := scrapPageDAL.WithContext(ctx).Select(dal.ScrapPage.Md5).Find()
|
||||
if err != nil {
|
||||
return nil, WrapDBErr(err)
|
||||
}
|
||||
|
||||
md5List := make([]string, len(entities))
|
||||
for _, v := range entities {
|
||||
md5List = append(md5List, *v.Md5)
|
||||
}
|
||||
|
||||
return md5List, nil
|
||||
}
|
||||
|
||||
func (impl *scrapServiceImpl) Create(ctx context.Context, pageParam *param.ScrapPage) error {
|
||||
|
||||
}
|
||||
|
||||
func convertToModel(pageParam *param.ScrapPage) *entity.ScrapPage {
|
||||
pageModel := &entity.ScrapPage{
|
||||
ID: nil,
|
||||
Title: pageParam.Title,
|
||||
Md5: pageParam.Md5,
|
||||
URL: pageParam.URL,
|
||||
Content: pageParam.Content,
|
||||
Summary: pageParam.Summary,
|
||||
CreateAt: ,
|
||||
Domain: nil,
|
||||
Resource: nil,
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package service
|
||||
|
||||
import "context"
|
||||
|
||||
type ScrapService interface {
|
||||
QueryMd5List(ctx context.Context) ([]string, error)
|
||||
}
|
Loading…
Reference in New Issue