diff --git a/controllers/ManagerController.go b/controllers/ManagerController.go index e1bdf6b2..2ec82038 100644 --- a/controllers/ManagerController.go +++ b/controllers/ManagerController.go @@ -721,3 +721,42 @@ func (c *ManagerController) LabelDelete() { c.JsonResult(0, "ok") } } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/models/MemberGroupMembers.go b/models/MemberGroupMembers.go new file mode 100644 index 00000000..a92715bb --- /dev/null +++ b/models/MemberGroupMembers.go @@ -0,0 +1,116 @@ +package models + +import ( + "github.com/lifei6671/mindoc/conf" + "time" + "github.com/astaxie/beego/orm" + "github.com/astaxie/beego" +) + +type MemberGroupMembers struct { + GroupMemberId int `orm:"column(group_member_id);pk;auto;unique;" json:"group_member_id"` + MemberId int `orm:"column(member_id);index" json:"member_id"` + GroupId int `orm:"column(group_id);index" json:"group_id"` + CreateTime time.Time `orm:"type(datetime);column(create_time);auto_now_add" json:"create_time"` + CreateAt int `orm:"type(int);column(create_at)" json:"create_at"` +} + +type MemberGroupMemberResult struct { + GroupMemberId int + MemberId int + Account string + RealName string + Avatar string + GroupId int + CreateTime time.Time + CreateAt int +} + +// TableName 获取对应数据库表名. +func (m *MemberGroupMembers) TableName() string { + return "member_group_members" +} + +// TableEngine 获取数据使用的引擎. +func (m *MemberGroupMembers) TableEngine() string { + return "INNODB" +} + +func (m *MemberGroupMembers) TableNameWithPrefix() string { + return conf.GetDatabasePrefix() + m.TableName() +} + +// 多字段唯一键 +func (u *MemberGroupMembers) TableUnique() [][]string { + return [][]string{ + {"member_id", "group_id"}, + } +} + +func NewMemberGroupMembers() *MemberGroupMembers { + return &MemberGroupMembers{} +} + +// 查询用户组成员 +func (m *MemberGroupMembers) FindByGroupId(groupId int) ([]*MemberGroupMemberResult,error) { + o := orm.NewOrm() + var groupMembers []*MemberGroupMemberResult + _,err := o.QueryTable(m.TableNameWithPrefix()).Filter("group_id",groupId).All(&groupMembers); + if err != nil { + beego.Error("获取用户组成员出错 =>",err) + return nil,err + } + ids := make([]int,0) + + for _,member := range groupMembers { + ids = append(ids,member.MemberId) + } + + var members []*Member + + _,err = o.QueryTable(NewMember().TableNameWithPrefix()).Filter("member_id__in",ids).All(&members) + if err != nil { + beego.Error("获取用户组成员出错 =>",err) + return nil,err + } + for _,member := range members { + for _,groupMember := range groupMembers { + if groupMember.MemberId == member.MemberId { + groupMember.Account = member.Account + groupMember.Avatar = member.Avatar + groupMember.RealName = member.RealName + } + } + } + return groupMembers,nil +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/models/MemberGroupModel.go b/models/MemberGroupModel.go new file mode 100644 index 00000000..3d9044c6 --- /dev/null +++ b/models/MemberGroupModel.go @@ -0,0 +1,68 @@ +package models + +import ( + "time" + "github.com/lifei6671/mindoc/conf" + "github.com/astaxie/beego/orm" + "github.com/astaxie/beego" +) + +type MemberGroup struct { + GroupId int `orm:"column(group_id);pk;auto;unique;" json:"group_id"` + GroupName string `orm:"column(group_name);size(255);" json:"group_name"` + GroupNumber int `orm:"column(group_number);" json:"group_number"` + CreateTime time.Time `orm:"type(datetime);column(create_time);auto_now_add" json:"create_time"` + CreateAt int `orm:"type(int);column(create_at)" json:"create_at"` + ModifyTime time.Time `orm:"column(modify_time);type(datetime);auto_now" json:"modify_time"` + ModifyAt int `orm:"column(modify_at);type(int)" json:"-"` +} + + + +// TableName 获取对应数据库表名. +func (m *MemberGroup) TableName() string { + return "member_group" +} + +// TableEngine 获取数据使用的引擎. +func (m *MemberGroup) TableEngine() string { + return "INNODB" +} + +func (m *MemberGroup) TableNameWithPrefix() string { + return conf.GetDatabasePrefix() + m.TableName() +} + +func NewMemberGroup() *MemberGroup { + return &MemberGroup{} +} + +//根据id查询用户组 +func (m *MemberGroup) FindFirst(id int) (*MemberGroup,error){ + o := orm.NewOrm() + + if err :=o.QueryTable(m.TableNameWithPrefix()).Filter("group_id",id).One(m); err != nil { + beego.Error("查询用户组时出错 =>",err) + return m,err + } + return m,nil +} + + + + + + + + + + + + + + + + + + + diff --git a/static/js/markdown.js b/static/js/markdown.js index 3eab5150..fccf96d1 100644 --- a/static/js/markdown.js +++ b/static/js/markdown.js @@ -155,7 +155,7 @@ $(function () { if(res.data.is_lock){ node.type = "lock"; node.text = node.text + " [锁定]"; - // window.editor.config('readOnly',true); + window.editor.config('readOnly',true); }else{ node.type = "unlock"; window.editor.config('readOnly',false); diff --git a/static/js/quill.js b/static/js/quill.js index 039c0196..3e8d7aae 100644 --- a/static/js/quill.js +++ b/static/js/quill.js @@ -128,10 +128,17 @@ $(function () { if(res.errcode === 0){ window.isLoad = true; window.editor.root.innerHTML = res.data.content; + var node = { "id" : res.data.doc_id,'parent' : res.data.parent_id === 0 ? '#' : res.data.parent_id ,"text" : res.data.doc_name,"identify" : res.data.identify,"version" : res.data.version}; + + if(res.data.is_lock){ + node.type = "lock"; + node.text = node.text + " [锁定]"; + }else{ + node.type = "unlock"; + } // 将原始内容备份 window.source = res.data.content; - var node = { "id" : res.data.doc_id,'parent' : res.data.parent_id === 0 ? '#' : res.data.parent_id ,"text" : res.data.doc_name,"identify" : res.data.identify,"version" : res.data.version}; pushDocumentCategory(node); window.selectNode = node; window.isLoad = true;