models

package
v0.0.0-...-dd28a31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2019 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

model公用操作

公用的model数据结构

Index

Constants

View Source
const (
	ConfigCateEmail         helper.ConfigCate = "email"         //email
	ConfigCateDepend        helper.ConfigCate = "depend"        //依赖
	ConfigCateElasticSearch helper.ConfigCate = "elasticsearch" //全文搜索
	ConfigCateLog           helper.ConfigCate = "logs"          //日志配置管理

	// 存储类型, cs 前缀表示 CloudStore
	StoreOss   helper.ConfigCate = "cs-oss"   //oss存储
	StoreMinio helper.ConfigCate = "cs-minio" //minio存储
	StoreCos   helper.ConfigCate = "cs-cos"   //腾讯云存储
	StoreObs   helper.ConfigCate = "cs-obs"   //华为云存储
	StoreBos   helper.ConfigCate = "cs-bos"   //百度云存储
	StoreQiniu helper.ConfigCate = "cs-qiniu" //七牛云储存
	StoreUpyun helper.ConfigCate = "cs-upyun" //又拍云存储
)
View Source
const (
	InputText     string = "string"   //对应input的text
	InputBool     string = "bool"     //对应input的radio,两个选项
	InputNumber   string = "number"   //对应input的number
	InputTextarea string = "textarea" //对应textarea
	IinputSelect  string = "select"   //对应textarea
)
View Source
const (
	DocStatusFileDeleted int8 = -2
	DocStatusDeleted     int8 = -1
	DocStatusConverting  int8 = 0
	DocStatusNormal      int8 = 1
)

文档资源状态,1正常,0文档未转换成功,-1删除,同时把id录入文档回收站id,-2表示删除了文档文件,但是数据库记录还保留。同时后台也看不到该记录

Variables

以下是表字段查询

Functions

func AutoSitemap

func AutoSitemap()

自动更新站点地图

func CheckDatabaseIsExist

func CheckDatabaseIsExist(host string, port int, username, password, database string) (err error)

检查数据库是否存在 @param host 数据库地址 @param port 端口 @param password 密码 @param database 数据库 @return err 错误

func Count

func Count(table string, cond *orm.Condition) (cnt int64)

对单表记录进行统计查询 @param table 需要查询或者统计的表 @param cond 查询条件 @return cnt 统计的记录数

func DelByIds

func DelByIds(table string, id ...interface{}) (affected int64, err error)

根据指定的表和id删除指定的记录,如果在删除记录的时候也删除记录中记录的文件,则不能调用该方法 @param table 指定要删除记录的数据表 @param id 要删除的记录的ID @return affected 影响的记录数 @return err 错误

func DocumentConvert

func DocumentConvert(tmpFile string, fileMD5 string, page ...int) (err error)

文档转换 @param tmpFile 临时存储的文件 @param fileMD5 文件md5 @param page 需要转换的页数,0表示全部转换

func DocumentProcess

func DocumentProcess(uid int, form FormUpload) (err error)

文档处理

func DoesCollect

func DoesCollect(did, uid int) bool

是否已收藏文档 @param did 文档id,即document id @param uid 用户id @return bool bool值,true表示已收藏,否则未收藏

func GetChildrenNode

func GetChildrenNode(node string, value interface{}, params []orm.Params) (data []orm.Params)

获取子节点

func GetDocList

func GetDocList(uid, chanelid, pid, cid, p, listRows int, order string, status ...int) (data []orm.Params, rows int64, err error)

获取文档列表,其中status不传时,表示获取全部状态的文档,否则获取指定状态的文档,status:-1已删除,0转码中,1已转码 排序order全部按倒叙排序,默认是按id倒叙排序,可选值:Id,Dcnt(下载),Vcnt(浏览),Ccnt(收藏)

func GetFields

func GetFields(tableObj interface{}) (fields []string)

获取指定Strut的字段 @param tableObj Strut结构对象,引用传递 @return fields 返回字段数组

func GetImageFromCloudStore

func GetImageFromCloudStore(picture string, ext ...string) (link string)

func GetList

func GetList(table string, p, listRows int, condition *orm.Condition, orderby ...string) (params []orm.Params, rows int64, err error)

从单表中根据条件获取数据列表 @param table 需要查询的表 @param p 页码 @param listRows 每页显示记录数 @param condition 查询条件 @param orderby 排序 @return params 数据列表 @return rows 返回的记录数 @return err 错误

func GetTableAdPosition

func GetTableAdPosition() string

func GetTableAdmin

func GetTableAdmin() string

func GetTableBanner

func GetTableBanner() string

func GetTableCategory

func GetTableCategory() string

func GetTableCoinLog

func GetTableCoinLog() string

func GetTableCollect

func GetTableCollect() string

func GetTableCollectFolder

func GetTableCollectFolder() string

func GetTableConfig

func GetTableConfig() string

func GetTableDocText

func GetTableDocText() string

func GetTableDocument

func GetTableDocument() string

func GetTableDocumentComment

func GetTableDocumentComment() string

func GetTableDocumentIllegal

func GetTableDocumentIllegal() string

func GetTableDocumentInfo

func GetTableDocumentInfo() string

func GetTableDocumentRecycle

func GetTableDocumentRecycle() string

func GetTableDocumentRemark

func GetTableDocumentRemark() string

func GetTableDocumentStore

func GetTableDocumentStore() string

func GetTableFreeDown

func GetTableFreeDown() string

func GetTableFriend

func GetTableFriend() string

func GetTablePages

func GetTablePages() string

func GetTableRelate

func GetTableRelate() string

func GetTableReport

func GetTableReport() string

func GetTableSearchLog

func GetTableSearchLog() string

func GetTableSeo

func GetTableSeo() string

func GetTableSign

func GetTableSign() string

func GetTableSuggest

func GetTableSuggest() string

func GetTableSys

func GetTableSys() string

func GetTableUser

func GetTableUser() string

func GetTableUserInfo

func GetTableUserInfo() string

func GetTableWord

func GetTableWord() string

func Init

func Init()

初始化数据库注册

func LeftJoinSqlBuild

func LeftJoinSqlBuild(tables []string, on []map[string]string, fields map[string][]string, p, listRows int, orderBy []string, groupBy []string, condition string) (sql string, err error)

左联合查询创建SQL语句 @param tables 需要作为联合查询的数据表。注意:数据表的第一个表是主表 @param on 联合查询的on查询条件,必须必表(tables)少一个。比如user表和user_info表做联合查询,那么on查询条件只有一个,必tables的数组元素少一个 @param fields 需要查询的字段 @param p 页码 @param listRows 每页查询记录数 @param orderBy 排序条件,可以穿空数组 @param groupBy 按组查询 @param condition 查询条件 @param conditionArgs 查询条件参数 @return sql 返回生成的SQL语句 @return err 错误。如果返回的错误不为nil,则SQL语句为空字符串 使用示例: tables := []string{"document", "document_info info", "document_store store"} fields := map[string][]string{ "document": {"Id Did", "Title", "Filename"}, "info": {"Vcnt", "Dcnt"}, "store": {"Md5", "Page"}, } on := []map[string]string{ {"document.Id": "info.Id"}, {"info.DsId": "store.Id"}, } orderby := []string{"doc.Id desc", "store.Page desc"} sql, err := LeftJoinSqlBuild(tables, on, fields, 1, 100, orderby, nil, "") fmt.Println(sql, err)

func RegisterDB

func RegisterDB()

注册数据库

func Regulate

func Regulate(table, field string, step int, condition string, conditionArgs ...interface{}) (err error)

设置字段值减小 @param table 需要操作的数据表 @param field 需要对值进行增减的字段 @param step 增减的步长,正值为加,负值为减 @param condition 查询条件 @param conditionArgs 查询条件参数 @return err 返回错误

func ReplaceInto

func ReplaceInto(table string, params map[string]interface{}) (err error)

替换写入【注意:表中必须要有一个除了主键外的唯一键】 @param table 需要写入的table @param params 需要写入的数据 @return err 返回错误

func SearchByMysql

func SearchByMysql(wd, sourceType, order string, p, listRows int) (data []orm.Params, total int64)

使用MySQL的like查询 @param wd 搜索关键字 @param sourceType 搜索的资源类型,可选择:doc、ppt、xls、pdf、txt、other、all @param order 排序,可选值:new(最新)、down(下载)、page(页数)、score(评分)、size(大小)、collect(收藏)、view(浏览)、default(默认) @param p 页码 @param listRows 每页显示记录数

func ToTree

func ToTree(params []orm.Params, Node string, value interface{}) []orm.Params

转成树形结构

func UpdateByField

func UpdateByField(table string, data map[string]interface{}, filter string, filterValue ...interface{}) (affected int64, err error)

根据指定的表和id条件更新表字段,不支持批量更新 @param table 需要更新的表 @param data 需要更新的字段 @param filter 过滤条件,如"Id__in" @param filterValue 过滤条件的值 @return affected 影响的记录数 @return err 错误

func UpdateByIds

func UpdateByIds(table string, field string, value interface{}, id ...interface{}) (affected int64, err error)

根据指定的表和id条件更新表字段,不支持批量更新 @param table 需要更新的表 @param field 需要更新的字段 @param value 需要更新的字段的值 @param id id条件 @return affected 影响的记录数 @return err 错误

Types

type Ad struct {
	Id         int    `orm:"column(Id)"`
	Title      string `orm:"column(Title);size(100);default()"` //广告名称
	Pid        int    `orm:"column(Pid);default(0);index"`      //广告位id
	Code       string `orm:"column(Code);default();size(1024)"` //广告代码
	Status     bool   `orm:"column(Status);default(true)"`      //广告状态,0表示广告关闭,否则为开启
	TimeStart  int    `orm:"column(TimeStart);default(0)"`      //广告开始时间
	TimeEnd    int    `orm:"column(TimeEnd);default(0)"`        //广告截止时间
	TimeCreate int    `orm:"column(TimeCreate);default(0)"`     //广告添加时间
}

广告表

func NewAd

func NewAd() *Ad

type AdPosition

type AdPosition struct {
	Id       int    `orm:"column(Id)"`                      //主键
	Title    string `orm:"column(Title);default()"`         //广告位名称
	Alias    string `orm:"column(Alias);default();unique"`  //广告位别称
	IsMobile bool   `orm:"column(IsMobile);default(false)"` //是否是手机广告位
	Width    string `orm:"column(Width);default()"`         //广告位的最大宽度
}

广告位表【程序开发完成之后再设立广告位】

func NewAdPosition

func NewAdPosition() *AdPosition

type Admin

type Admin struct {
	Id       int    `orm:"column(Id)"`                       //自增主键
	Username string `orm:"size(16);unique;column(Username)"` //用户名,唯一
	Password string `orm:"size(32);column(Password)"`        //密码
	Email    string `orm:"size(50);default();column(Email)"` //邮箱
	Code     string `orm:"size(30);default();column(Code)"`  //您心目中的验证码
}

管理员数据表

func NewAdmin

func NewAdmin() *Admin

func (*Admin) GetById

func (this *Admin) GetById(id int) (admin Admin, err error)

根据管理员ID获取管理员信息 @param id 管理员id @return admin 管理员信息 @return err 错误信息

func (*Admin) Login

func (this *Admin) Login(username, password, code string) (admin Admin, err error)

管理员登录 @param username 用户名 @param password 经过md5加密后的密码 @param code 登录暗号 @return admin 管理员数据结构,如果登录成功,管理员id大于0 @return err SQL查询过程中出现的错误

type Banner struct {
	Id         int    `orm:"column(Id)"`
	Picture    string `orm:"column(Picture);default();size(50)"` //图片
	Title      string `orm:"column(Title);default()"`            //标题
	Link       string `orm:"column(Link);default()"`             //链接
	Sort       int    `orm:"column(Sort);default(0)"`            //排序
	Status     bool   `orm:"column(Status);default(true)"`       //状态,false表示关闭,true表示正常显示
	TimeCreate int    `orm:"column(TimeCreate);default(0)"`      //横幅添加时间
}

横幅

func NewBanner

func NewBanner() *Banner

func (*Banner) Del

func (this *Banner) Del(id ...interface{}) (affected int64, err error)

删除横幅:删除横幅记录,同时删除横幅图片 @param id 横幅id @return affected 影响的记录数 @return err 错误

func (*Banner) List

func (this *Banner) List(p, listRows int, status ...int) (banners []Banner, rows int64, err error)

获取横幅列表 @param p 页码 @param listRows 每页记录数 @param status 横幅状态,0表示关闭,1表示正常,不传值则获取全部 @return banners 返回列表 @return rows 返回记录数 @return err 错误

type Category

type Category struct {
	Id     int    `orm:"column(Id)"`
	Pid    int    `orm:"default(0);column(Pid)"`           //父类ID【Pid为0时的id为频道Id(chanel_id)】
	Title  string `orm:"size(20);column(Title);default()"` //分类名称
	Cover  string `orm:"column(Cover);default()"`          //封面
	Cnt    int    `orm:"default(0);column(Cnt)"`           //当前分类下的文档数量统计
	Sort   int    `orm:"default(0);column(Sort)"`          //分类排序,值越小越靠前
	Alias  string `orm:"size(30);default();column(Alias)"` //英文别名
	Status bool   `orm:"default(true);column(Status)"`     //分类或频道状态,0表示关闭,1表示启用
}

文档分类

func NewCategory

func NewCategory() *Category

func (*Category) Del

func (this *Category) Del(id ...interface{}) (err error)

根据id删除分类 @param id 需要删除的分类id @return err 错误,nil表示删除成功

func (*Category) GetAll

func (this *Category) GetAll(status ...bool) (count int64, categories []Category)

get all categories

func (*Category) GetByPid

func (this *Category) GetByPid(pid int, status ...bool) (categories []Category)

根据父级id获取分类

func (*Category) GetCategoriesById

func (this *Category) GetCategoriesById(id ...interface{}) (cates []Category, err error)

func (*Category) GetSameLevelCategoryById

func (this *Category) GetSameLevelCategoryById(id interface{}) (cates []Category)

获取同级分类 @param id 当前同级分类的id @return cates 分类列表数据

func (*Category) GetTitleById

func (this *Category) GetTitleById(id interface{}) (title string)

根据传递过来的id从分类表中查询标题 @param id 主键id @return title 返回查询的标题名称

func (*Category) TableUnique

func (this *Category) TableUnique() [][]string

多字段唯一索引

type CloudStore

type CloudStore struct {
	Private   bool
	StoreType helper.ConfigCate
	CanGZIP   bool
	// contains filtered or unexported fields
}

func NewCloudStore

func NewCloudStore(private bool) (cs *CloudStore, err error)

创建云存储

func NewCloudStoreWithConfig

func NewCloudStoreWithConfig(storeConfig interface{}, storeType helper.ConfigCate, private bool) (cs *CloudStore, err error)

func (*CloudStore) Delete

func (c *CloudStore) Delete(objects ...string) (err error)

func (*CloudStore) DeleteImageFromHtml

func (c *CloudStore) DeleteImageFromHtml(htmlStr string)

从HTML中提取图片文件,并删除

func (*CloudStore) GetPublicDomain

func (c *CloudStore) GetPublicDomain() (domain string)

func (*CloudStore) GetSignURL

func (c *CloudStore) GetSignURL(object string) (link string)

func (*CloudStore) ImageWithDomain

func (c *CloudStore) ImageWithDomain(htmlOld string) (htmlNew string)

func (*CloudStore) ImageWithoutDomain

func (c *CloudStore) ImageWithoutDomain(htmlOld string) (htmlNew string)

func (*CloudStore) IsExist

func (c *CloudStore) IsExist(object string) (err error)

err 返回 nil,表示文件存在,否则表示文件不存在

func (*CloudStore) PingTest

func (c *CloudStore) PingTest() (err error)

func (*CloudStore) Upload

func (c *CloudStore) Upload(tmpFile, saveFile string, headers ...map[string]string) (err error)

type CoinLog

type CoinLog struct {
	Id         int    `orm:"column(Id)"`
	Uid        int    `orm:"column(Uid);index"`               //用户id
	Coin       int    `orm:"column(Coin);default(0)"`         //金币变更,正表示加,负表示减
	Log        string `orm:"column(Log);size(512);default()"` //记录说明
	TimeCreate int    `orm:"column(TimeCreate)"`              //记录变更时间
}

金币变更日志

func NewCoinLog

func NewCoinLog() *CoinLog

func (*CoinLog) LogRecord

func (this *CoinLog) LogRecord(log CoinLog) (err error)

记录金币记录变更情况,会自动对用户的金币做变更 @param log 日志对象 @return err 错误,nil表示true,否则表示false

type Collect

type Collect struct {
	Id  int `orm:"column(Id)"`
	Cid int `orm:"column(Cid);index"` //文档收藏的自定义收藏的文件夹
	Did int `orm:"column(Did)"`       //文档id:document id
}

会员文档收藏表

func NewCollect

func NewCollect() *Collect

func (*Collect) Cancel

func (this *Collect) Cancel(did, cid interface{}, uid int) (err error)

取消文档收藏 @param did 文档id @param cid CollectFolder表的id,即收藏夹id @param uid 用户id @param err 返回错误

func (*Collect) DelByDocId

func (this *Collect) DelByDocId(dids ...interface{}) (err error)

删除指定的文档收藏,比如某文档是侵权或者非法,则凡是收藏了该文档的用户,该文档收藏都将被删除 @param dids 文档id @return err 错误,nil表示删除成功

func (*Collect) DelFolder

func (this *Collect) DelFolder(id, uid int) (err error)

删除收藏夹,当收藏夹里面收藏的文档不为空时,不允许删除 @param id 收藏夹id @param uid 用户id @return err 错误,如果错误为nil,则表示删除成功,否则删除失败

func (*Collect) TableUnique

func (clt *Collect) TableUnique() [][]string

文档收藏表多字段唯一索引

type CollectFolder

type CollectFolder struct {
	Id          int    `orm:"column(Id)"`
	Cover       string `orm:"column(Cover);size(50);default()"`        //文档收藏夹(专辑封面)
	Title       string `orm:"column(Title);size(100);default(默认收藏夹)"`  //会员收藏文档的存放收藏夹
	Description string `orm:"column(Description);size(512);default()"` //会员创建的收藏夹的描述
	Uid         int    `orm:"column(Uid);index"`                       //归属于哪个会员的收藏夹
	TimeCreate  int    `orm:"column(TimeCreate)"`                      //收藏夹创建时间
	Cnt         int    `orm:"column(Cnt);default(0)"`                  //收藏夹默认的文档数量
}

会员文档收藏的文件夹

func NewCollectFolder

func NewCollectFolder() *CollectFolder

func (*CollectFolder) TableUnique

func (cf *CollectFolder) TableUnique() [][]string

文档收藏表多字段唯一索引

type Config

type Config struct {
	Id          int    `orm:"column(Id)"`                                //主键
	Title       string `orm:"column(Title);default()"`                   //名称
	InputType   string `orm:"column(InputType);default();size(10)"`      //类型:float、int、bool,string, textarea (空表示字符串类型)
	Description string `orm:"column(Description);default()"`             //说明
	Key         string `orm:"column(Key);default();size(30)"`            //键
	Value       string `orm:"column(Value);default()"`                   //值
	Category    string `orm:"column(Category);default();index;size(30)"` //分类,如oss、email、redis等
	Options     string `orm:"column(Options);default();size(4096)"`      //枚举值列举
}

配置管理表

func NewConfig

func NewConfig() *Config

func (*Config) All

func (this *Config) All() (configs []Config)

获取全部配置文件 @return configs 所有配置

func (*Config) GetByCate

func (this *Config) GetByCate(cate helper.ConfigCate) (configs []Config)

func (*Config) GetGlobalConfigWithStruct

func (this *Config) GetGlobalConfigWithStruct(configCate helper.ConfigCate) (cfg interface{})

获取云存储配置

func (*Config) ParseForm

func (this *Config) ParseForm(configCate helper.ConfigCate, form url.Values) (cfg interface{}, err error)

func (*Config) TableUnique

func (this *Config) TableUnique() [][]string

多字段唯一键

func (*Config) UpdateByKey

func (this *Config) UpdateByKey(cate helper.ConfigCate, key, val string) (err error)

根据key更新配置 @param cate 配置分类 @param key 配置项 @param val 配置项的值 @return err 错误

func (*Config) UpdateCloudStore

func (this *Config) UpdateCloudStore(storeType helper.ConfigCate, cfg interface{}) (err error)

注意:这里的 cfg 参数是值传递

func (*Config) UpdateGlobalConfig

func (this *Config) UpdateGlobalConfig()

更新全局config配置

type ConfigBos

type ConfigBos struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	Endpoint            string `dochub:"endpoint"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigCos

type ConfigCos struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	Region              string `dochub:"region"`
	AppId               string `dochub:"app-id"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigEmail

type ConfigEmail struct {
	Port          int    `dochub:"port"`
	Host          string `dochub:"host"`
	Username      string `dochub:"username"`
	Password      string `dochub:"password"`
	ReplyTo       string `dochub:"replyto"`
	TestUserEmail string `dochub:"test"`
}

func NewEmail

func NewEmail(config ...ConfigEmail) *ConfigEmail

func (*ConfigEmail) SendMail

func (e *ConfigEmail) SendMail(to, subject, content string) (err error)

发送邮件 @param to string 收件人 @param subject string 邮件主题 @param content string 邮件内容 @return error 发送错误

type ConfigMinio

type ConfigMinio struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	Endpoint            string `dochub:"endpoint"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigObs

type ConfigObs struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	Endpoint            string `dochub:"endpoint"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigOss

type ConfigOss struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	Endpoint            string `dochub:"endpoint"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigQiniu

type ConfigQiniu struct {
	AccessKey           string `dochub:"access-key"`
	SecretKey           string `dochub:"secret-key"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type ConfigUpYun

type ConfigUpYun struct {
	Operator            string `dochub:"operator"`
	Password            string `dochub:"password"`
	Secret              string `dochub:"secret"`
	PublicBucket        string `dochub:"public-bucket"`
	PublicBucketDomain  string `dochub:"public-bucket-domain"`
	PrivateBucket       string `dochub:"private-bucket"`
	PrivateBucketDomain string `dochub:"private-bucket-domain"`
	Expire              int64  `dochub:"expire"`
}

type DefSeo

type DefSeo struct {
	Title, Keywords, Description, Sitename string
}

默认的SEO结构

type DocText

type DocText struct {
	Id      int    `orm:"Column(Id)"`
	Md5     string `orm:"size(32);default();column(Md5)"`       //文档的md5,之所以存储md5而不是文档的存档id,主要是因为文档在这之前没录入数据库
	Content string `orm:"size(5000);default();column(Content)"` //文档提取到的文档内容
}

文档表

func NewDocText

func NewDocText() *DocText

func (*DocText) GetDescByDid

func (this *DocText) GetDescByDid(did interface{}, length ...int) (desc string)

根据文档表的文档id获取文档摘要,默认获取255个字符长度 @param did document_store的id @param length 需要获取的长度 @return desc 返回摘要内容

func (*DocText) GetDescByDsId

func (this *DocText) GetDescByDsId(dsid interface{}, length ...int) (desc string)

根据存档表的id获取文档摘要,默认获取255个字符长度 @param dsid document_store的id @param length 需要获取的长度 @return desc 返回摘要内容

func (*DocText) GetDescByMd5

func (this *DocText) GetDescByMd5(md5str interface{}, length ...int) (desc string)

根据md5获取文档摘要,默认获取255个字符长度 @param md5str 文档md5 @param length 需要获取的长度 @return desc 返回摘要内容

type Document

type Document struct {
	Id          int    `orm:"Column(Id)"`
	Title       string `orm:"size(255);default();column(Title)"`       //文档名称【用户自定义的文档标题】
	Filename    string `orm:"size(255);default();column(Filename)"`    //文件名[文件的原文件名]
	Keywords    string `orm:"size(255);default();column(Keywords)"`    //文档标签、关键字
	Description string `orm:"size(255);default();column(Description)"` //文档摘要
}

文档表

func NewDocument

func NewDocument() *Document

func (*Document) GetById

func (this *Document) GetById(id interface{}) (doc fullDocument, err error)

根据文档id获取一篇文档的全部信息 @param id 文档id @return params 文档信息 @return rows 记录数 @return err 错误

func (*Document) GetDocForElasticSearch

func (this *Document) GetDocForElasticSearch(id ...int) (es []ElasticSearchData, err error)

根据id查询搜索数据结构 @param id 根据id查询搜索文档

func (*Document) GetDocInfoByDsId

func (this *Document) GetDocInfoByDsId(DsId ...interface{}) (info []DocumentInfo, rows int64, err error)

根据document_store表中的id查询document_info表中的数据

func (*Document) GetDocInfoById

func (this *Document) GetDocInfoById(Ids ...interface{}) (info []DocumentInfo, rows int64, err error)

根据document_store表中的id查询document_info表中的数据

func (*Document) GetDocInfoForElasticSearch

func (this *Document) GetDocInfoForElasticSearch(page, pageSize int, startTime int, fields ...string) (infos []DocumentInfo, rows int64, err error)

查询需要索引的稳定id @param page 页面 @param pageSize 每页记录数 @param startTime 开始时间 @param fields 查询字段 @return infos 文档信息 @return rows 查询到的文档数量 @return err 查询错误

func (*Document) GetDocStoreByDsId

func (this *Document) GetDocStoreByDsId(DsId ...interface{}) (store []DocumentStore, rows int64, err error)

根据document_store表中的id查询document_info表中的数据

func (*Document) GetDocsByIds

func (this *Document) GetDocsByIds(ids interface{}, num ...int) (data []orm.Params)

根据文档id获取文档,并根据ids参数的id顺序返回搜索结果【主要用于搜索】 @param ids 文档id @param num 记录数量

func (*Document) GetDocument

func (this *Document) GetDocument(id int, fields ...string) (doc Document)

func (*Document) GetOneDocStoreByDsId

func (this *Document) GetOneDocStoreByDsId(DsId interface{}, fields ...string) (store DocumentStore, rows int64, err error)

根据document_store表中的id查询document_info表中的数据

func (*Document) InsertDoc

func (this *Document) InsertDoc(doc *Document) (int64, error)

文档存入文档表

func (*Document) InsertDocInfo

func (this *Document) InsertDocInfo(info *DocumentInfo) (int64, error)

文档信息录入文档信息表

func (*Document) InsertDocStore

func (this *Document) InsertDocStore(ds *DocumentStore) (id int64, err error)

文档录入文档存档表 @param ds 文档存储结构对象 @return id 存储id @return err 错误

func (*Document) IsExistByMd5

func (this *Document) IsExistByMd5(md5str string) (Id int)

根据md5判断文档是否存在 @param md5str 文档的md5 @return Id 文档存储表的id

func (*Document) IsIllegal

func (this *Document) IsIllegal(md5 string) bool

根据md5判断文档是否是非法文档,如果是非法文档,则返回true @param md5 md5 @return bool 如果文档存在于非法文档表中,则表示文档非法,否则合法

func (*Document) IsIllegalById

func (this *Document) IsIllegalById(id interface{}) bool

根据md5判断文档是否是非法文档,如果是非法文档,则返回true @param id 文档id @return bool 如果文档存在于非法文档表中,则表示文档非法,否则合法

func (*Document) SetIllegal

func (this *Document) SetIllegal(ids ...interface{}) (err error)

把文档标记为非法文档 @param ids 文档id @return err 错误,nil表示成功

func (*Document) SimpleList

func (this *Document) SimpleList(condition string, limit int, orderField ...string) (params []orm.Params, rows int64, err error)

文档简易列表,用于首页或者其它查询简易字段,使用的时候,记得给条件加上表别名前缀。document_info别名前缀di,document_store别名前缀ds,document表名前缀d @param condition 查询条件 @param limit 查询记录限制 @param orderField 倒叙排序的字段。不需要表前缀。可用字段:Id,Ccnt,Dcnt,Vcnt,Score @return params 列表数据 @return rows 记录数 @return err 错误

func (*Document) SoftDel

func (this *Document) SoftDel(uid int, isAdmin bool, ids ...interface{}) (err error)

文档软删除,即把文档状态标记为-1,操作之后,需要把总文档数量、用户文档数量-1,同时把文档id移入回收站

func (*Document) TplSimpleList

func (this *Document) TplSimpleList(chinelid interface{}) []orm.Params

文档简易列表

type DocumentComment

type DocumentComment struct {
	Id         int    `orm:"column(Id)"`
	Did        int    `orm:"column(Did);index"`                   //文档ID
	Uid        int    `orm:"column(Uid);"`                        //评分的用户Id
	Score      int    `orm:"column(Score);default(30000)"`        //评分分数
	Content    string `orm:"column(Content);size(256);default()"` //评论内容
	TimeCreate int    `orm:"column(TimeCreate);default(0)"`       //评论发表时间
	Status     bool   `orm:"column(Status);default(true)"`        //评论是否正常
}

文档评分记录表

func NewDocumentComment

func NewDocumentComment() *DocumentComment

func (*DocumentComment) DelCommentByDocId

func (this *DocumentComment) DelCommentByDocId(ids ...interface{}) (err error)

根据文档ID删除文档评论 @param ids 文档id @return err 错误,nil表示删除成功

func (*DocumentComment) GetCommentList

func (this *DocumentComment) GetCommentList(did, p, listRows int) (params []orm.Params, rows int64, err error)

获取文档评论列表 @param did 文档ID @param p 页码 @param listRows 每页记录数 @return params 返回的数据 @return rows 返回的数据记录数 @return err 返回错误

func (*DocumentComment) TableUnique

func (this *DocumentComment) TableUnique() [][]string

文档评分记录表多字段唯一索引

type DocumentIllegal

type DocumentIllegal struct {
	Id  int    `orm:"column(Id)"`                            //文档id
	Md5 string `orm:"size(32);unique;default();column(Md5)"` //文档md5
}

非法文档(侵权或不良信息文档)MD5记录表

func NewDocumentIllegal

func NewDocumentIllegal() *DocumentIllegal

type DocumentInfo

type DocumentInfo struct {
	Id          int  `orm:"column(Id)"`
	DsId        int  `orm:"index;default(0);column(DsId)"`     //文档存档表Id,DocumentStore Id
	Uid         int  `orm:"index;default(0);column(Uid)"`      //文档上传用户的id
	ChanelId    int  `orm:"index;default(0);column(ChanelId)"` //文档所属频道
	Pid         int  `orm:"index;default(0);column(Pid)"`      //文档一级分类
	Cid         int  `orm:"index;default(0);column(Cid)"`      //频道下的最底层的分类id(二级分类),如幼儿教育下的幼儿读物等
	TimeCreate  int  `orm:"default(0);column(TimeCreate)"`     //文档上传时间
	TimeUpdate  int  `orm:"default(0);column(TimeUpdate)"`     //文档更新时间
	Dcnt        int  `orm:"default(0);column(Dcnt)"`           //下载次数
	Vcnt        int  `orm:"default(0);column(Vcnt)"`           //浏览次数
	Ccnt        int  `orm:"default(0);column(Ccnt)"`           //收藏次数
	Score       int  `orm:"default(30000);column(Score)"`      //默认30000,即表示3.0分。这是为了更准确统计评分的需要
	ScorePeople int  `orm:"default(0);column(ScorePeople)"`    //评分总人数
	Price       int  `orm:"default(0);column(Price)"`          //文档下载价格,0表示免费
	Status      int8 `orm:"default(0);column(Status)"`         //文档资源状态,1正常,0文档未转换成功,-1删除,同时把id录入文档回收站id,-2表示删除了文档文件,但是数据库记录还保留。同时后台也看不到该记录
}

文档信息表

func NewDocumentInfo

func NewDocumentInfo() *DocumentInfo

type DocumentRecycle

type DocumentRecycle struct {
	Id   int  `orm:"column(Id)"`                  //对应的文档id
	Uid  int  `orm:"default(0);column(Uid)"`      //操作用户
	Date int  `orm:"default(0);column(Date)"`     //操作时间
	Self bool `orm:"default(false);column(Self)"` //是否是文档上传用户删除的,默认为false。如果是文档上传者删除的,设置为true
}

文档回收站

func NewDocumentRecycle

func NewDocumentRecycle() *DocumentRecycle

func (*DocumentRecycle) DeepDel

func (this *DocumentRecycle) DeepDel(ids ...interface{}) (err error)

彻底删除文档,包括删除文档记录(被收藏的记录、用户的发布记录、扣除用户获得的积分(如果此刻文档的状态不是待删除)),删除文档文件

func (*DocumentRecycle) DelFile

func (this *DocumentRecycle) DelFile(md5, oriExt, prevExt string, previewPagesCount int) (err error)

根据md5,删除文档、封面、预览文件等 @param md5 文档md5

func (*DocumentRecycle) DelRows

func (this *DocumentRecycle) DelRows(ids ...interface{}) (err error)

删除文档记录

func (*DocumentRecycle) RecoverFromRecycle

func (this *DocumentRecycle) RecoverFromRecycle(ids ...interface{}) (err error)

将文档从回收站中恢复过来,文档的状态必须是-1才可以 @param ids 文档id @return err 返回错误,nil表示恢复成功,否则恢复失败

func (*DocumentRecycle) RecycleList

func (this *DocumentRecycle) RecycleList(p, listRows int) (params []orm.Params, rows int64, err error)

回收站文档列表

func (*DocumentRecycle) RemoveToRecycle

func (this *DocumentRecycle) RemoveToRecycle(uid interface{}, self bool, ids ...interface{}) (err error)

将文档移入回收站(软删除) @param uid 操作人,即将文档移入回收站的人 @param self 是否是用户自己操作 @param ids 文档id,即需要删除的文档id @return errs 错误

type DocumentRemark

type DocumentRemark struct {
	Id            int    `orm:"column(Id)"`                           //document_store表中的ID,当前台页面查询文档的备注的时候,以DsId作为document_remark表中的主键进行查询
	Content       string `orm:"column(Content);size(5120);default()"` //备注内容内容
	AllowDownload bool   `orm:"column(AllowDownload);default(true)"`  //是否允许下载文档
	Status        bool   `orm:"column(Status);default(true)"`         //备注状态,true表示显示,false表示隐藏
	TimeCreate    int    `orm:"column(TimeCreate);default(0)"`        //创建时间
}

文档备注,用于侵权文档等的部分内容的预览展示,并在文档预览页面挂上跳转购买正版的导购链接;同时对于一些开源书籍,也可以一面提供站内文档的下载,一面引导用户购买正版。

func NewDocumentRemark

func NewDocumentRemark() *DocumentRemark

func (*DocumentRemark) GetContentTplByDsId

func (this *DocumentRemark) GetContentTplByDsId(DsId int) (rm DocumentRemark)

获取内容模板 @param DsId 文档DsId @return rm 生成的文档备注模板

func (*DocumentRemark) GetDefaultTpl

func (this *DocumentRemark) GetDefaultTpl(DsId int) (rm DocumentRemark)

获取文档备注模板 @param DsId 文档DsId @return rm 生成的文档备注模板

func (*DocumentRemark) GetParseContentByDocId

func (this *DocumentRemark) GetParseContentByDocId(docid interface{}) (rm DocumentRemark, err error)

根据文档id获取文档的备注 @param id document_store表中的ID[TODO:注意!!!!(这里加TODO,主要是为了在IDE上更显眼)] @return rm 文档备注 @return err 文档错误

func (*DocumentRemark) Insert

func (this *DocumentRemark) Insert(rm DocumentRemark) (err error)

新增或更改内容,如果TimeCreate为0,表示新增,否则表示更新 @param rm 备注内容 @return err 返回错误,nil表示成功

func (*DocumentRemark) IsRemark

func (this *DocumentRemark) IsRemark(dsid interface{}) bool

根据dsid判断文档是否已存在备注

type DocumentStore

type DocumentStore struct {
	Id          int    `orm:"column(Id)"`
	Md5         string `orm:"size(32);unique;column(Md5)"`             //文档md5
	Ext         string `orm:"size(10);default();column(Ext)"`          //文档扩展名,如pdf、xls等
	ExtCate     string `orm:"size(10);default();column(ExtCate)"`      //文档扩展名分类:word、ppt、text、pdf、xsl,code(这些分类配合图标一起使用,如word_24.png)
	ExtNum      int    `orm:"default(0);column(ExtNum)"`               //文档后缀的对应数字,主要是在coreseek搭建站内搜索时用到
	Page        int    `orm:"default(0);column(Page)"`                 //文档页数
	PreviewPage int    `orm:"default(50);column(PreviewPage)"`         //当前文档可预览页数
	Size        int    `orm:"default(0);column(Size)"`                 //文档大小
	ModTime     int    `orm:"default(0);column(ModTime)"`              //文档修改编辑时间
	PreviewExt  string `orm:"default(svg);column(PreviewExt);size(4)"` //文档预览的图片格式后缀,如jpg、png、svg等,默认svg
	Width       int    `orm:"default(0);column(Width)"`                //svg的原始宽度
	Height      int    `orm:"default(0);column(Height)"`               //svg的原始高度
}

文档存档表[供预览的文档存储在文档预览的OSS,完整文档存储在存储表]

func NewDocumentStore

func NewDocumentStore() *DocumentStore

type ElasticSearchClient

type ElasticSearchClient struct {
	On      bool          `dochub:"on"`    //是否启用全文搜索
	Host    string        `dochub:"host"`  //host
	Index   string        `dochub:"index"` //索引
	Type    string        `dochub:"type"`  //type
	Timeout time.Duration //超时时间
}

全文搜索客户端

func NewElasticSearchClient

func NewElasticSearchClient(configElasticSearch ...ElasticSearchClient) (client *ElasticSearchClient)

创建全文搜索客户端

func (*ElasticSearchClient) BuildIndex

func (this *ElasticSearchClient) BuildIndex(es ElasticSearchData) (err error)

创建索引

func (*ElasticSearchClient) BuildIndexByBuck

func (this *ElasticSearchClient) BuildIndexByBuck(data []ElasticSearchData) (err error)

通过bulk,批量创建/更新索引

func (*ElasticSearchClient) BuildIndexById

func (this *ElasticSearchClient) BuildIndexById(id int) (err error)

根据id查询文档,并创建索引

func (*ElasticSearchClient) Count

func (this *ElasticSearchClient) Count() (count int, err error)

查询索引量 @return count 统计数据 @return err 错误

func (*ElasticSearchClient) DeleteIndex

func (this *ElasticSearchClient) DeleteIndex(id int) (err error)

删除索引 @param id 索引id @return err 错误

func (*ElasticSearchClient) Init

func (this *ElasticSearchClient) Init() (err error)

初始化全文搜索客户端,包括检查索引是否存在,mapping设置等

func (*ElasticSearchClient) RebuildAllIndex

func (this *ElasticSearchClient) RebuildAllIndex()

重建索引【全量】 采用批量重建索引的方式进行 每次操作100条数据

func (*ElasticSearchClient) Search

func (this *ElasticSearchClient) Search(wd, sourceType, order string, p, listRows int) (result ElasticSearchResult, err error)

搜索内容 @param wd 搜索关键字 @param sourceType 搜索的资源类型,可选择:doc、ppt、xls、pdf、txt、other、all @param order 排序,可选值:new(最新)、down(下载)、page(页数)、score(评分)、size(大小)、collect(收藏)、view(浏览)、default(默认) @param p 页码 @param listRows 每页显示记录数

type ElasticSearchCount

type ElasticSearchCount struct {
	Shards struct {
		Failed     int `json:"failed"`
		Skipped    int `json:"skipped"`
		Successful int `json:"successful"`
		Total      int `json:"total"`
	} `json:"_shards"`
	Count int `json:"count"`
}

统计信息结构

type ElasticSearchData

type ElasticSearchData struct {
	Id          int    `json:"Id"`          //文档id
	Title       string `json:"Title"`       //文档标题
	Keywords    string `json:"Keywords"`    //文档关键字
	Description string `json:"Description"` //文档摘要
	Vcnt        int    `json:"Vcnt"`        //文档浏览次数	view count
	Ccnt        int    `json:"Ccnt"`        //文档收藏次数 collect count
	Dcnt        int    `json:"Dcnt"`        //文档下载次数,download count
	Score       int    `json:"Score"`       //文档评分
	Size        int    `json:"Size"`        //文档大小
	Page        int    `json:"Page"`        //文档页数
	DocType     int    `json:"DocType"`     //文档类型,对应各格式的数字表示
	DsId        int    `json:"DsId"`        //DocumentStoreId,对应于md5
	Price       int    `json:"Price"`       //文档售价
	TimeCreate  int    `json:"TimeCreate"`  //文档创建时间
}

全文搜索

type ElasticSearchResult

type ElasticSearchResult struct {
	Shards struct {
		Failed     int `json:"failed"`
		Skipped    int `json:"skipped"`
		Successful int `json:"successful"`
		Total      int `json:"total"`
	} `json:"_shards"`
	Hits struct {
		Hits []struct {
			ID     string      `json:"_id"`
			Index  string      `json:"_index"`
			Score  interface{} `json:"_score"`
			Source struct {
				Ccnt        int    `json:"Ccnt"`
				Dcnt        int    `json:"Dcnt"`
				Description string `json:"Description"`
				DocType     int    `json:"DocType"`
				DsID        int    `json:"DsId"`
				ID          int    `json:"Id"`
				Keywords    string `json:"Keywords"`
				Page        int    `json:"Page"`
				Score       int    `json:"Score"`
				Size        int    `json:"Size"`
				Title       string `json:"Title"`
				Vcnt        int    `json:"Vcnt"`
				Price       int    `json:"Price"`
				TimeCreate  int    `json:"TimeCreate"`
			} `json:"_source"`
			Type      string `json:"_type"`
			Highlight struct {
				Title       []string `json:"Title"`
				Keywords    []string `json:"Keywords"`
				Description []string `json:"Description"`
			} `json:"highlight"`
			Sort []int `json:"sort"`
		} `json:"hits"`
		MaxScore interface{} `json:"max_score"`
		Total    int         `json:"total"`
	} `json:"hits"`
	TimedOut bool `json:"timed_out"`
	Took     int  `json:"took"`
}

搜索结果结构

type Email

type Email struct {
	Id       int    `orm:"column(Id)"`                 //主键
	Username string `orm:"column(Username);default()"` //邮箱用户名
	Email    string `orm:"column(Email);default()"`    //邮箱
	Host     string `orm:"column(Host);default()"`     //主机
	Port     int    `orm:"column(Port);default(25)"`   //端口
	Password string `orm:"column(Password);default()"` //密码
}

邮箱配置

type FormUpload

type FormUpload struct {
	Title, Md5, Intro, Tags, Ext, Filename string
	Chanel, Pid, Cid, Exist, Size, Price   int
	TmpFile                                string // 临时文件
}

文档上传表单结构

type FreeDown

type FreeDown struct {
	Id         int `orm:"column(Id)"`
	Uid        int `orm:"column(Uid)"`                   //用户id
	Did        int `orm:"column(Did)"`                   //文档id
	TimeCreate int `orm:"column(TimeCreate);default(0)"` //文档上次下载时间
}

免费下载,如果用户花费金币下载了一次文档,下次在下载则免费

func NewFreeDown

func NewFreeDown() *FreeDown

func (*FreeDown) IsFreeDown

func (this *FreeDown) IsFreeDown(uid, did interface{}) (isFree bool)

是否可以免费下载,如果之前下载过而且未过免费下载期,可以继续免费下载【注意时间校验,这里只是返回值】 @param uid 用户id @param did 文档id,document id @return isFree 是否免费

type Friend

type Friend struct {
	Id         int    `orm:"column(Id)"`
	Title      string `orm:"column(Title);size(100)"`       //友链名称
	Link       string `orm:"column(Link);size(100);unique"` //友链地址
	Status     bool   `orm:"column(Status);default(true)"`  //友链状态
	Sort       int    `orm:"column(Sort);default(0)"`       //友链排序,值越小越靠前
	TimeCreate int    `orm:"column(TimeCreate);default(0)"` //友链添加时间
}

友情链接表

func NewFriend

func NewFriend() *Friend

func (*Friend) Friends

func (this *Friend) Friends() (links []Friend)

获取友链

func (*Friend) GetListByStatus

func (this *Friend) GetListByStatus(status int) (links []Friend, rows int64, err error)

获取指定状态的友链 @param status 友链状态,-1表示全部状态的友链,0表示关闭状态的友链,1表示正常状态的友链 @return links 友链数组 @return rows 记录数 @return err 错误

type Pages

type Pages struct {
	Id          int    `orm:"column(Id)"`
	Name        string `orm:"column(Name);size(100)"`        //单页名称,如关于我们
	Alias       string `orm:"column(Alias);unique;size(30)"` //单页别名,数字和字母
	Title       string `orm:"column(Title)"`                 //单页标题,如关于IT文库
	Keywords    string `orm:"column(Keywords)"`              //单页关键字
	Description string `orm:"column(Description)"`           //单页摘要
	Content     string `orm:"column(Content);size(5120)"`    //单页文章内容
	TimeCreate  int    `orm:"column(TimeCreate)"`            //单页创建时间
	Sort        int    `orm:"column(Sort);default(100)"`     //单页排序,值越小越靠前
	Vcnt        int    `orm:"column(Vcnt);default(0)"`       //单页浏览记录
	Status      bool   `orm:"column(Status);default(true)"`  //单页状态,true显示,false不显示
}

单页

func NewPages

func NewPages() *Pages

func (*Pages) List

func (this *Pages) List(listRows int, status ...int) (pages []Pages, rows int64, err error)

查询单页列表

func (*Pages) One

func (this *Pages) One(alias string) (page Pages, err error)

查询单页内容

type Relate

type Relate struct {
	Id         int    `orm:"column(Id)"`            //文档的ID
	Ids        string `orm:"column(Ids);size(512)"` //相关文档的ID字符串
	TimeCreate int    `orm:"column(TimeCreate)"`    //记录的创建时间
}

相关文档记录存储表

func NewRelate

func NewRelate() *Relate

type Report

type Report struct {
	Id         int  `orm:"column(Id)"`
	Uid        int  `orm:"column(Uid)"`                   //用户ID
	Did        int  `orm:"column(Did)"`                   //文档ID
	Reason     int  `orm:"column(Reason);default(1)"`     //举报理由:  1、垃圾广告  2、淫秽色情  3、虚假中奖  4、敏感信息  5、人身攻击  6、骚扰他人
	Status     bool `orm:"column(Status);default(false)"` //是否已处理
	TimeCreate int  `orm:"column(TimeCreate)"`            //举报时间
	TimeUpdate int  `orm:"column(TimeUpdate);default(0)"` //举报处理时间
}

不良信息举报

func NewReport

func NewReport() *Report

func (*Report) Lists

func (this *Report) Lists(p, listRows int) (params []orm.Params, rows int64, err error)

获取未删除的举报数据列表

func (*Report) TableUnique

func (this *Report) TableUnique() [][]string

不良信息举报多字段唯一索引

type Result

type Result struct {
	Status     int64    `json:"status"`
	TotalFound int64    `json:"total_found"`
	Total      int64    `json:"total"`
	Ids        string   `json:"ids"`
	Word       []string `json:"word"`
	Msg        string   `json:"msg"`
	Time       float64  `json:"time"`
}

这个不是数据表,这个是搜索结果的json数据解析结构

func Search(wd, sourceType, order string, p, listRows, accuracy int) (res Result)

资源搜索 @param wd 搜索关键字 @param sourceType 搜索的资源类型,可选择:doc、ppt、xls、pdf、txt、other、all @param order 排序,可选值:new(最新)、down(下载)、page(页数)、score(评分)、size(大小)、collect(收藏)、view(浏览)、default(默认) @param p 页码 @param listRows 每页显示记录数 @param accuracy 是否精确搜索

type SearchLog

type SearchLog struct {
	Id int    `orm:"column(Id)"`                 //自增主键
	Wd string `orm:"column(Wd);size(20);unique"` //用户搜索的关键字
}

搜索记录表

func NewSearchLog

func NewSearchLog() *SearchLog

func (*SearchLog) List

func (this *SearchLog) List(p, listRows int) (rows []SearchLog)

获取最新的搜索关键字。这里的查询error可以忽略 @param p 页面 @param listRows 每页显示记录 @return rows 查询到的记录

type Seo

type Seo struct {
	Id          int    `orm:"column(Id)"`                                 //主键
	Name        string `orm:"column(Name);default()"`                     //SEO页面名称
	Page        string `orm:"column(Page);default();size(30);unique"`     //SEO页面【英文】
	IsMobile    bool   `orm:"column(IsMobile);default(false)"`            //是否是手机页面
	Title       string `orm:"column(Title);default({title})"`             //SEO标题
	Keywords    string `orm:"column(Keywords);default({keywords})"`       //SEO关键字
	Description string `orm:"column(Description);default({description})"` //SEO摘要
}

SEO配置表

func NewSeo

func NewSeo() *Seo

func (*Seo) BuildSitemap

func (this *Seo) BuildSitemap()

baseUrl := this.Ctx.Input.Scheme() + "://" + this.Ctx.Request.Host

if host := beego.AppConfig.String("sitemap_host"); len(host) > 0 {
	baseUrl = this.Ctx.Input.Scheme() + "://" + host
}

生成站点地图

func (*Seo) GetByPage

func (this *Seo) GetByPage(page string, defaultTitle, defaultKeywords, defaultDescription, Sitename string) (seo map[string]string)

获取SEO @param page 页面 @param defaultTitle 默认标题 @param defaultKeywords 默认关键字 @param defaultDescription 默认摘要 @param Sitename 站点名称 @return seo SEO数据

type Sign

type Sign struct {
	Id   int    `orm:"column(Id);"`          //主键
	Uid  int    `orm:"column(Uid)"`          //用户ID
	Date string `orm:"column(Date);size(8)"` //签到日期,格式如20170322
}

签到表表结构

func NewSign

func NewSign() *Sign

func (*Sign) DoesSign

func (this *Sign) DoesSign(uid int) bool

检测用户今天是否已签到

func (*Sign) TableUnique

func (s *Sign) TableUnique() [][]string

签到表多字段唯一索引

type Suggest

type Suggest struct {
	Id         int    `orm:"column(Id)"`
	Uid        int    `orm:"column(Uid);default(0)"`          //意见和建议提交人
	Content    string `orm:"column(Content);size(512);"`      //内容
	Email      string `orm:"column(Email);size(50)"`          //邮箱
	Name       string `orm:"column(Name);size(20);default()"` //称呼
	TimeCreate int    `orm:"column(TimeCreate)"`              //意见建议提交时间
	TimeUpdate int    `orm:"column(TimeUpdate)"`              //意见建议查看时间
	Status     bool   `orm:"column(Status);default(false)"`   //是否已查看
}

TODO 意见和建议表,用于收集用户的意见和建议

func NewSuggest

func NewSuggest() *Suggest

type Sys

type Sys struct {
	Id                int    `orm:"column(Id)"`
	Site              string `orm:"size(100);default();column(Site)"`                    //站点名称
	Tongji            string `orm:"size(2048);default();column(Tongji)"`                 //统计代码
	CntDoc            int    `orm:"default(0);column(CntDoc)"`                           //文档数量
	CntUser           int    `orm:"default(0);column(CntUser)"`                          //注册用户数量
	Reward            int    `orm:"column(Reward);default(5)"`                           //上传一篇未被上传过的文档可以获得的金币奖励
	MaxFile           int    `orm:"column(MaxFile);default(52428800)"`                   //允许上传的文件大小(字节),默认50M
	Sign              int    `orm:"column(Sign);default(1)"`                             //每日签到获得的金币奖励
	ListRows          int    `orm:"default(10);column(ListRows)"`                        //每页记录数
	Icp               string `orm:"default();column(Icp)"`                               //ICP备案
	DirtyWord         string `orm:"size(2048);default();column(DirtyWord)"`              //不良信息关键字
	TimeExpireRelate  int    `orm:"default(604800);column(TimeExpireRelate)"`            //相关资源过期更新的时间周期,0表示关闭相关资源
	TimeExpireHotspot int    `orm:"default(604800);column(TimeExpireHotspot)"`           //热门文档的时间范围
	MobileOn          bool   `orm:"default(true);column(MobileOn)"`                      //是否开启移动端
	TplMobile         string `orm:"default(default);column(TplMobile)"`                  //手机模板
	TplComputer       string `orm:"default(default);column(TplComputer)"`                //电脑端模板
	TplAdmin          string `orm:"default(default);column(TplAdmin)"`                   //后台模板
	TplEmailReg       string `orm:"size(2048);default();column(TplEmailReg)"`            //会员注册邮件验证码发送模板
	TplEmailFindPwd   string `orm:"size(2048);default();column(TplEmailFindPwd)"`        //会员找回密码邮件验证码发送模板
	DomainPc          string `orm:"size(100);default(dochub.me);column(DomainPc)"`       //PC域名
	DomainMobile      string `orm:"size(100);default(m.dochub.me);column(DomainMobile)"` //移动端域名
	PreviewPage       int    `orm:"default(50);column(PreviewPage)"`                     //文档共预览的最大页数,0表示不限制
	Trends            string `orm:"default();column(Trends)"`                            //文库动态,填写文档的id
	FreeDay           int    `orm:"default(7);column(FreeDay)"`                          //文档免费下载时长。即上次下载扣除金币后多长时间后下载需要收费。时间单位为天
	Question          string `orm:"default(DocHub文库的中文名是?);column(Question)"`            //评论问答问题
	Answer            string `orm:"default(多哈);column(Answer)"`                          //评论问答的问题
	CoinReg           int    `orm:"column(CoinReg);default(10)"`                         //用户注册奖励金币
	Watermark         string `orm:"column(Watermark);default()"`                         //水印文案
	ReportReasons     string `orm:"column(ReportReasons);default();size(2048)"`          //举报原因
	IsCloseReg        bool   `orm:"default(false);column(IsCloseReg)"`                   //是否关闭注册
	StoreType         string `orm:"default(cs-oss);column(StoreType);size(15)"`          //文档存储方式
	CheckRegEmail     bool   `orm:"default(true);column(CheckRegEmail);"`                //是否需要验证注册邮箱,如果需要验证注册邮箱,提要求发送注册验证码
	AllowRepeatedDoc  bool   `orm:"default(false);column(AllowRepeatedDoc)"`             //是否允许上传重复文档
	AutoSitemap       bool   `orm:"default(true);column(AutoSitemap)"`                   //每天凌晨自动更新站点地图
}

系统设置表

var (
	GlobalSys Sys //全局系统设置
)

以下是数据库全局数据变量

func NewSys

func NewSys() *Sys

func (*Sys) Get

func (this *Sys) Get() (sys Sys, err error)

获取系统配置信息。注意:系统配置信息的记录只有一条,而且id主键为1 @return sys 返回的系统信息 @return err 错误

func (*Sys) GetByField

func (this *Sys) GetByField(field string) (sys Sys)

获取指定指端内容 @param field 需要查询的字段 @return sys 系统配置信息

func (*Sys) GetReportReason

func (this *Sys) GetReportReason(num interface{}) (reason string)

根据序号获取举报原因

func (*Sys) GetReportReasons

func (this *Sys) GetReportReasons() (reasons map[string]string)

获取举报原因

func (*Sys) UpdateGlobalConfig

func (this *Sys) UpdateGlobalConfig()

更新系统全局变量 @return sys 返回的系统信息 @return err 错误

type User

type User struct {
	Id       int    `orm:"column(Id)"`
	Email    string `orm:"size(50);unique;column(Email);default();"` //邮箱
	Password string `orm:"size(32);column(Password)"`                //密码
	Username string `orm:"size(16);unique;column(Username)"`         //用户名
	Intro    string `orm:"size(255);default();column(Intro)"`        //个性签名
	Avatar   string `orm:"size(50);default();column(Avatar)"`        //会员头像
}

用户表

func NewUser

func NewUser() *User

func (*User) CanDownloadFile

func (this *User) CanDownloadFile(uid, docId int) (urlStr string, err error)

判断用户是否可以下载指定文档 err 为 nil 表示可以下载

func (*User) Fields

func (u *User) Fields() map[string]string

获取User表的字段

func (*User) GetById

func (this *User) GetById(id interface{}) (params orm.Params, rows int64, err error)

获取除了用户密码之外的用户全部信息 @param id 用户id @return params 用户信息 @return rows 记录数 @return err 错误

func (*User) GetUserField

func (u *User) GetUserField(cond *orm.Condition) (user User)

根据查询条件查询User表 @param cond *orm.Condition 查询条件 @return User 返回查询到的User数据

func (*User) Reg

func (u *User) Reg(email, username, password, repassword, intro string) (error, int)

用户注册 @param email string 邮箱 @param username string 用户名 @param password string 密码 @param repassword string 确认密码 @param intro string 签名 @return error 错误 @return int 注册成功时返回注册id

func (*User) UserInfo

func (u *User) UserInfo(uid interface{}) UserInfo

根据用户id获取用户info表的信息 @param uid interface{} 用户UID @return UserInfo 用户信息

func (*User) UserList

func (u *User) UserList(p, listRows int, orderby, fields, cond string, args ...interface{}) (params []orm.Params, totalRows int, err error)

根据条件查询用户信息,比如用户登录、用户列表等的获取也可以使用这个函数 @param p int 页码 @param listRows int 每页显示记录数 @param orderby string 排序,如"id desc" @param fields []string 需要查询的字段 @param cond string 查询条件 @param args ...interface{} 查询条件参数

type UserInfo

type UserInfo struct {
	Id         int  `orm:"auto;pk;column(Id)"`                //主键,也就是User表的Id
	Coin       int  `orm:"default(10);index;column(Coin)"`    //金币积分
	Document   int  `orm:"default(0);index;column(Document)"` //文档数量
	Collect    int  `orm:"default(0);column(Collect)"`        //收藏专辑数量,每个收藏专辑下面有文档
	TimeCreate int  `orm:"column(TimeCreate);default(0)"`     //用户注册时间
	Status     bool `orm:"column(Status);default(true)"`      //用户信息状态,false(即0)表示被禁用
}

用户信息表

func NewUserInfo

func NewUserInfo() *UserInfo

type Word

type Word struct {
	Id     int    `orm:"column(Id)"`
	Wd     string `orm:"column(Wd);size(20);unique"`       //关键字
	Cnt    int    `orm:"column(Cnt);default(0)"`           //统计
	Ids    string `orm:"column(Ids);default();type(text)"` //存在该关键字的文档id
	Status bool   `orm:"column(Status);default(true)"`     //bool值,默认该关键字合法,否则存在该关键字的都是不合法文档
}

关键字记录表,后期用这个来做相关资源功能

func NewWord

func NewWord() *Word

func (*Word) AddWords

func (this *Word) AddWords(wds string, id interface{})

添加关键字,多个关键字用英文逗号分隔

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL