MCPcopy Index your code
hub / github.com/TruthHun/BookStack / ThoroughDeleteBook

Method ThoroughDeleteBook

models/book.go:306–392  ·  view source on GitHub ↗

彻底删除书籍.

(id int)

Source from the content-addressed store, hash-verified

304
305// 彻底删除书籍.
306func (m *Book) ThoroughDeleteBook(id int) (err error) {
307 if id <= 0 {
308 return ErrInvalidParameter
309 }
310
311 o := orm.NewOrm()
312
313 m.BookId = id
314 if err = o.Read(m); err != nil {
315 return err
316 }
317
318 var (
319 docs []Document
320 docId []string
321 )
322
323 o.QueryTable(new(Document)).Filter("book_id", id).Limit(10000).All(&docs, "document_id")
324 if len(docs) > 0 {
325 for _, doc := range docs {
326 docId = append(docId, strconv.Itoa(doc.DocumentId))
327 }
328 }
329
330 o.Begin()
331
332 //删除md_document_store中的文档
333 if len(docId) > 0 {
334 sql1 := fmt.Sprintf("delete from md_document_store where document_id in(%v)", strings.Join(docId, ","))
335 if _, err1 := o.Raw(sql1).Exec(); err1 != nil {
336 o.Rollback()
337 return err1
338 }
339 }
340
341 sql2 := "DELETE FROM " + NewDocument().TableNameWithPrefix() + " WHERE book_id = ?"
342 _, err = o.Raw(sql2, m.BookId).Exec()
343 if err != nil {
344 o.Rollback()
345 return err
346 }
347 sql3 := "DELETE FROM " + m.TableNameWithPrefix() + " WHERE book_id = ?"
348
349 _, err = o.Raw(sql3, m.BookId).Exec()
350 if err != nil {
351 o.Rollback()
352 return err
353 }
354
355 sql4 := "DELETE FROM " + NewRelationship().TableNameWithPrefix() + " WHERE book_id = ?"
356 _, err = o.Raw(sql4, m.BookId).Exec()
357
358 if err != nil {
359 o.Rollback()
360 return err
361 }
362
363 if m.Label != "" {

Callers 2

DeleteBookMethod · 0.95
DeleteMethod · 0.80

Calls 12

TableNameWithPrefixMethod · 0.95
DeleteByDocumentIdMethod · 0.95
NewDocumentFunction · 0.85
NewRelationshipFunction · 0.85
NewLabelFunction · 0.85
NewDocumentHistoryFunction · 0.85
InsertOrUpdateMultiMethod · 0.80
DelFromFolderMethod · 0.80
DelOssFolderMethod · 0.80
appendFunction · 0.50
ReadMethod · 0.45
AllMethod · 0.45

Tested by

no test coverage detected