userDocService.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package userlib
  2. import (
  3. "app.yhyue.com/moapp/jyPoints/rpc/integralclient"
  4. "app.yhyue.com/moapp/jy_docs/services/model"
  5. docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
  6. "app.yhyue.com/moapp/jydocs/services/model"
  7. docRpcUtil "app.yhyue.com/moapp/jydocs/services/util"
  8. "gorm.io/gorm"
  9. "log"
  10. "time"
  11. )
  12. func UserDocCollect(userDoc *model.UserDoc, cost int) bool {
  13. log.Println("UserDocCollect exec ......")
  14. err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
  15. //用户文库表添加记录(需要检查是否重复)
  16. err := docRpcUtil.GetJyDocsDB().Create(userDoc).Error
  17. if err != nil {
  18. log.Println("userDocCollect error:", err)
  19. tx.Rollback()
  20. return err
  21. }
  22. //用户收藏、转存记录表添加记录
  23. err = docRpcUtil.GetJyDocsDB().Exec("insert into download_collection_record (docId,userId,sourceUserId,category,cost) values (?,?,?,?,?)", userDoc.DocId, userDoc.UserId, userDoc.DocSourceUserId, userDoc.DocCategory, cost).Error
  24. if err != nil {
  25. log.Println("userDocCollect record insert error:", err)
  26. tx.Rollback()
  27. return err
  28. }
  29. return nil
  30. })
  31. if err != nil {
  32. return false
  33. }
  34. return true
  35. }
  36. //转存操作
  37. func UserDocDownload(userDoc *model.UserDoc, cost int) bool {
  38. log.Println("UserDocCollect exec ......")
  39. err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
  40. //用户文库表添加记录
  41. //获取文档有关信息
  42. //查询之前有无下载记录 0和1只要有一条不能下载,如果有未删除可以下载
  43. userDocDownloadList := []model.UserDoc{}
  44. err := docRpcUtil.GetJyDocsDB().Table("user_doc").Where(" userId=? and docId=? and docCategory=? and (isDelete=? or isDelete=?)", userDoc.UserId, userDoc.DocId, model.UserDocCategory_Download, model.UserDocStatus_Normal, model.UserDocStatus_LogicDelete).Find(&userDocDownloadList)
  45. if err.Error != nil {
  46. return err.Error
  47. }
  48. if len(userDocDownloadList) > 0 {
  49. return nil
  50. }
  51. //先扣除积分
  52. //rpc
  53. /* ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
  54. FileSystem := integralclient.NewIntegral(zrpc.MustNewClient(c.FileSystemConf))
  55. req := &integral.Req{UserId: "111111", PointType: 2003, BusinessTypeId: 1, BusinessType: "1", Point: 110, EndDate: "2021-03-11", AppId: 10000}
  56. res, err := FileSystem.IntegralConsume(ctx, req)
  57. log.Println("err ", err)
  58. log.Println("req ", res)*/
  59. //查询之前有无收藏记录 有收藏记录类型改为下载,状态改为未删除、有收藏记录插入一条新纪录
  60. userDocCollectionList := []model.UserDoc{}
  61. err = docRpcUtil.GetJyDocsDB().Table("user_doc").Where(" userId=? and docId=? and docCategory=? and (isDelete=? or isDelete=?)", userDoc.UserId, userDoc.DocId, model.UserDocCategory_Collect, model.UserDocStatus_Normal, model.UserDocStatus_LogicDelete).Find(&userDocCollectionList)
  62. if err.Error != nil {
  63. return err.Error
  64. }
  65. if len(userDocCollectionList) > 0 {
  66. //修改收藏为下载
  67. if err := tx.Exec("update user_doc set docCategory=? , isDelete=? ,update_at=? where id =?", model.UserDocCategory_Download, model.UserDocStatus_Normal, time.Now(), userDocCollectionList[0].ID).Error; err != nil {
  68. return err
  69. }
  70. if err.Error != nil {
  71. log.Println("userDocCollect error:", err)
  72. tx.Rollback()
  73. return err.Error
  74. }
  75. //用户收藏、转存记录表添加记录
  76. err := docRpcUtil.GetJyDocsDB().Exec("insert into download_collection_record (docId,userId,sourceUserId,category,cost,date) values (?,?,?,?,?,?)", userDoc.DocId, userDoc.UserId, userDoc.DocSourceUserId, model.UserDocCategory_Download, cost, time.Now())
  77. if err.Error != nil {
  78. log.Println("userDocCollect record insert error:", err)
  79. tx.Rollback()
  80. return nil
  81. }
  82. } else {
  83. //用户文库表添加记录
  84. userDoc.CreateAt = time.Now()
  85. userDoc.UpdateAt = time.Now()
  86. userDoc.DeletedAt = time.Now()
  87. err = docRpcUtil.GetJyDocsDB().Create(userDoc)
  88. if err.Error != nil {
  89. log.Println("userDocCollect error:", err)
  90. tx.Rollback()
  91. return err.Error
  92. }
  93. //用户收藏、转存记录表添加记录
  94. err := docRpcUtil.GetJyDocsDB().Exec("insert into download_collection_record (docId,userId,sourceUserId,category,cost,date) values (?,?,?,?,?,?)", userDoc.DocId, userDoc.UserId, userDoc.DocSourceUserId, model.UserDocCategory_Download, cost, time.Now())
  95. if err.Error != nil {
  96. log.Println("userDocCollect record insert error:", err)
  97. tx.Rollback()
  98. return nil
  99. }
  100. }
  101. return nil
  102. })
  103. if err != nil {
  104. return false
  105. }
  106. return true
  107. }
  108. func UserDocDelete(docId string) bool {
  109. err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
  110. orm := docRpcUtil.GetJyDocsDB()
  111. docData := model.UserDoc{}
  112. //查询用户文档详情
  113. orm.Select("userId,docId").First(&docData, docId)
  114. log.Println(docData.UserId)
  115. log.Println(docData.DocId)
  116. //逻辑删除
  117. err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = 1 WHERE id = ?", docId).Error
  118. if err != nil {
  119. tx.Rollback()
  120. return err
  121. }
  122. //删除记录
  123. err = docRpcUtil.GetJyDocsDB().Exec("insert into del_record (docId, userId, date, operate, viewType, source, shareUserId) values (?,?,?,?,?,?,?)", docId, docData.UserId, time.Now(), 1, 1, 1, 1).Error
  124. if err != nil {
  125. tx.Rollback()
  126. return err
  127. }
  128. return nil
  129. })
  130. if err != nil {
  131. return false
  132. }
  133. return true
  134. }