WH01243 4 years ago
parent
commit
cc8cb0cc8b
2 changed files with 79 additions and 3 deletions
  1. 3 2
      rpc/userlib/userlib.proto
  2. 76 1
      services/userlib/userDocService.go

+ 3 - 2
rpc/userlib/userlib.proto

@@ -76,8 +76,9 @@ enum UserDocStatus {
     PermanentlyDelete =2;//永久删除
 }
 message mergeInfo{
-    string  messageUser;//合并用户
-    string  mergedUser;//被合并用户
+      mergeUser=1;//合并用户
+      mergedUser=2;//被合并用户
+      appId=3;//身份标识
 }
 message userDocs {
     int64   CreateAt=1;//创建时间

+ 76 - 1
services/userlib/userDocService.go

@@ -396,4 +396,79 @@ func InterfaceLog(in *model.InterfaceLog) bool {
 		return false
 	}
 	return true
-}
+}
+//文档收藏
+func UserMerge(mergeUser,mergedUser string) bool {
+
+	log.Println("UserMerge exec ......")
+	orm := docRpcUtil.GetJyDocsDB()
+
+	docData := model.UserDocData{}
+	err := orm.Transaction(func(tx *gorm.DB) error {
+		err0 := orm.Select("id,userId,docId,isCollection,isDownload").
+			Where("userId = ? AND appId = ?", userDoc.UserId, userDoc.DocId,userDoc.AppId).
+			Find(&docData).Error
+		if err0 != nil {
+			log.Println("查询已存在收藏记录失败")
+			return errors.New("查询已存在收藏记录失败")
+		}
+		//已收藏数据处理
+		if docData.IsCollection == 1 {
+			log.Println("此文档,该用户已收藏,不可重复收藏")
+			return errors.New("此文档,该用户已收藏,不可重复收藏")
+		}
+		//查询文档基础信息
+		doc := model.Doc{}
+		err0 = orm.Where("id = ?", userDoc.DocId).
+			Find(&doc).Error
+		if err0 != nil || doc.Id == "" {
+			log.Println("文档不存在")
+			return errors.New("文档不存在")
+		}
+		userDoc.DocSourceUserId = doc.UserId
+		userDoc.DocCategory = 2
+		userDoc.IsDelete = int(userlib.UserDocStatus_Normal)
+		userDoc.DocName = doc.DocName
+		userDoc.DocFileType = doc.DocFileType
+		userDoc.DocFileSuffix = doc.DocFileSuffix
+		userDoc.DocFileSize = doc.DocFileSize
+		userDoc.DocPageSize = doc.DocPageSize
+		userDoc.DocSummary = doc.DocSummary
+		userDoc.IsCollection = 1
+		userDoc.Cost = fmt.Sprint(doc.Price)
+		//已取消收藏,再次进行收藏
+		if docData.IsCollection == 0 && docData.UserId != "" {
+			err := orm.Exec("UPDATE user_doc SET isCollection = 1 WHERE id = ?", docData.Id).Error
+			if err != nil {
+				log.Println("文档再次收藏失败")
+				tx.Rollback()
+				return err
+			}
+			//无收藏记录,新增收藏
+		} else {
+			//用户文库表添加记录(需要检查是否重复)
+			timeData := time.Now()
+			userDoc.CreateAt = timeData
+			userDoc.UpdateAt = timeData
+			userDoc.DeletedAt = timeData
+			err := orm.Create(userDoc).Error
+			if err != nil {
+				log.Println("userDocCollect error:", err)
+				tx.Rollback()
+				return err
+			}
+		}
+		//用户收藏、兑换记录表添加记录
+		err := orm.Exec("insert into download_collection_record (docId,userId,appId,sourceUserId,category,cost) values (?,?,?,?,?,?)", userDoc.DocId, userDoc.UserId, userDoc.AppId, userDoc.DocSourceUserId, 2, doc.Price).Error
+		if err != nil {
+			log.Println("userDocCollect record insert error:", err)
+			tx.Rollback()
+			return err
+		}
+		return err
+	})
+	if err != nil {
+		return false
+	}
+	return true
+}