// 删除userId分享给toUserId的所有 func (this *ShareService) DeleteUserShareNoteAndNotebook(userId, toUserId string) bool { query := bson.M{"UserId": bson.ObjectIdHex(userId), "ToUserId": bson.ObjectIdHex(toUserId)} db.DeleteAll(db.ShareNotebooks, query) db.DeleteAll(db.ShareNotes, query) db.DeleteAll(db.HasShareNotes, query) return true }
// 重新计算博客的标签 // 在设置设置/取消为博客时调用 func (this *BlogService) ReCountBlogTags(userId string) bool { // 得到所有博客 notes := []info.Note{} userIdO := bson.ObjectIdHex(userId) query := bson.M{"UserId": userIdO, "IsTrash": false, "IsBlog": true} db.ListByQWithFields(db.Notes, query, []string{"Tags"}, ¬es) db.DeleteAll(db.TagCounts, bson.M{"UserId": userIdO, "IsBlog": true}) if notes == nil || len(notes) == 0 { return true } // 统计所有的Tags和数目 tagsCount := map[string]int{} for _, note := range notes { tags := note.Tags if tags != nil && len(tags) > 0 { for _, tag := range tags { count := tagsCount[tag] count++ tagsCount[tag] = count } } } // 一个个插入 for tag, count := range tagsCount { db.Insert(db.TagCounts, info.TagCount{UserId: userIdO, IsBlog: true, Tag: tag, Count: count}) } return true }
func (this *EmailService) DeleteEmails(ids []string) bool { idsO := make([]bson.ObjectId, len(ids)) for i, id := range ids { idsO[i] = bson.ObjectIdHex(id) } db.DeleteAll(db.EmailLogs, bson.M{"_id": bson.M{"$in": idsO}}) return true }
// 删除分组 // 判断是否有好友 func (this *GroupService) DeleteGroup(userId, groupId string) (ok bool, msg string) { /* if db.Has(db.GroupUsers, bson.M{"GroupId": bson.ObjectIdHex(groupId)}) { return false, "groupHasUsers" } */ if !this.isMyGroup(userId, groupId) { return false, "notMyGroup" } // 删除分组后, 需要删除所有用户分享到该组的笔记本, 笔记 shareService.DeleteAllShareNotebookGroup(groupId) shareService.DeleteAllShareNoteGroup(groupId) db.DeleteAll(db.GroupUsers, bson.M{"GroupId": bson.ObjectIdHex(groupId)}) return db.DeleteByIdAndUserId(db.Groups, groupId, userId), "" // TODO 删除分组后, 在shareNote, shareNotebook中也要删除 }
// TODO 这个web可以用, 但api会传来, 不用用了 // 解析内容中的图片, 建立图片与note的关系 // <img src="/file/outputImage?fileId=12323232" /> // 图片必须是我的, 不然不添加 // imgSrc 防止博客修改了, 但内容删除了 func (this *NoteImageService) UpdateNoteImages(userId, noteId, imgSrc, content string) bool { // 让主图成为内容的一员 if imgSrc != "" { content = "<img src=\"" + imgSrc + "\" >" + content } // life 添加getImage reg, _ := regexp.Compile("(outputImage|getImage)\\?fileId=([a-z0-9A-Z]{24})") find := reg.FindAllStringSubmatch(content, -1) // 查找所有的 // 删除旧的 db.DeleteAll(db.NoteImages, bson.M{"NoteId": bson.ObjectIdHex(noteId)}) // 添加新的 var fileId string noteImage := info.NoteImage{NoteId: bson.ObjectIdHex(noteId)} hasAdded := make(map[string]bool) if find != nil && len(find) > 0 { for _, each := range find { if each != nil && len(each) == 3 { fileId = each[2] // 现在有两个子表达式了 // 之前没能添加过的 if _, ok := hasAdded[fileId]; !ok { Log(fileId) // 判断是否是我的文件 if fileService.IsMyFile(userId, fileId) { noteImage.ImageId = bson.ObjectIdHex(fileId) db.Insert(db.NoteImages, noteImage) } hasAdded[fileId] = true } } } } return true }
// 删除share notebook func (this *ShareService) DeleteShareNotebook(notebookId string, userId, toUserId string) bool { return db.DeleteAll(db.ShareNotebooks, bson.M{"NotebookId": bson.ObjectIdHex(notebookId), "UserId": bson.ObjectIdHex(userId), "ToUserId": bson.ObjectIdHex(toUserId)}) }