package info import ( "gopkg.in/mgo.v2/bson" "time" ) // 在数据库中每个 // 修改字段必须要在NotebookService中修改ParseAndSortNotebooks(没有匿名字段), 以后重构 type Notebook struct { NotebookId bson.ObjectId `bson:"_id,omitempty"` // 必须要设置bson:"_id" 不然mgo不会认为是主键 UserId bson.ObjectId `bson:"UserId"` ParentNotebookId bson.ObjectId `bson:"ParentNotebookId,omitempty"` // 上级 Seq int `Seq` // 排序 Title string `Title` // 标题 UrlTitle string `UrlTitle` // Url标题 2014/11.11加 NumberNotes int `NumberNotes` // 笔记数 IsTrash bool `IsTrash,omitempty` // 是否是trash, 默认是false IsBlog bool `IsBlog,omitempty` // 是否是Blog 2013/12/29 新加 CreatedTime time.Time `CreatedTime,omitempty` UpdatedTime time.Time `UpdatedTime,omitempty` // 2015/1/15, 更新序号 Usn int `Usn` // UpdateSequenceNum IsDeleted bool `IsDeleted` } // 仅仅是为了返回前台 type SubNotebooks []*Notebooks // 存地址, 为了生成tree type Notebooks struct { Notebook Subs SubNotebooks // 子notebook 在数据库中是没有的 } // SubNotebook sort func (this SubNotebooks) Len() int { return len(this) } func (this SubNotebooks) Less(i, j int) bool { return (*this[i]).Seq < (*this[j]).Seq } func (this SubNotebooks) Swap(i, j int) { this[i], this[j] = this[j], this[i] } /* 修改方案, 因为要共享notebook的问题, 所以还是每个notebook一条记录 { notebookId, title, seq, parentNoteBookId, // 上级 userId } 得到所有该用户的notebook, 然后组装成tree返回之 更新顺序 添加notebook 更新notebook 删除notebook */