2017-04-21 18:20:35 +08:00
|
|
|
|
package models
|
|
|
|
|
|
2017-04-22 17:24:17 +08:00
|
|
|
|
import (
|
|
|
|
|
"github.com/lifei6671/godoc/conf"
|
|
|
|
|
"github.com/astaxie/beego/orm"
|
|
|
|
|
)
|
|
|
|
|
|
2017-04-21 18:20:35 +08:00
|
|
|
|
type Relationship struct {
|
|
|
|
|
RelationshipId int `orm:"pk;auto;unique;column(relationship_id)" json:"relationship_id"`
|
|
|
|
|
MemberId int `orm:"column(member_id);type(int)" json:"member_id"`
|
|
|
|
|
BookId int `orm:"column(book_id);type(int)" json:"book_id"`
|
|
|
|
|
// RoleId 角色:0 创始人(创始人不能被移除) / 1 管理员/2 编辑者/3 观察者
|
|
|
|
|
RoleId int `orm:"column(role_id);type(int)" json:"role_id"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TableName 获取对应数据库表名.
|
|
|
|
|
func (m *Relationship) TableName() string {
|
|
|
|
|
return "relationship"
|
|
|
|
|
}
|
2017-04-22 17:24:17 +08:00
|
|
|
|
func (m *Relationship) TableNameWithPrefix() string {
|
|
|
|
|
return conf.GetDatabasePrefix() + m.TableName()
|
|
|
|
|
}
|
|
|
|
|
|
2017-04-21 18:20:35 +08:00
|
|
|
|
// TableEngine 获取数据使用的引擎.
|
|
|
|
|
func (m *Relationship) TableEngine() string {
|
|
|
|
|
return "INNODB"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 联合唯一键
|
|
|
|
|
func (u *Relationship) TableUnique() [][]string {
|
|
|
|
|
return [][]string{
|
|
|
|
|
[]string{"MemberId", "BookId"},
|
|
|
|
|
}
|
2017-04-22 17:24:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewRelationship() *Relationship {
|
|
|
|
|
return &Relationship{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Relationship) FindForRoleId(book_id ,member_id int) (int,error) {
|
|
|
|
|
o := orm.NewOrm()
|
|
|
|
|
|
|
|
|
|
relationship := NewRelationship()
|
|
|
|
|
|
|
|
|
|
err := o.QueryTable(m.TableNameWithPrefix()).Filter("book_id",book_id).Filter("member_id",member_id).One(relationship)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
return 0,err
|
|
|
|
|
}
|
|
|
|
|
return relationship.RoleId,nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Relationship) Insert() error {
|
|
|
|
|
o := orm.NewOrm()
|
|
|
|
|
|
|
|
|
|
_,err := o.Insert(m)
|
|
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Relationship) Update() error {
|
|
|
|
|
o := orm.NewOrm()
|
|
|
|
|
|
|
|
|
|
_,err := o.Update(m)
|
|
|
|
|
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|