WH01243 4 سال پیش
والد
کامیت
d91d8e3fd8
2فایلهای تغییر یافته به همراه58 افزوده شده و 60 حذف شده
  1. 1 0
      services/model/stdlib.go
  2. 57 60
      services/userlib/userDocService.go

+ 1 - 0
services/model/stdlib.go

@@ -89,6 +89,7 @@ type UserDocData struct {
 	DocId        string `json:"doc_id" gorm:"column:docId"`
 	IsCollection int    `json:"is_collection" gorm:"column:isCollection"`
 	IsDelete     int    `json:"is_delete" gorm:"column:isDelete"`
+	IsDownload   int    `json:"is_download" gorm:"column:isDownload"`
 }
 
 func (ud *UserDocData) TableName() string {

+ 57 - 60
services/userlib/userDocService.go

@@ -397,75 +397,72 @@ func InterfaceLog(in *model.InterfaceLog) bool {
 	}
 	return true
 }
-//文档收藏
-func UserMerge(mergeUser,mergedUser string) bool {
-
+//账号合并
+func UserMerge(mergeUser,mergedUser,appId string) bool {
 	log.Println("UserMerge exec ......")
 	orm := docRpcUtil.GetJyDocsDB()
-
-	docData := model.UserDocData{}
+	docData := []model.UserDoc{}
+	msg:=""
+	//先查询被合并账号所有信息
 	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
+		err0 := orm.Select("*").
+			Where("userId = ? AND appId = ?", mergedUser,appId).Find(&docData).Error
 		if err0 != nil {
-			log.Println("查询已存在收藏记录失败")
-			return errors.New("查询已存在收藏记录失败")
-		}
-		//已收藏数据处理
-		if docData.IsCollection == 1 {
-			log.Println("此文档,该用户已收藏,不可重复收藏")
-			return errors.New("此文档,该用户已收藏,不可重复收藏")
+			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
+		//处理每一条数据
+		for _, value := range docData {
+			//1先判断有没有老数据是否需要新增
+			mergeUserDocData := model.UserDocData{}
+			err :=orm.Table("user_doc").Where(" userId=? and docId=?  appId=? ",mergeUser, value.DocId, appId).Find(&mergeUserDocData)
+			if err.Error != nil {
+				log.Printf("查询,userId:[%s],docId:[%s] 失败", mergeUser, value.DocId)
+				msg = "查询用户信息失败"
+				return err.Error
 			}
-			//无收藏记录,新增收藏
-		} 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)
+			if mergeUserDocData.IsCollection == 0 && mergeUserDocData.UserId != "" {
+				userDoc := model.UserDoc{}
+				userDoc.DocSourceUserId = value.DocSourceUserId
+				userDoc.DocCategory = 2
+				userDoc.UserId=mergeUser
+				userDoc.DocId=value.DocId
+				userDoc.AppId=value.AppId
+				userDoc.PreviewImgId=value.PreviewImgId
+				userDoc.PreviewImgUrl=value.PreviewImgUrl
+				userDoc.IsDelete = int(userlib.UserDocStatus_Normal)
+				userDoc.DocName = value.DocName
+				userDoc.DocFileType = value.DocFileType
+				userDoc.DocFileSuffix = value.DocFileSuffix
+				userDoc.DocFileSize = value.DocFileSize
+				userDoc.DocPageSize = value.DocPageSize
+				userDoc.DocSummary = value.DocSummary
+				userDoc.IsCollection = value.IsCollection
+				userDoc.IsDownload=value.IsDownload
+				userDoc.Cost = value.Cost
+				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
+				}
+				return nil
+			}
+			mergeUserDocData.IsCollection=value.IsCollection
+			mergeUserDocData.IsDelete=model.UserDocCategory_SelfUpload
+			mergeUserDocData.IsDownload=value.IsDownload
+			err= orm.Exec("UPDATE user_doc SET isCollection = ?,isDelete=? , isDonnload=? WHERE id = ?",value.IsCollection,model.UserDocCategory_SelfUpload,value.IsDownload, value.Id)
+			if err.Error != nil {
+				log.Println("文档合并失败")
 				tx.Rollback()
-				return err
+				return err.Error
 			}
 		}
-		//用户收藏、兑换记录表添加记录
-		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
+		return nil
 	})
 	if err != nil {
 		return false