446 Star 3.2K Fork 1.2K

GVP进击的皇虫/BookStack

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
member_result.go 2.55 KB
一键复制 编辑 原始数据 按行查看 历史
TruthHun 提交于 8年前 . 假装第一次提交
package models
import (
"time"
"github.com/TruthHun/BookStack/conf"
"github.com/astaxie/beego/orm"
)
type MemberRelationshipResult struct {
MemberId int `json:"member_id"`
Account string `json:"account"`
Description string `json:"description"`
Email string `json:"email"`
Phone string `json:"phone"`
Avatar string `json:"avatar"`
Role int `json:"role"` //用户角色:0 管理员/ 1 普通用户
Status int `json:"status"` //用户状态:0 正常/1 禁用
CreateTime time.Time `json:"create_time"`
CreateAt int `json:"create_at"`
RelationshipId int `json:"relationship_id"`
BookId int `json:"book_id"`
// RoleId 角色:0 创始人(创始人不能被移除) / 1 管理员/2 编辑者/3 观察者
RoleId int `json:"role_id"`
RoleName string `json:"role_name"`
}
func NewMemberRelationshipResult() *MemberRelationshipResult {
return &MemberRelationshipResult{}
}
func (m *MemberRelationshipResult) FromMember(member *Member) *MemberRelationshipResult {
m.MemberId = member.MemberId
m.Account = member.Account
m.Description = member.Description
m.Email = member.Email
m.Phone = member.Phone
m.Avatar = member.Avatar
m.Role = member.Role
m.Status = member.Status
m.CreateTime = member.CreateTime
m.CreateAt = member.CreateAt
return m
}
func (m *MemberRelationshipResult) ResolveRoleName() *MemberRelationshipResult {
if m.RoleId == conf.BookAdmin {
m.RoleName = "管理者"
} else if m.RoleId == conf.BookEditor {
m.RoleName = "编辑者"
} else if m.RoleId == conf.BookObserver {
m.RoleName = "观察者"
}
return m
}
func (m *MemberRelationshipResult) FindForUsersByBookId(book_id, pageIndex, pageSize int) ([]*MemberRelationshipResult, int, error) {
o := orm.NewOrm()
var members []*MemberRelationshipResult
sql1 := "SELECT * FROM md_relationship AS rel LEFT JOIN md_members as member ON rel.member_id = member.member_id WHERE rel.book_id = ? ORDER BY rel.relationship_id DESC LIMIT ?,?"
sql2 := "SELECT count(*) AS total_count FROM md_relationship AS rel LEFT JOIN md_members as member ON rel.member_id = member.member_id WHERE rel.book_id = ?"
var total_count int
err := o.Raw(sql2, book_id).QueryRow(&total_count)
if err != nil {
return members, 0, err
}
offset := (pageIndex - 1) * pageSize
_, err = o.Raw(sql1, book_id, offset, pageSize).QueryRows(&members)
if err != nil {
return members, 0, err
}
for _, item := range members {
item.ResolveRoleName()
}
return members, total_count, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/truthhun/BookStack.git
git@gitee.com:truthhun/BookStack.git
truthhun
BookStack
BookStack
v1.3.1

搜索帮助