docChangeService.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package stdlib
  2. import (
  3. "errors"
  4. "time"
  5. jyDocsRpcUtil "app.yhyue.com/moapp/jydocs/services/util"
  6. "gorm.io/gorm"
  7. )
  8. const DocOn = 1
  9. const DocOff = 0
  10. // 上架文档
  11. func ChangeDocumentOn(id string, reason int32) error {
  12. // 查文档
  13. docData := map[string]interface{}{}
  14. rs := jyDocsRpcUtil.GetJyDocsDB().Table("doc").Where("id=? and isDelete=0", id).Find(&docData)
  15. if rs.Error != nil {
  16. return rs.Error
  17. } else {
  18. if docData["id"] == nil {
  19. return errors.New("文档不存在")
  20. }
  21. }
  22. // 上架
  23. err := jyDocsRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
  24. // 更新大库状态为上架 1-上架
  25. if err := tx.Exec("update doc set downOrUp=? where id=? ", DocOn, id).Error; err != nil {
  26. return err
  27. }
  28. // 存上架记录
  29. date := time.Now().Local().Format("2006-01-02 15:04:05")
  30. if err := tx.Exec("insert into doc_change_record (docId,date,downOrUp,reason) values (?,?,?,?)", id, date, DocOn, reason).Error; err != nil {
  31. return err
  32. }
  33. // todo es加数据
  34. //if rs := elastic.Save("index", "doc", docData); rs != true {
  35. // return errors.New("发布到检索库失败")
  36. //}
  37. return nil
  38. })
  39. return err
  40. }
  41. // 下架文档
  42. func ChangeDocumentOff(id string, reason int32) error {
  43. // 查文档
  44. docData := map[string]interface{}{}
  45. rs := jyDocsRpcUtil.GetJyDocsDB().Table("doc").Where("id=? and isDelete=0", id).Find(&docData)
  46. if rs.Error != nil {
  47. return rs.Error
  48. } else {
  49. if docData["id"] == nil {
  50. return errors.New("文档不存在")
  51. }
  52. }
  53. // 下架
  54. err := jyDocsRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
  55. // 更新大库状态为下架 0-下架
  56. if err := tx.Exec("update doc set downOrUp=? where id=? ", DocOff, id).Error; err != nil {
  57. return err
  58. }
  59. // 存下架记录
  60. date := time.Now().Local().Format("2006-01-02 15:04:05")
  61. if err := tx.Exec("insert into doc_change_record (docId,date,downOrUp,reason) values (?,?,?,?)", id, date, DocOff, reason).Error; err != nil {
  62. return err
  63. }
  64. //todo 从es删除数据
  65. //if rs := elastic.DelById("index", "doc", id); rs != true {
  66. // return errors.New("从检索库删除失败")
  67. //}
  68. return nil
  69. })
  70. return err
  71. }