Go实战全家桶之72:goDb/ES/Service分层操作--源于实战项目

dbentity/esentiy一键生成的代码

service/apidao是db,es操作的简单封装,无业务逻辑

service/apiservice是业务层db+es操作

db操作

package apidaodb

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "git.ichub.com/general/webcli120/goweb/pagemodel"
    "icd/cms-rpc/domain/db/dbentity"
)

type CmsDao struct {
    basedto.BaseEntitySingle
}

func NewCmsDao() *CmsDao {
    return &CmsDao{}
}

func (self *CmsDao) QueryColumnsEmptyName() *pagemodel.PageResult[*dbentity.CmsColumns] {

    var dao = dbentity.NewDaoCmsColumns()
    dao.SetQueryEmpty(true)
    dao.DbEq("name", "")
    ret := dao.QueryModel()
    if ret.IsFailed() {
       golog.Error("apidaodb.CmsDao 【QueryColumnEmptyName】 ret:", ret)
    }
    return ret
}

func (self *CmsDao) DeleteColumn(id int64) *basedto.IchubResult {

    var dao = dbentity.NewDaoCmsColumns()
    err := dao.DeleteById(id)
    if err != nil {
       return basedto.ResultError(err)
    }
    return basedto.ResultSuccessData(id)
}
func (self *CmsDao) DeleteColumnsEmptyName() *basedto.IchubResult {

    ret := self.QueryColumnsEmptyName()
    if ret.ExistRecord() {
       for i := range ret.Data {
          var ret = self.DeleteColumn(ret.Data[i].Id)
          if ret.IsFailed() {
             golog.Error(ret)
             return ret
          }
       }
    }
    return basedto.ResultSuccessData("")
}
es操作
package apidaoes

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "git.ichub.com/general/webcli120/goconfig/base/fileutils"
    "git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "git.ichub.com/general/webcli120/goweb/pagemodel"
    "github.com/olivere/elastic/v7"
    "icd/cms-rpc/domain/es/esentity"
)

type CmsDao struct {
    basedto.BaseEntitySingle
}

func NewCmsDao() *CmsDao {
    return &CmsDao{}
}
func (self *CmsDao) QueryColumnsEmptyName() *pagemodel.PageResult[*esentity.CmsColumnEs] {
    var q = elastic.NewBoolQuery()
    q.Should(elastic.NewTermQuery("name", ""))
    q.Should(elastic.NewTermQuery("name.keyword", ""))
    q.MinimumNumberShouldMatch(1)
    var qq = esentity.NewWebFacadeCmsColumnEsOf(q)
    qq.SetPageSize(10)
    var ret = qq.GeneralQueryMax()
    if ret.IsFailed() {
       qq.LogQuery(q, "CmsDao::QueryColumnsEmptyName")
       golog.Error("CmsDao::QueryColumnsEmptyName ret:", ret)
    }
    if fileutils.IfWindows() {
       qq.LogQuery(q, "CmsDao::QueryColumnsEmptyName")
    }
    return ret
}
func (self *CmsDao) DeleteColumnsEmptyName() *basedto.IchubResult {
    var ret = self.QueryColumnsEmptyName()
    if ret.ExistRecord() {
       for i := range ret.Data {
          var delRet = self.DeleteColumn(ret.Data[i].ColumnId)
          golog.Info(delRet)
       }
    }
    return basedto.ResultSuccessData("")
}

func (self *CmsDao) DeleteColumn(id any) *basedto.IchubResult {

    var qq = esentity.NewWebFacadeCmsColumnEs()
    return qq.Cmd.DeleteKey("column_id", id)

}
service/apiservice业务
package apiservice

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "git.ichub.com/general/webcli120/goweb/pagemodel"
    "icd/cms-rpc/domain/es/refesentity"
    "icd/cms-rpc/domain/service/apidao/apidaodb"
    "icd/cms-rpc/domain/service/apidao/apidaoes"
    cmsbasedto "icd/cms/base/dto"
    "icd/cms/shop/service"
    connectionProto "icd/proto/connection"
    "time"
)

type CmsColumnService struct {
    basedto.BaseEntitySingle
    apidaoes.ContactDao
}

func NewCmsColumnService() *CmsColumnService {
    return &CmsColumnService{}
}

func (self *CmsColumnService) MakeShopAll() *pagemodel.PageResult[*refesentity.ContactShopEs] {

    var ret = self.ListShopAll()
    if !ret.ExistRecord() {
       return ret
    }
    for i := range ret.Data {
       var rets = self.MakeShopMemberColumn(ret.Data[i].Id)
       if rets.IsFailed() {
          golog.Error(rets)
          return ret
       }
    }

    return ret
}
func (self *CmsColumnService) MakeShopMemberColumn(shopId any) *pagemodel.PageResult[*refesentity.ContactShopMemberEs] {
    var ret = self.ListShopMember(shopId)
    if ret.ExistRecord() {
       for i := range ret.Data {
          var makeRet = self.MakeMemberColumn(ret.Data[i].Id)
          golog.Info(makeRet)
          time.Sleep(10 * time.Millisecond)
       }
    }
    return nil
}

func (self *CmsColumnService) MakeMemberColumn(memberId any) *cmsbasedto.JsonResult {
    var ret = service.FindBeanCmsColumnService().SaveCmsColumnMemberIfNotExist(
       &connectionProto.UserID{},
    )

    return ret
}

func (self *CmsColumnService) DeleteColumn(id int64) *basedto.IchubResult {
    var ret = apidaodb.FindBeanCmsDao().DeleteColumn(id)
    if ret.IsFailed() {
       return ret
    }
    return apidaoes.FindBeanCmsDao().DeleteColumn(id)
}

apiservice测试

package apiservice

import (
    "git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "git.ichub.com/general/webcli120/goweb/pagedb"
    "github.com/stretchr/testify/suite"
    "testing"
)

type TestDbSuite struct {
    suite.Suite
}

func (self *TestDbSuite) SetupSuite() {
    //testenv120.FindBeanReleaseEnv().Init()
}

func (self *TestDbSuite) SetupTest() {

}

func TestDbSuites(t *testing.T) {
    suite.Run(t, new(TestDbSuite))
}
func (self *TestDbSuite) Test001_dbMeta2Code() {

    var dbreq = pagedb.Default()
    var err = dbreq.Meta2CodeFile("cms_columns")
    golog.Info(err)

} 
func (self *TestDbSuite) Test002_QueryColumnNoExist() {
    var ret = apidaodb.FindBeanCmsDao().QueryColumn(1070585549487308803)
    golog.Info("Test002_QueryColumnNoExist ret:", ret, ret.ExistRecord())
    self.Equal(200, ret.Code)
    self.Equal(false, ret.ExistRecord())
}
func (self *TestDbSuite) Test003_QueryColumnExist() {
    var ret = apidaodb.FindBeanCmsDao().QueryColumn(1070259192551309315)
    golog.Info("Test003_QueryColumnExist ret:", ret, ret.ExistRecord())
    ret.CheckCode(self.Suite, 200)
    self.Equal(true, ret.ExistRecord())
    ret.CheckRecord(1070259192551309315, "name=栏目测试001|shop_id=1069977893411815427")
}
func (self *TestDbSuite) Test004_DeleteColumn() {
    var ret = apiservice.FindBeanCmsColumnService().DeleteColumn(1070585549487308803)
    golog.Info("Test004_DeleteColumn ret:", ret)
    ret.CheckCode(self.Suite, 200)
}

一键生成代码

package dbentity

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "git.ichub.com/general/webcli120/goconfig/ichubconfig"
    "git.ichub.com/general/webcli120/goweb/generaldb/generaldao"
    "github.com/gogf/gf/v2/util/gconv"
    "github.com/jinzhu/gorm"
    "time"
)

/*
@Title    文件名称: cms_columns.go
@Description  描述: 统一返回结构

@Author  作者: raymond@163.com  时间(2025-05-09 18:18:05)
@Update  作者: raymond@163.com  时间(2025-05-09 18:18:05)
*/

type CmsColumns struct {
    basedto.BaseEntity
    DeletedAt           *time.Time `json:"deleted_at" gorm:"column:deleted_at;type:TIMESTAMP(6)"`
    IsVirtual           bool       `json:"is_virtual" gorm:"column:is_virtual;type:BOOL"`
    IsUnified           bool       `json:"is_unified" gorm:"column:is_unified;type:BOOL"`
    IsFixed             bool       `json:"is_fixed" gorm:"column:is_fixed;type:BOOL"`
    IsFirst             bool       `json:"is_first" gorm:"column:is_first;type:BOOL"`
    IsDefault           bool       `json:"is_default" gorm:"column:is_default;type:BOOL"`
    Active              bool       `json:"active" gorm:"column:active;type:BOOL"`
    UpdatedUserId       int64      `json:"updated_user_id,string" gorm:"column:updated_user_id;type:INT8"`
    UpdatedById         int64      `json:"updated_by_id,string" gorm:"column:updated_by_id;type:INT8"`
    SpuCategShopCategId int64      `json:"spu_categ_shop_categ_id,string" gorm:"column:spu_categ_shop_categ_id;type:INT8"`
    ShopId              int64      `json:"shop_id,string" gorm:"column:shop_id;type:INT8"`
    ReprintCount        int64      `json:"reprint_count,string" gorm:"column:reprint_count;type:INT8"`
    PublisherSpuId      int64      `json:"publisher_spu_id,string" gorm:"column:publisher_spu_id;type:INT8"`
    PublishCount        int64      `json:"publish_count,string" gorm:"column:publish_count;type:INT8"`
    ParentId            int64      `json:"parent_id,string" gorm:"column:parent_id;type:INT8"`
    MsgCount            int64      `json:"msg_count,string" gorm:"column:msg_count;type:INT8"`
    ListOrder           int64      `json:"list_order,string" gorm:"column:list_order;type:INT8"`
    LayoutId            int64      `json:"layout_id,string" gorm:"column:layout_id;type:INT8"`
    Id                  int64      `json:"id,string" gorm:"column:id;type:INT8;PRIMARY_KEY;default:unique_rowid()"`
    EditorId            int64      `json:"editor_id,string" gorm:"column:editor_id;type:INT8"`
    DeletedBy           int64      `json:"deleted_by,string" gorm:"column:deleted_by;type:INT8"`
    CreatedUserId       int64      `json:"created_user_id,string" gorm:"column:created_user_id;type:INT8"`
    CreatedById         int64      `json:"created_by_id,string" gorm:"column:created_by_id;type:INT8"`
    ContributionCount   int64      `json:"contribution_count,string" gorm:"column:contribution_count;type:INT8"`
    CirculateCount      int64      `json:"circulate_count,string" gorm:"column:circulate_count;type:INT8"`
    AdvertCount         int64      `json:"advert_count,string" gorm:"column:advert_count;type:INT8"`
    AdEditorId          int64      `json:"ad_editor_id,string" gorm:"column:ad_editor_id;type:INT8"`
    Topic               string     `json:"topic" gorm:"column:topic;type:VARCHAR(255)"`
    Slug                string     `json:"slug" gorm:"column:slug;type:STRING"`
    SeoTitle            string     `json:"seo_title" gorm:"column:seo_title;type:STRING"`
    SeoTag              string     `json:"seo_tag" gorm:"column:seo_tag;type:STRING"`
    SeoDescription      string     `json:"seo_description" gorm:"column:seo_description;type:STRING"`
    ResourceName        string     `json:"resource_name" gorm:"column:resource_name;type:VARCHAR(255)"`
    Path                string     `json:"path" gorm:"column:path;type:STRING"`
    Option              string     `json:"option" gorm:"column:option;type:STRING"`
    Name                string     `json:"name" gorm:"column:name;type:STRING"`
    Domain              string     `json:"domain" gorm:"column:domain;type:VARCHAR(255)"`
    Description         string     `json:"description" gorm:"column:description;type:STRING"`
    ContentLayout1      string     `json:"content_layout_1" gorm:"column:content_layout_1;type:STRING"`
    ContentLayout       string     `json:"content_layout" gorm:"column:content_layout;type:STRING"`
    ColumnLayout        string     `json:"column_layout" gorm:"column:column_layout;type:STRING"`
    Code                string     `json:"code" gorm:"column:code;type:STRING"`
    UpdatedAt           time.Time  `json:"updated_at" gorm:"column:updated_at;type:TIMESTAMP(6)"`
    CreatedAt           time.Time  `json:"created_at" gorm:"column:created_at;type:TIMESTAMP(6)"`
}

type CmsColumnsDto struct {
    basedto.BaseEntity
    DeletedAt           *time.Time `json:"deleted_at"`
    IsVirtual           bool       `json:"is_virtual"`
    IsUnified           bool       `json:"is_unified"`
    IsFixed             bool       `json:"is_fixed"`
    IsFirst             bool       `json:"is_first"`
    IsDefault           bool       `json:"is_default"`
    Active              bool       `json:"active"`
    UpdatedUserId       int64      `json:"updated_user_id,string"`
    UpdatedById         int64      `json:"updated_by_id,string"`
    SpuCategShopCategId int64      `json:"spu_categ_shop_categ_id,string"`
    ShopId              int64      `json:"shop_id,string"`
    ReprintCount        int64      `json:"reprint_count,string"`
    PublisherSpuId      int64      `json:"publisher_spu_id,string"`
    PublishCount        int64      `json:"publish_count,string"`
    ParentId            int64      `json:"parent_id,string"`
    MsgCount            int64      `json:"msg_count,string"`
    ListOrder           int64      `json:"list_order,string"`
    LayoutId            int64      `json:"layout_id,string"`
    Id                  int64      `json:"id,string"`
    EditorId            int64      `json:"editor_id,string"`
    DeletedBy           int64      `json:"deleted_by,string"`
    CreatedUserId       int64      `json:"created_user_id,string"`
    CreatedById         int64      `json:"created_by_id,string"`
    ContributionCount   int64      `json:"contribution_count,string"`
    CirculateCount      int64      `json:"circulate_count,string"`
    AdvertCount         int64      `json:"advert_count,string"`
    AdEditorId          int64      `json:"ad_editor_id,string"`
    Topic               string     `json:"topic"`
    Slug                string     `json:"slug"`
    SeoTitle            string     `json:"seo_title"`
    SeoTag              string     `json:"seo_tag"`
    SeoDescription      string     `json:"seo_description"`
    ResourceName        string     `json:"resource_name"`
    Path                string     `json:"path"`
    Option              string     `json:"option"`
    Name                string     `json:"name"`
    Domain              string     `json:"domain"`
    Description         string     `json:"description"`
    ContentLayout1      string     `json:"content_layout_1"`
    ContentLayout       string     `json:"content_layout"`
    ColumnLayout        string     `json:"column_layout"`
    Code                string     `json:"code"`
    UpdatedAt           time.Time  `json:"updated_at"`
    CreatedAt           time.Time  `json:"created_at"`
}

func NewCmsColumns() *CmsColumns {
    return &CmsColumns{}
}
func NewCmsColumnsDto() *CmsColumnsDto {
    return &CmsColumnsDto{}
}

func (self *CmsColumns) PkeyName() string {
    return "id"
}
func (self *CmsColumns) PkeyValue() int64 {
    return self.Id
}
func (self *CmsColumns) TableName() string {
    return "cms_columns"
}

func (self *CmsColumns) NewDao() *generaldao.BaseDao[int64, *CmsColumns] {
    return generaldao.NewBaseDao[int64, *CmsColumns]()
}

func (self *CmsColumns) AutoMigrate(db *gorm.DB) error {
    return db.AutoMigrate(self).Error
}

func NewDaoCmsColumns() *generaldao.BaseDao[int64, *CmsColumns] {
    return generaldao.NewBaseDao[int64, *CmsColumns]()
}
func (self *CmsColumns) ObjectKey() string {
    return "db:" + ichubconfig.FindEnv() + self.TableName() + ":" + gconv.String(self.PkeyValue())
}
package esentity

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "git.ichub.com/general/webcli120/goconfig/base/baseindex"
    "git.ichub.com/general/webcli120/goconfig/ichubconfig"
    "git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "git.ichub.com/general/webcli120/goweb/pagemodel"
    "git.ichub.com/general/webcli120/goweb/webclient/eswebclient/webfacade"
    "git.ichub.com/general/webcli120/goweb/webclient/eswebclient/webfacade/webui"
    "github.com/gogf/gf/v2/util/gconv"
    jsoniter "github.com/json-iterator/go"
    "github.com/olivere/elastic/v7"
    "time"
)

/*
@Title    文件名称: cms_column_es.go
@Description  描述: 统一返回结构

@Author  作者: raymond@163.com  时间(2025-05-07 11:45:57)
@Update  作者: raymond@163.com  时间(2025-05-07 11:45:57)
*/

type CmsColumnEs struct {
    basedto.BaseEntity
    //basedto.BaseEntityIndex

    IsVirtual                         bool      `json:"is_virtual"`
    IsUnified                         bool      `json:"is_unified"`
    IsPlatform                        bool      `json:"is_platform"`
    IsFixed                           bool      `json:"is_fixed"`
    IsFirst                           bool      `json:"is_first"`
    IsDefault                         bool      `json:"is_default"`
    Active                            bool      `json:"active"`
    VisitCount                        int64     `json:"visit_count,string"`
    UserId                            int64     `json:"user_id,string"`
    UpdatedBy                         int64     `json:"updated_by,string"`
    UpdatedAtInt                      int64     `json:"updated_at_int,string"`
    Type                              int64     `json:"type,string"`
    SubAction                         int64     `json:"sub_action,string"`
    SpuCategShopCategId               int64     `json:"spu_categ_shop_categ_id,string"`
    ShopId                            int64     `json:"shop_id,string"`
    ShareCount                        int64     `json:"share_count,string"`
    ReprintCount                      int64     `json:"reprint_count,string"`
    ReplyCount                        int64     `json:"reply_count,string"`
    ReadCount                         int64     `json:"read_count,string"`
    PublishingId                      int64     `json:"publishing_id,string"`
    PublisherSpuId                    int64     `json:"publisher_spu_id,string"`
    PublishCount                      int64     `json:"publish_count,string"`
    ParentId                          int64     `json:"parent_id,string"`
    MsgCount                          int64     `json:"msg_count,string"`
    ListOrder                         int64     `json:"list_order,string"`
    LikeCount                         int64     `json:"like_count,string"`
    LayoutTypeId                      int64     `json:"layout_type_id,string"`
    LayoutId                          int64     `json:"layout_id,string"`
    KeywordId                         int64     `json:"keyword_id,string"`
    EditorId                          int64     `json:"editor_id,string"`
    DeletedBy                         int64     `json:"deleted_by,string"`
    CreatedBy                         int64     `json:"created_by,string"`
    ContributionCount                 int64     `json:"contribution_count,string"`
    ContentType                       int64     `json:"content_type,string"`
    ContentCount                      int64     `json:"content_count,string"`
    CommentCount                      int64     `json:"comment_count,string"`
    ColumnId                          int64     `json:"column_id,string"`
    ColumnEditorId                    int64     `json:"column_editor_id,string"`
    CollectCount                      int64     `json:"collect_count,string"`
    CirculateCount                    int64     `json:"circulate_count,string"`
    AuthorMemberId                    int64     `json:"author_member_id,string"`
    AdvertisingRecommend              int64     `json:"advertising_recommend,string"`
    AdvertisingNotice                 int64     `json:"advertising_notice,string"`
    AdvertisingNewest                 int64     `json:"advertising_newest,string"`
    AdvertisingHot                    int64     `json:"advertising_hot,string"`
    AdvertisingContentDisplayPage     int64     `json:"advertising_content_display_page,string"`
    AdvertisingContentDetails         int64     `json:"advertising_content_details,string"`
    AdvertisingContent                int64     `json:"advertising_content,string"`
    AdvertisingBanner                 int64     `json:"advertising_banner,string"`
    AdvertCount                       int64     `json:"advert_count,string"`
    AdEditorId                        int64     `json:"ad_editor_id,string"`
    ActiveFlag                        int64     `json:"active_flag,string"`
    Topic                             string    `json:"topic"`
    Slug                              string    `json:"slug"`
    Sidebar6                          string    `json:"sidebar6"`
    Sidebar5                          string    `json:"sidebar5"`
    Sidebar4                          string    `json:"sidebar4"`
    Sidebar3                          string    `json:"sidebar3"`
    Sidebar2                          string    `json:"sidebar2"`
    Sidebar1                          string    `json:"sidebar1"`
    SeoTitle                          string    `json:"seo_title"`
    SeoTag                            string    `json:"seo_tag"`
    SeoDescription                    string    `json:"seo_description"`
    ResourceName                      string    `json:"resource_name"`
    Path                              string    `json:"path"`
    ParentName                        string    `json:"parent_name"`
    Option                            string    `json:"option"`
    Name                              string    `json:"name"`
    LayoutName                        string    `json:"layout_name"`
    EditorIdName                      string    `json:"editor_id_name"`
    Domain                            string    `json:"domain"`
    Description                       string    `json:"description"`
    ContentName                       string    `json:"content_name"`
    ContentList                       string    `json:"content_list"`
    ContentLayout                     string    `json:"content_layout"`
    ContentId                         string    `json:"content_id"`
    ColumnName                        string    `json:"column_name"`
    ColumnLayout                      string    `json:"column_layout"`
    Code                              string    `json:"code"`
    Banner                            string    `json:"banner"`
    AuthorMemberName                  string    `json:"author_member_name"`
    AdvertisingRecommendName          string    `json:"advertising_recommend_name"`
    AdvertisingNoticeName             string    `json:"advertising_notice_name"`
    AdvertisingNewestName             string    `json:"advertising_newest_name"`
    AdvertisingHotName                string    `json:"advertising_hot_name"`
    AdvertisingContentName            string    `json:"advertising_content_name"`
    AdvertisingContentDisplayPageName string    `json:"advertising_content_display_page_name"`
    AdvertisingContentDetailsName     string    `json:"advertising_content_details_name"`
    AdvertisingBannerName             string    `json:"advertising_banner_name"`
    AdEditorName                      string    `json:"ad_editor_name"`
    UpdatedAt                         time.Time `json:"updated_at"`
    DeletedAt                         time.Time `json:"deleted_at"`
    CreatedAt                         time.Time `json:"created_at"`
}

func NewCmsColumnEs() *CmsColumnEs {
    return &CmsColumnEs{}
}

type CmsColumnEsRequest struct {
    basedto.BaseEntity
    webui.WebuiRequest

    CmsColumnEs `json:"param"`
}

func NewCmsColumnEsRequest() *CmsColumnEsRequest {
    return &CmsColumnEsRequest{}
}

func (self *CmsColumnEs) PkeyName() string {
    return "id"
}
func (self *CmsColumnEs) PkeyValue() string {
    return gconv.String(self.ColumnId)
}
func (self *CmsColumnEs) TableName() string {
    return ichubconfig.FindEnv() + "_cms_column"
}

//  func (self *CmsColumnEs) TableName() string {
//     return common.Env+"_cms_column"
//  }
func (self *CmsColumnEs) IndexName() string {
    return self.TableName()
}

func (self *CmsColumnEs) GetMapping() string {
    return `{
     "mappings": {
          "properties": {
               "column_id": {
                    "type": "long"
               },
               "content_id": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "deleted_by": {
                    "type": "long"
               },
               "layout_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_content_display_page_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_newest_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_notice": {
                    "type": "long"
               },
               "parent_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "is_platform": {
                    "type": "boolean"
               },
               "layout_type_id": {
                    "type": "long"
               },
               "advertising_content": {
                    "type": "long"
               },
               "advertising_notice_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_recommend": {
                    "type": "long"
               },
               "path": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "updated_at_int": {
                    "type": "long"
               },
               "author_member_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "circulate_count": {
                    "type": "long"
               },
               "content_layout": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "description": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "slug": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "advertising_content_details": {
                    "type": "long"
               },
               "advertising_newest": {
                    "type": "long"
               },
               "column_name": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "is_default": {
                    "type": "boolean"
               },
               "option": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "resource_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "sidebar2": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "user_id": {
                    "type": "long"
               },
               "advertising_content_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "content_type": {
                    "type": "long"
               },
               "deleted_at": {
                    "type": "date"
               },
               "publishing_id": {
                    "type": "long"
               },
               "sidebar3": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "sub_action": {
                    "type": "long"
               },
               "advertising_content_details_name": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "is_first": {
                    "type": "boolean"
               },
               "is_unified": {
                    "type": "boolean"
               },
               "created_by": {
                    "type": "long"
               },
               "keyword_id": {
                    "type": "long"
               },
               "publish_count": {
                    "type": "long"
               },
               "visit_count": {
                    "type": "long"
               },
               "active_flag": {
                    "type": "long"
               },
               "advertising_content_display_page": {
                    "type": "long"
               },
               "content_count": {
                    "type": "long"
               },
               "domain": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "editor_id_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "sidebar1": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "sidebar6": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "type": {
                    "type": "long"
               },
               "advertising_banner": {
                    "type": "long"
               },
               "cms_slide_slot": {
                    "properties": {
                         "layout_item_sketch": {
                              "type": "text",
                              "fields": {
                                   "keyword": {
                                        "type": "keyword",
                                        "ignore_above": 256
                                   }
                              }
                         },
                         "slide_display_count": {
                              "type": "long"
                         },
                         "slide_slot_id": {
                              "fields": {
                                   "keyword": {
                                        "type": "keyword",
                                        "ignore_above": 256
                                   }
                              },
                              "type": "text"
                         },
                         "layout_item_id": {
                              "type": "text",
                              "fields": {
                                   "keyword": {
                                        "type": "keyword",
                                        "ignore_above": 256
                                   }
                              }
                         },
                         "layout_item_name": {
                              "type": "text",
                              "fields": {
                                   "keyword": {
                                        "type": "keyword",
                                        "ignore_above": 256
                                   }
                              }
                         }
                    }
               },
               "collect_count": {
                    "type": "long"
               },
               "reprint_count": {
                    "type": "long"
               },
               "advertising_recommend_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "code": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "parent_id": {
                    "type": "long"
               },
               "shop_id": {
                    "type": "long"
               },
               "comment_count": {
                    "type": "long"
               },
               "created_at": {
                    "type": "date"
               },
               "is_fixed": {
                    "type": "boolean"
               },
               "is_virtual": {
                    "type": "boolean"
               },
               "like_count": {
                    "type": "long"
               },
               "publisher_spu_id": {
                    "type": "long"
               },
               "read_count": {
                    "type": "long"
               },
               "IsVirtual": {
                    "type": "boolean"
               },
               "ad_editor_id": {
                    "type": "long"
               },
               "column_layout": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "contribution_count": {
                    "type": "long"
               },
               "msg_count": {
                    "type": "long"
               },
               "topic": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_banner_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "advertising_hot_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "content_list": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "editor_id": {
                    "type": "long"
               },
               "list_order": {
                    "type": "long"
               },
               "seo_tag": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "spu_categ_shop_categ_id": {
                    "type": "long"
               },
               "updated_at": {
                    "type": "date"
               },
               "author_member_id": {
                    "type": "long"
               },
               "banner": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "column_editor_id": {
                    "type": "long"
               },
               "name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "share_count": {
                    "type": "long"
               },
               "sidebar4": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "updated_by": {
                    "type": "long"
               },
               "active": {
                    "type": "boolean"
               },
               "advert_count": {
                    "type": "long"
               },
               "layout_id": {
                    "type": "long"
               },
               "reply_count": {
                    "type": "long"
               },
               "seo_description": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "seo_title": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "ignore_above": 256,
                              "type": "keyword"
                         }
                    }
               },
               "sidebar5": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               },
               "ad_editor_name": {
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    },
                    "type": "text"
               },
               "advertising_hot": {
                    "type": "long"
               },
               "content_name": {
                    "type": "text",
                    "fields": {
                         "keyword": {
                              "type": "keyword",
                              "ignore_above": 256
                         }
                    }
               }
          }
     },
     "settings": {
          "index": {
               "analysis": {
                    "normalizer": {
                         "lowercase": {
                              "filter": [
                                   "lowercase"
                              ],
                              "type": "custom"
                         }
                    },
                    "analyzer": {
                         "common_analyzer": {
                              "tokenizer": "common_tokenizer"
                         }
                    },
                    "tokenizer": {
                         "common_tokenizer": {
                              "type": "ngram",
                              "min_gram": "2",
                              "max_gram": "2"
                         }
                    }
               },
               "number_of_replicas": "1",
               "number_of_shards": "3",
               "max_result_window": "200000000"
          }
     }
}`
}
func (self *CmsColumnEs) Mapping() string {
    return self.GetMapping()
}
func (self *CmsColumnEs) Unmarshal(data []byte) error {
    return jsoniter.Unmarshal(data, self)
}

func (self CmsColumnEs) IndexID() string {
    return self.PkeyName()
}

func (self CmsColumnEs) AliasName() string {
    return self.IndexName() + "_alias"
}

func (self *CmsColumnEs) InitDoc() baseindex.IndexEsObject {
    ss := *self
    return &ss
}

func (self *CmsColumnEs) EsFill(p any) error {
    var err = gconv.Struct(p, self)
    if err != nil {
       golog.Error("CmsColumnEs err:", err)
    }
    return err
}

func (self *CmsColumnEs) Init() {
}
func (self *CmsColumnEs) Shutdown() {

}

func NewWebFacadeCmsColumnEsOf(q elastic.Query) *webfacade.WebFacade[*CmsColumnEs] {
    var facade = webfacade.DefaultOf[*CmsColumnEs](q)
    facade.Query(q)
    return facade
}

func NewWebFacadeCmsColumnEs() *webfacade.WebFacade[*CmsColumnEs] {
    return webfacade.Default[*CmsColumnEs]()

}

func (self *CmsColumnEs) DefaultOf(q elastic.Query) *webfacade.WebFacade[*CmsColumnEs] {
    return NewWebFacadeCmsColumnEsOf(q)

}
func (self *CmsColumnEs) Default() *webfacade.WebFacade[*CmsColumnEs] {
    return NewWebFacadeCmsColumnEs()
}

func (self *CmsColumnEs) ObjectKey() string {
    return "es:" + self.TableName() + ":" + gconv.String(self.PkeyValue())
}
func (self *CmsColumnEs) EsFindId() *pagemodel.IchubResult[*CmsColumnEs] {
    var ret = NewWebFacadeCmsColumnEs().EsFindKeyId(self.PkeyName(), self.PkeyValue())
    if ret.IsFailed() {
       golog.Error("CmsColumnEs [EsFindKey] ret:", ret)
    }
    return ret
}
package esentity

import (
    "git.ichub.com/general/webcli120/goconfig/base/baseiface"
    "git.ichub.com/general/webcli120/goconfig/basedi"

    "github.com/sirupsen/logrus"
)

/*
    @Title   文件名称: cms_column_es_init.go
    @Desp    描述:    依赖自动注入
    @Company 公司:    www.ichub.com

    @Author  作者:    leijmdas@163.com  时间: 2025-05-07 12:02:28
    @Update  作者:    leijmdas@163.com  时间: 2025-05-07 12:02:28
*/

var singleNameCmsColumnEs = "*esentity.CmsColumnEs-4f9d76a1-067b-42b0-9856-cb7f2715d6a5"

// init register load
func init() {
    registerBeanCmsColumnEs()
}

// register CmsColumnEs
func registerBeanCmsColumnEs() {
    err := basedi.RegisterLoadBean(singleNameCmsColumnEs, LoadCmsColumnEs)
    if err != nil {
       logrus.Error("register bean error!", err)
    }
}

// FindBeanCmsColumnEs
func FindBeanCmsColumnEs() *CmsColumnEs {

    if bean, ok := basedi.FindBeanOk(singleNameCmsColumnEs); ok {
       return bean.(*CmsColumnEs)
    }

    logrus.Error("not find bean!")
    return nil
}

func LoadCmsColumnEs() baseiface.ISingleton {
    var inst = NewCmsColumnEs()
    InjectCmsColumnEs(inst)
    return inst

}

func InjectCmsColumnEs(s *CmsColumnEs) {

}
package dbentity

import (
    "git.ichub.com/general/webcli120/goconfig/base/baseiface"
    "git.ichub.com/general/webcli120/goconfig/basedi"
    //"git.ichub.com/general/webcli120/goconfig/ichublog/golog"
    "github.com/sirupsen/logrus"
    
)

/*
    @Title   文件名称: cms_columns_init.go
    @Desp    描述:    自动注册注入
    @Company 公司:    www.ichub.com

    @Author  作者:    leijmdas@163.com  时间: 2025-05-09 18:22:58
    @Update  作者:    leijmdas@163.com  时间: 2025-05-09 18:22:58
*/

var singleNameCmsColumns = "*dbentity.CmsColumns-83230a08-c78a-4f2b-b57a-b4dfa0cd5490"

// init register load
func init() {
    registerBeanCmsColumns()
}

// register CmsColumns
func registerBeanCmsColumns() {
    err := basedi.RegisterLoadBean(singleNameCmsColumns, LoadCmsColumns)
    if err != nil{
       logrus.Error("register bean error!", err)
    }
}

// FindBeanCmsColumns
func FindBeanCmsColumns() *CmsColumns {

    if bean, ok :=  basedi.FindBeanOk(singleNameCmsColumns); ok {
        return bean.(*CmsColumns)
    }

    logrus.Error("not find bean!")
    return nil
}

func LoadCmsColumns() baseiface.ISingleton {
    var inst = NewCmsColumns()
    InjectCmsColumns(inst)
    return inst

}

func InjectCmsColumns(s *CmsColumns)    {
    

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leijmdas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值