models

package
v0.0.0-...-fcb87a8 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package models 模型

Index

Constants

View Source
const (
	//CounterKeyUserID 用户ID的计数器key
	CounterKeyUserID = "users.id"
	//CounterKeyForumID 板块ID的计数器key
	CounterKeyForumID = "forums.id"
	//CounterKeyForumZoneID 板块分区ID的计数器key
	CounterKeyForumZoneID = "forum_zones.id"
	//CounterKeyForumRewardRuleID 板块奖励规则ID的计数器key
	CounterKeyForumRewardRuleID = "forum_reward_rules.id"
	//CounterKeyForumTreeID 板块结构树记录ID的计数器key
	CounterKeyForumTreeID = "forum_trees.id"
	//CounterKeyGroupUserID 组用户记录ID的计数器key
	CounterKeyGroupUserID = "group_users.id"
)

计数器Key定义

View Source
const (
	GroupTypeUser  //用户组
	GroupTypeAdmin //管理组
)

组类型定义

View Source
const (
	GroupIDGuest            //游客
	GroupIDLoggedInUser     //已登录用户
	GroupIDForumBannedUser  //板块黑名单用户
	GroupIDForumAdmin       //版主
	GroupIDForumZoneAdmin   //分区版主
	GroupIDForumGlobalAdmin //全局版主
	GroupIDSuperAdmin       //超级管理员
)

内置组ID定义

View Source
const (
	PermissionViewForum          //浏览板块
	PermissionDisableViewForum   //禁止浏览板块
	PermissionViewTopic          //查看帖子
	PermissionDisableViewTopic   //禁止查看帖子
	PermissionPostTopic          //发表帖子
	PermissionDisablePostTopic   //禁止发表帖子
	PermissionPostReply          //发表回帖
	PermissionDisablePostReply   //禁止发表回帖
	PermissionUpdateTopic        //修改自己的帖子
	PermissionDisableUpdateTopic //禁止修改自己的帖子
	PermissionUpdateReply        //修改自己的回帖
	PermissionDisableUpdateReply //禁止修改自己的回帖
	PermissionLockTopic          //锁定自己的帖子
	PermissionDisableLockTopic   //禁止锁定自己的帖子
)

用户权限定义

View Source
const (
	PermissionAdminSiteBackend     //管理网站后台
	PermissionAdminForum           //管理板块
	PermissionAdminTopic           //管理帖子
	PermissionAdminReply           //管理回帖
	PermissionAdminUpdateTopic     //管理员修改帖子
	PermissionAdminUpdateReply     //管理员修改回帖
	PermissionAdminGoodTopic       //设置帖子为精华帖
	PermissionAdminCancelGoodTopic //取消精华帖
	PermissionAdminTopTopic        //顶置帖子
	PermissionAdminCancelTopTopic  //取消顶置帖子
	PermissionAdminLockTopic       //锁定帖子
	PermissionAdminUnlockTopic     //解锁帖子
	PermissionAdminBlockTopic      //屏蔽帖子
	PermissionAdminUnblockTopic    //取消屏蔽帖子
	PermissionAdminBlockReply      //屏蔽回帖
	PermissionAdminUnblockReply    //取消屏蔽回帖
	PermissionAdminDeleteTopic     //删除帖子
	PermissionAdminUnDeleteTopic   //取消删除帖子
	PermissionAdminDeleteReply     //删除回帖
	PermissionAdminUnDeleteReply   //取消删除回帖
)

管理权限定义

View Source
const SessionLocalKey = "session"

SessionLocalKey 在middleware中传递的session对象的key

Variables

This section is empty.

Functions

This section is empty.

Types

type Counter

type Counter struct {
	ID        string `bson:"_id"`        //计数键名
	ItemValue int64  `bson:"item_value"` //值
}

Counter 计数器

type Forum

type Forum struct {
	ID                    int64     `bson:"_id"`           //板块ID
	ForumZoneID           int64     `bson:"forum_zone_id"` //分区ID
	Name                  string    //名称
	Description           string    //描述
	IsRoot                bool      `bson:"is_root"`                  //是否为顶级板块
	ForumRewardRuleID     int64     `bson:"forum_reward_rule_id"`     //板块奖励规则ID
	ForumPermissionRuleID int64     `bson:"forum_permission_rule_id"` //板块权限规则ID
	OrderID               int       `bson:"order_id"`                 //排序
	CreatedAt             time.Time `bson:"created_at"`               //创建时间
	UpdatedAt             time.Time `bson:"updated_at"`               //最后更新时间
}

Forum 板块

func (*Forum) SetID

func (f *Forum) SetID(value int64)

SetID 设置ID

type ForumPermissionRule

type ForumPermissionRule struct {
	ID        int64     `bson:"_id"` //规则ID
	Name      string    //规则名称
	CreatedAt time.Time `bson:"created_at"` //创建时间
	UpdatedAt time.Time `bson:"updated_at"` //最后更新时间
}

ForumPermissionRule 板块权限规则

type ForumPermissionRuleDetail

type ForumPermissionRuleDetail struct {
	ID                    int64     `bson:"_id"`
	ForumPermissionRuleID int64     `bson:"forum_permission_rule_id"` //规则ID
	GroupID               int       `bson:"group_id"`                 //组ID
	PermissionID          int       `bson:"permission_id"`            //组拥有的权限ID
	CreatedAt             time.Time `bson:"created_at"`               //创建时间
	UpdatedAt             time.Time `bson:"updated_at"`               //最后更新时间
}

ForumPermissionRuleDetail 板块权限规则配置明显

type ForumRewardRule

type ForumRewardRule struct {
	ID   int64  `bson:"_id"` //规则ID
	Name string //规则名称

	CoinPost  int `bson:"coin_post"`  //发表主题帖金币奖励
	ExpPost   int `bson:"exp_post"`   //发表主题帖经验奖励
	CoinReply int `bson:"coin_reply"` //发表回复金币奖励
	ExpReply  int `bson:"exp_reply"`  //发表回复经验奖励

	CoinGoodTopic       int `bson:"coin_good_topic"`        //帖子被设置为精华时的金币奖励
	ExpGoodTopic        int `bson:"exp_good_topic"`         //帖子被设置为精华时的经验奖励
	CoinCancelGoodTopic int `bson:"coin_cancel_good_topic"` //帖子被取消精华时损失的金币
	ExpCancelGoodTopic  int `bson:"exp_cancel_good_topic"`  //帖子被取消精华时损失的经验

	CoinTopTopic       int `bson:"coin_top_topic"`        //帖子被顶置时的金币奖励
	ExpTopTopic        int `bson:"exp_top_topic"`         //帖子被顶置时的经验奖励
	CoinCancelTopTopic int `bson:"coin_cancel_top_topic"` //帖子被取消顶置时损失的金币
	ExpCancelTopTopic  int `bson:"exp_cancel_top_topic"`  //帖子被取消顶置时损失的经验

	CoinLockTopic   int `bson:"coin_lock_topic"`   //帖子被锁定时损失的金币
	ExpLockTopic    int `bson:"exp_lock_topic"`    //帖子被锁定时损失的经验值
	CoinUnlockTopic int `bson:"coin_unlock_topic"` //帖子被解锁时奖励的金币
	ExpUnlockTopic  int `bson:"exp_unlock_topic"`  //帖子被解锁时奖励的经验值

	CoinBlockTopic   int `bson:"coin_block_topic"`   //帖子被屏蔽时损失的金币
	ExpBlockTopic    int `bson:"exp_block_topic"`    //帖子被屏蔽时损失的经验值
	CoinUnblockTopic int `bson:"coin_unblock_topic"` //帖子被解除屏蔽时奖励的金币
	ExpUnblockTopic  int `bson:"exp_unblock_topic"`  //帖子被解除屏蔽时奖励的经验值

	CoinBlockReply   int `bson:"coin_block_reply"`   //回复被屏蔽时损失的金币
	ExpBlockReply    int `bson:"exp_block_reply"`    //回复被屏蔽时损失的经验值
	CoinUnblockReply int `bson:"coin_unblock_reply"` //回复被解除屏蔽时奖励的金币
	ExpUnblockReply  int `bson:"exp_unblock_reply"`  //回复被解除屏蔽时奖励的经验值

	CoinDeleteTopic   int `bson:"coin_delete_topic"`    //帖子被删除时损失的金币
	ExpDeleteTopic    int `bson:"exp_delete_topic"`     //帖子被删除时损失的经验值
	CoinUnDeleteTopic int `bson:"coin_un_delete_topic"` //帖子被恢复时奖励的金币
	ExpUnDeleteTopic  int `bson:"exp_un_delete_topic"`  //帖子被恢复时奖励的经验值

	CoinDeleteReply   int `bson:"coin_delete_reply"`    //回复被删除时损失的金币
	ExpDeleteReply    int `bson:"exp_delete_reply"`     //回复被删除时损失的经验值
	CoinUnDeleteReply int `bson:"coin_un_delete_reply"` //回复被恢复时奖励的金币
	ExpUnDeleteReply  int `bson:"exp_un_delete_reply"`  //回复被恢复时奖励的经验值

	CreatedAt time.Time `bson:"created_at"` //创建时间
	UpdatedAt time.Time `bson:"updated_at"` //最后更新时间
}

ForumRewardRule 板块奖励、惩罚规则

func (*ForumRewardRule) SetID

func (f *ForumRewardRule) SetID(value int64)

SetID 设置ID

type ForumTree

type ForumTree struct {
	ID         int64     `bson:"_id"`
	ForumID    int64     `bson:"forum_id"`     //板块ID
	SubForumID int64     `bson:"sub_forum_id"` //子版块ID
	Depth      int       //深度
	CreatedAt  time.Time `bson:"created_at"` //创建时间
	UpdatedAt  time.Time `bson:"updated_at"` //最后更新时间
}

ForumTree 板块树结构

func (*ForumTree) SetID

func (f *ForumTree) SetID(value int64)

SetID 设置ID

type ForumZone

type ForumZone struct {
	ID          int64     `bson:"_id"` //分区ID
	Name        string    //名称
	Description string    //描述
	OrderID     int       `bson:"order_id"`   //排序
	CreatedAt   time.Time `bson:"created_at"` //创建时间
	UpdatedAt   time.Time `bson:"updated_at"` //最后更新时间
}

ForumZone 板块分区

func (*ForumZone) SetID

func (f *ForumZone) SetID(value int64)

SetID 设置ID

type Group

type Group struct {
	ID        int    `bson:"_id"`        //ID
	GroupName string `bson:"group_name"` //名称
	GroupType int    `bson:"group_type"` //组类型
}

Group 系统内置用户组

type GroupUser

type GroupUser struct {
	ID        int64     `bson:"_id"`
	UserID    int64     `bson:"user_id"`    //用户ID
	GroupID   int       `bson:"group_id"`   //组ID
	TargetID  int64     `bson:"target_id"`  //关联目标ID(分区ID、板块ID、或者全局0)
	CreatedAt time.Time `bson:"created_at"` //创建时间
	UpdatedAt time.Time `bson:"updated_at"` //最后更新时间
	ExpiredAt time.Time `bson:"expired_at"` //过期时间
}

GroupUser 组中的用户记录

func (*GroupUser) SetID

func (g *GroupUser) SetID(value int64)

SetID 设置ID

type Permission

type Permission struct {
	ID          int    `bson:"_id"`        //ID
	GroupType   int    `bson:"group_type"` //组类型
	Name        string //名称
	Description string //说明
}

Permission 权限定义

type Session

type Session struct {
	ID string `bson:"_id"` //会话唯一标识

	UserID    int64             `bson:"user_id"` //用户ID
	Data      map[string]string //会话数据
	ClientIP  string            `bson:"client_ip"`  //创建会话时的IP地址
	CreatedAt time.Time         `bson:"created_at"` //创建时间
	UpdatedAt time.Time         `bson:"updated_at"` //最后更新时间
	ExpiredAt time.Time         `bson:"expired_at"` //会话过期时间
	// contains filtered or unexported fields
}

Session 会话

func NewSession

func NewSession() *Session

NewSession 初始化一个新的会话对象

func (*Session) Exists

func (s *Session) Exists() bool

Exists 会话是否已存在于数据库

func (*Session) IsGuest

func (s *Session) IsGuest() bool

IsGuest 判断当前是否为游客身份

func (*Session) SetExists

func (s *Session) SetExists(p bool)

SetExists 标记为已存在于数据库

type User

type User struct {
	ID             int64     `bson:"_id"` //用户ID
	Username       string    //用户名
	Nickname       string    //昵称
	Avatar         string    //头像
	Password       string    //已加密的密码
	Salt           string    //加密参数
	EmailVerified  bool      `bson:"email_verified"`  //邮箱是否已验证
	MobileVerified bool      `bson:"mobile_verified"` //手机号是否已验证
	RegisterIP     string    `bson:"register_ip"`     //注册时的IP
	LastLoginIP    string    `bson:"last_login_ip"`   //最后登录时的IP
	LastLoginAt    time.Time `bson:"last_login_at"`   //最后登录时间
	CreatedAt      time.Time `bson:"created_at"`      //注册时间
	UpdatedAt      time.Time `bson:"updated_at"`      //最后更新时间
}

User 用户

func (*User) CheckPassword

func (s *User) CheckPassword(inputText string) bool

CheckPassword 判断输入的密码是否正确

func (*User) GenerateSalt

func (s *User) GenerateSalt() (string, error)

GenerateSalt 随机生成salt

func (*User) SetID

func (s *User) SetID(value int64)

SetID 设置ID

func (*User) SetPassword

func (s *User) SetPassword(plainText string)

SetPassword 设置密码

Jump to

Keyboard shortcuts

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