|
@@ -13,22 +13,72 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+//文档收藏
|
|
|
func UserDocCollect(userDoc *model.UserDoc, cost int) bool {
|
|
|
log.Println("UserDocCollect exec ......")
|
|
|
- err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
|
|
|
- //用户文库表添加记录(需要检查是否重复)
|
|
|
- err := docRpcUtil.GetJyDocsDB().Create(userDoc).Error
|
|
|
- if err != nil {
|
|
|
- log.Println("userDocCollect error:", err)
|
|
|
- tx.Rollback()
|
|
|
- return err
|
|
|
+ orm := docRpcUtil.GetJyDocsDB()
|
|
|
+ docData := model.UserDocData{}
|
|
|
+ err := orm.Transaction(func(tx *gorm.DB) error {
|
|
|
+ err0 := orm.Select("id,userId,docId,docCategory,isDelete").
|
|
|
+ Where("userId = ? AND docId = ? AND (isDelete = 0 OR isDelete = 1)",userDoc.UserId,userDoc.DocId).
|
|
|
+ Find(&docData)
|
|
|
+ if err0.Error != nil {
|
|
|
+ log.Println("查询已存在收藏记录失败")
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ //已下载数据处理
|
|
|
+ if docData.DocCategory == 1 {
|
|
|
+ log.Println("该文档已下载,无法收藏")
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ //已收藏数据处理
|
|
|
+ if docData.IsDelete == 0 && docData.UserId != "" {
|
|
|
+ log.Println("此文档,该用户已收藏,不可重复收藏")
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ //已取消收藏,再次进行收藏
|
|
|
+ if docData.IsDelete == 1 && docData.UserId != "" {
|
|
|
+ err := orm.Exec("UPDATE user_doc SET isDelete = 0 WHERE id = ?",docData.Id).Error
|
|
|
+ if err != nil {
|
|
|
+ log.Println("文档再次收藏失败")
|
|
|
+ tx.Rollback()
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ //无收藏记录,新增收藏
|
|
|
+ }else{
|
|
|
+ //用户文库表添加记录(需要检查是否重复)
|
|
|
+ err := docRpcUtil.GetJyDocsDB().Create(userDoc).Error
|
|
|
+ if err != nil {
|
|
|
+ log.Println("userDocCollect error:", err)
|
|
|
+ tx.Rollback()
|
|
|
+ return nil
|
|
|
+ }
|
|
|
}
|
|
|
//用户收藏、转存记录表添加记录
|
|
|
- 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
|
|
|
+ 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
|
|
|
if err != nil {
|
|
|
log.Println("userDocCollect record insert error:", err)
|
|
|
tx.Rollback()
|
|
|
- return err
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+}
|
|
|
+
|
|
|
+//文档取消收藏
|
|
|
+func UserDocCancelCollect(userDocId string) bool {
|
|
|
+ orm := docRpcUtil.GetJyDocsDB()
|
|
|
+ err := orm.Transaction(func(tx *gorm.DB) error {
|
|
|
+ err := orm.Exec("UPDATE user_doc SET isDelete = 1 WHERE id = ?",userDocId).Error
|
|
|
+ if err != nil {
|
|
|
+ log.Println("文档取消收藏失败")
|
|
|
+ tx.Rollback()
|
|
|
+ return nil
|
|
|
}
|
|
|
return nil
|
|
|
})
|