WH01243 4 years ago
parent
commit
18a83eb5ab

+ 13 - 6
rpc/userlib/internal/logic/usermergelogic.go

@@ -1,11 +1,10 @@
 package logic
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/internal/svc"
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
+	userLibService "app.yhyue.com/moapp/jy_docs/services/userlib"
 	"context"
-
-	"jy_docs/rpc/userlib/internal/svc"
-	"jy_docs/rpc/userlib/userlib"
-
 	"github.com/tal-tech/go-zero/core/logx"
 )
 
@@ -25,6 +24,14 @@ func NewUserMergeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserMer
 
 func (l *UserMergeLogic) UserMerge(in *userlib.MergeInfo) (*userlib.UserCollectResponse, error) {
 	// todo: add your logic here and delete this line
-
-	return &userlib.UserCollectResponse{}, nil
+	result := &userlib.UserCollectResponse{}
+	 code,msg := userLibService.UserMerge(in.MergeUser,in.MergedUser,in.AppId)
+	if code {
+		result.Code = 1
+		result.Message = msg
+		return result, nil
+	}
+	result.Code = 0
+	result.Message = msg
+	return result, nil
 }

+ 3 - 3
rpc/userlib/internal/server/userlibserver.go

@@ -6,9 +6,9 @@ package server
 import (
 	"context"
 
-	"jy_docs/rpc/userlib/internal/logic"
-	"jy_docs/rpc/userlib/internal/svc"
-	"jy_docs/rpc/userlib/userlib"
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/internal/logic"
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/internal/svc"
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
 )
 
 type UserLibServer struct {

+ 22 - 4
rpc/userlib/test/userLib_test.go

@@ -19,8 +19,8 @@ func Test_UserDocCollect(t *testing.T) {
 	})
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocCollect(context.Background(), &userlibclient.UserCollectRequest{
-		DocId:  "010ef774-888c-11eb-8699-0050568f51e7",
-		UserId: "5d6378301c298a5aac7b5402",
+		DocId:  "0002bef6-8e6d-11eb-8419-0050568f1307",
+		UserId: "456",
 		AppId:  "10000",
 	})
 	if err != nil {
@@ -141,8 +141,8 @@ func Test_UserDocDwnload(t *testing.T) {
 	})
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocDownload(context.Background(), &userlibclient.UserCollectRequest{
-		DocId:  "123",
-		UserId: "wh8",
+		DocId:  "010ef774-888c-11eb-8699-0050568f51e7",
+		UserId: "456",
 		Cost:   1000,
 		AppId:  "10000",
 	})
@@ -151,3 +151,21 @@ func Test_UserDocDwnload(t *testing.T) {
 	}
 	log.Print("UserDoc Collect call response:", resp.Message, resp.Code)
 }
+//账号合并
+func Test_MergeUser(t *testing.T) {
+	client := zrpc.MustNewClient(zrpc.RpcClientConf{
+		Etcd: discov.EtcdConf{
+			Hosts: []string{"127.0.0.1:2380"},
+			Key:   "jydocs.userlib.rpc",
+		},
+	})
+	userLib := userlibclient.NewUserLib(client)
+	resp, err := userLib.UserMerge(context.Background(), &userlibclient.MergeInfo{
+		MergeUser:  "123",
+		MergedUser: "456",
+		AppId:  "10000",})
+	if err != nil {
+		log.Println("UserDoc Collect call error:", err)
+	}
+	log.Print("UserDoc Collect call response:", resp.Message, resp.Code)
+}

+ 1 - 2
rpc/userlib/userlibclient/userlib.go

@@ -6,10 +6,9 @@
 package userlibclient
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib"
 	"context"
 
-	"jy_docs/rpc/userlib/userlib"
-
 	"github.com/tal-tech/go-zero/zrpc"
 )
 

+ 29 - 31
services/userlib/userDocService.go

@@ -18,7 +18,7 @@ func UserDocCollect(userDoc *model.UserDoc) bool {
 	docData := model.UserDocData{}
 	err := orm.Transaction(func(tx *gorm.DB) error {
 		err0 := orm.Select("id,userId,docId,isCollection").
-			Where("userId = ? AND docId = ? AND appId = ?", userDoc.UserId, userDoc.DocId,userDoc.AppId).
+			Where("userId = ? AND docId = ? AND appId = ?", userDoc.UserId, userDoc.DocId, userDoc.AppId).
 			Find(&docData).Error
 		if err0 != nil {
 			log.Println("查询已存在收藏记录失败")
@@ -56,7 +56,7 @@ func UserDocCollect(userDoc *model.UserDoc) bool {
 				tx.Rollback()
 				return err
 			}
-		//无收藏记录,新增收藏
+			//无收藏记录,新增收藏
 		} else {
 			//用户文库表添加记录(需要检查是否重复)
 			timeData := time.Now()
@@ -86,14 +86,14 @@ func UserDocCollect(userDoc *model.UserDoc) bool {
 }
 
 //文档取消收藏
-func UserDocCancelCollect(docId, userId,appId string) bool {
+func UserDocCancelCollect(docId, userId, appId string) bool {
 	orm := docRpcUtil.GetJyDocsDB()
 	err := orm.Transaction(func(tx *gorm.DB) error {
 		//收藏记录详情
 		userDoc := model.UserDoc{}
-		err := orm.Where("docId = ? AND userId = ? AND appId = ? AND isCollection = 1", docId,userId,appId).
+		err := orm.Where("docId = ? AND userId = ? AND appId = ? AND isCollection = 1", docId, userId, appId).
 			Find(&userDoc).Error
-		if err != nil || userDoc.ID == 0{
+		if err != nil || userDoc.ID == 0 {
 			log.Println("无此收藏记录,取消收藏失败", err)
 			return errors.New("无此收藏记录,取消收藏失败")
 		}
@@ -223,7 +223,7 @@ func UserDocDownload(userDoc *model.UserDoc, cost int) (bool, string) {
 			userDoc.DocFileSize = doc.DocFileSize
 			userDoc.DocPageSize = doc.DocPageSize
 			userDoc.DocSummary = doc.DocSummary
-			userDoc.Cost=fmt.Sprint(doc.Price)
+			userDoc.Cost = fmt.Sprint(doc.Price)
 			err = docRpcUtil.GetJyDocsDB().Create(userDoc)
 			if err.Error != nil {
 				log.Println("兑换操作添加失败:", err)
@@ -249,11 +249,11 @@ func UserDocDownload(userDoc *model.UserDoc, cost int) (bool, string) {
 }
 
 //文档删除
-func UserDocDelete(userDocId int32,appId, userId string) (bool, string) {
+func UserDocDelete(userDocId int32, appId, userId string) (bool, string) {
 	msg := "文档删除成功"
 	err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
 		//逻辑删除
-		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? WHERE docId = ? and  userId=? and appId=?", model.UserDocStatus_LogicDelete, userDocId,userId,appId).Error
+		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? WHERE docId = ? and  userId=? and appId=?", model.UserDocStatus_LogicDelete, userDocId, userId, appId).Error
 		if err != nil {
 			msg = "文档删除失败"
 			log.Println("文档删除失败:", err)
@@ -261,7 +261,7 @@ func UserDocDelete(userDocId int32,appId, userId string) (bool, string) {
 			return err
 		}
 		//删除记录新增
-		err = docRpcUtil.GetJyDocsDB().Exec("insert into del_record (docId, userId, date, operate, appId) values (?,?,?,?,?)",userDocId, userId, time.Now(), 1, appId).Error
+		err = docRpcUtil.GetJyDocsDB().Exec("insert into del_record (docId, userId, date, operate, appId) values (?,?,?,?,?)", userDocId, userId, time.Now(), 1, appId).Error
 		if err != nil {
 			tx.Rollback()
 			msg = "删除记录新增失败"
@@ -278,11 +278,11 @@ func UserDocDelete(userDocId int32,appId, userId string) (bool, string) {
 }
 
 //文档回收
-func UserDocRestore(userDocId int32,appId ,userId string) (bool, string) {
+func UserDocRestore(userDocId int32, appId, userId string) (bool, string) {
 	msg := "文档找回成功"
 	err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
 		//逻辑删除
-		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? WHERE docId = ? and  userId=? and  appId=?", model.UserDocStatus_Normal, userDocId,userId,appId).Error
+		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? WHERE docId = ? and  userId=? and  appId=?", model.UserDocStatus_Normal, userDocId, userId, appId).Error
 		if err != nil {
 			msg = "文档找回失败"
 			log.Println("文档找回失败:", err)
@@ -305,11 +305,11 @@ func UserDocRestore(userDocId int32,appId ,userId string) (bool, string) {
 	return true, msg
 
 } //永久删除
-func UserDocPermanentDelete(userDocId int32,appId ,userId string) (bool, string) {
+func UserDocPermanentDelete(userDocId int32, appId, userId string) (bool, string) {
 	msg := "永久删除成功"
 	err := docRpcUtil.GetJyDocsDB().Transaction(func(tx *gorm.DB) error {
 		//逻辑删除
-		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? ,isDownload=0 WHERE docId = ? and  userId=? and  appId=?", model.UserDocStatus_PermanentlyDelete, userDocId,userId,appId).Error
+		err := docRpcUtil.GetJyDocsDB().Exec("UPDATE user_doc SET isDelete = ? ,isDownload=0 WHERE docId = ? and  userId=? and  appId=?", model.UserDocStatus_PermanentlyDelete, userDocId, userId, appId).Error
 		if err != nil {
 			msg = "永久删除失败"
 			log.Println("永久删除失败:", err)
@@ -397,16 +397,17 @@ func InterfaceLog(in *model.InterfaceLog) bool {
 	}
 	return true
 }
+
 //账号合并
-func UserMerge(mergeUser,mergedUser,appId string) bool {
+func UserMerge(mergeUser, mergedUser, appId string) (bool, string) {
 	log.Println("UserMerge exec ......")
 	orm := docRpcUtil.GetJyDocsDB()
 	docData := []model.UserDoc{}
-	msg:=""
+	msg := ""
 	//先查询被合并账号所有信息
 	err := orm.Transaction(func(tx *gorm.DB) error {
 		err0 := orm.Select("*").
-			Where("userId = ? AND appId = ?", mergedUser,appId).Find(&docData).Error
+			Where("userId = ? AND appId = ?", mergedUser, appId).Find(&docData).Error
 		if err0 != nil {
 			log.Println("查询被合并账号失败")
 			return errors.New("查询被合并账号失败")
@@ -415,21 +416,21 @@ func UserMerge(mergeUser,mergedUser,appId string) bool {
 		for _, value := range docData {
 			//1先判断有没有老数据是否需要新增
 			mergeUserDocData := model.UserDocData{}
-			err :=orm.Table("user_doc").Where(" userId=? and docId=?  appId=? ",mergeUser, value.DocId, appId).Find(&mergeUserDocData)
+			err := orm.Table("user_doc").Where(" userId=? and docId=? and  appId=? ", mergeUser, value.DocId, appId).Find(&mergeUserDocData)
 			if err.Error != nil {
 				log.Printf("查询,userId:[%s],docId:[%s] 失败", mergeUser, value.DocId)
 				msg = "查询用户信息失败"
 				return err.Error
 			}
-			if mergeUserDocData.IsCollection == 0 && mergeUserDocData.UserId != "" {
+			if  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.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
@@ -438,13 +439,13 @@ func UserMerge(mergeUser,mergedUser,appId string) bool {
 				userDoc.DocPageSize = value.DocPageSize
 				userDoc.DocSummary = value.DocSummary
 				userDoc.IsCollection = value.IsCollection
-				userDoc.IsDownload=value.IsDownload
+				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
+				err := orm.Create(&userDoc).Error
 				if err != nil {
 					log.Println("userDocCollect error:", err)
 					tx.Rollback()
@@ -452,10 +453,7 @@ func UserMerge(mergeUser,mergedUser,appId string) bool {
 				}
 				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)
+			err = orm.Exec("UPDATE user_doc SET isCollection = ?,isDelete=? , isDownload=?  ,update_at=?,cost=? WHERE id = ?", value.IsCollection, model.UserDocCategory_SelfUpload, value.IsDownload,time.Now().Local(), value.Cost,mergeUserDocData.Id)
 			if err.Error != nil {
 				log.Println("文档合并失败")
 				tx.Rollback()
@@ -465,7 +463,7 @@ func UserMerge(mergeUser,mergedUser,appId string) bool {
 		return nil
 	})
 	if err != nil {
-		return false
+		return false, "合并失败"
 	}
-	return true
+	return true, "合并成功"
 }