瀏覽代碼

实现用户组

Minho 7 年之前
父節點
當前提交
d2f882eff6
共有 5 個文件被更改,包括 232 次插入2 次删除
  1. 39 0
      controllers/ManagerController.go
  2. 116 0
      models/MemberGroupMembers.go
  3. 68 0
      models/MemberGroupModel.go
  4. 1 1
      static/js/markdown.js
  5. 8 1
      static/js/quill.js

+ 39 - 0
controllers/ManagerController.go

@@ -721,3 +721,42 @@ func (c *ManagerController) LabelDelete() {
 		c.JsonResult(0, "ok")
 	}
 }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 116 - 0
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
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 68 - 0
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
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 1 - 1
static/js/markdown.js

@@ -155,7 +155,7 @@ $(function () {
                 if(res.data.is_lock){
                     node.type = "lock";
                     node.text = node.text + "<span class='lock-text'> [锁定]</span>";
-                    // window.editor.config('readOnly',true);
+                     window.editor.config('readOnly',true);
                 }else{
                     node.type = "unlock";
                     window.editor.config('readOnly',false);

+ 8 - 1
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 + "<span class='lock-text'> [锁定]</span>";
+                }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;