删除收藏夹,当收藏夹里面收藏的文档不为空时,不允许删除 @param id 收藏夹id @param uid 用户id @return err 错误,如果错误为nil,则表示删除成功,否则删除失败
(id, uid int)
| 74 | //@param uid 用户id |
| 75 | //@return err 错误,如果错误为nil,则表示删除成功,否则删除失败 |
| 76 | func (this *Collect) DelFolder(id, uid int) (err error) { |
| 77 | //查询判断收藏夹是否是当前用户的收藏夹 |
| 78 | var ( |
| 79 | cf = CollectFolder{Id: id} |
| 80 | o = orm.NewOrm() |
| 81 | ) |
| 82 | err = o.Read(&cf) |
| 83 | if err != nil { |
| 84 | return |
| 85 | } |
| 86 | |
| 87 | if cf.Uid != uid { |
| 88 | return |
| 89 | } |
| 90 | |
| 91 | if cf.Cnt > 0 { |
| 92 | err = errors.New("收藏夹删除失败:您要删除的收藏夹不为空") |
| 93 | return |
| 94 | } |
| 95 | |
| 96 | o.Begin() |
| 97 | defer func() { |
| 98 | if err != nil { |
| 99 | o.Rollback() |
| 100 | } |
| 101 | |
| 102 | o.Commit() |
| 103 | |
| 104 | if len(cf.Cover) > 0 { |
| 105 | if cs, errCS := NewCloudStore(false); errCS != nil { |
| 106 | helper.Logger.Error(errCS.Error()) |
| 107 | } else { |
| 108 | go cs.Delete(cf.Cover) |
| 109 | } |
| 110 | } |
| 111 | |
| 112 | }() |
| 113 | |
| 114 | if _, err = o.Delete(&cf, "Id"); err != nil { |
| 115 | return |
| 116 | } |
| 117 | |
| 118 | sql := "update `%v` set `Collect`=`Collect`-1 where `Collect`>0 AND Id = ?" |
| 119 | _, err = o.Raw(sql, GetTableUserInfo(), uid).Exec() |
| 120 | |
| 121 | return |
| 122 | } |
| 123 | |
| 124 | //删除指定的文档收藏,比如某文档是侵权或者非法,则凡是收藏了该文档的用户,该文档收藏都将被删除 |
| 125 | //@param dids 文档id |
no test coverage detected