李哲 4 年之前
父节点
当前提交
19b812edf8

+ 3 - 2
rpc/userlib/internal/logic/doccollectlogic.go

@@ -30,8 +30,9 @@ func (l *DocCollectLogic) DocCollect(in *userlib.UserCollectRequest) (*userlib.U
 	// todo: add your logic here and delete this line
 	b := userLibService.UserDocCollect(
 		&model.UserDoc{
-			UserId:          in.UserId,
-			DocId:           in.DocId,
+			UserId: in.UserId,
+			DocId:  in.DocId,
+			AppId:  in.AppId,
 		}, int(in.Cost))
 	log.Printf("用户文档收藏,userId:[%s],docId:[%s] 是否成功:[%v]", in.UserId, in.DocId, b)
 	return &userlib.UserCollectResponse{

+ 21 - 16
rpc/userlib/test/userLib_test.go

@@ -19,9 +19,10 @@ func Test_UserDocCollect(t *testing.T) {
 	})
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocCollect(context.Background(), &userlibclient.UserCollectRequest{
-		DocId:        "1",
-		UserId:       "1",
-		Cost: 0,
+		DocId:  "1",
+		UserId: "2",
+		AppId:  10000,
+		Cost:   0,
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
@@ -39,15 +40,16 @@ func Test_UserCancelDocCollect(t *testing.T) {
 	})
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocCancelCollect(context.Background(), &userlibclient.UserDeleteRequest{
-		DocId:        "7",
+		DocId: "3",
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
 	}
 	log.Print("UserDoc Collect call response:", resp)
 }
+
 //下载删除
-func Test_UserDocDelete(t *testing.T)  {
+func Test_UserDocDelete(t *testing.T) {
 	client := zrpc.MustNewClient(zrpc.RpcClientConf{
 		Etcd: discov.EtcdConf{
 			Hosts: []string{"127.0.0.1:2380"},
@@ -57,15 +59,16 @@ func Test_UserDocDelete(t *testing.T)  {
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocDelete(context.Background(), &userlibclient.UserRecoveryRequest{
 		UserDocId: int32(10),
-		AppId:int64(10000),
+		AppId:     int64(10000),
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
 	}
 	log.Print("UserDoc Collect call response:", resp)
 }
+
 //删除找回
-func Test_UserDocRestore(t *testing.T)  {
+func Test_UserDocRestore(t *testing.T) {
 	client := zrpc.MustNewClient(zrpc.RpcClientConf{
 		Etcd: discov.EtcdConf{
 			Hosts: []string{"127.0.0.1:2380"},
@@ -75,15 +78,16 @@ func Test_UserDocRestore(t *testing.T)  {
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocRestore(context.Background(), &userlibclient.UserRecoveryRequest{
 		UserDocId: int32(10),
-		AppId:int64(10000),
+		AppId:     int64(10000),
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
 	}
 	log.Print("UserDoc Collect call response:", resp)
 }
+
 //永久删除
-func Test_UserDocPermanentDelete(t *testing.T)  {
+func Test_UserDocPermanentDelete(t *testing.T) {
 	client := zrpc.MustNewClient(zrpc.RpcClientConf{
 		Etcd: discov.EtcdConf{
 			Hosts: []string{"127.0.0.1:2380"},
@@ -93,13 +97,14 @@ func Test_UserDocPermanentDelete(t *testing.T)  {
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocPermanentDelete(context.Background(), &userlibclient.UserRecoveryRequest{
 		UserDocId: int32(10),
-		AppId:int64(10000),
+		AppId:     int64(10000),
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
 	}
 	log.Print("UserDoc Collect call response:", resp)
 }
+
 //用户转存单元测试
 func Test_UserDocDwnload(t *testing.T) {
 	client := zrpc.MustNewClient(zrpc.RpcClientConf{
@@ -110,13 +115,13 @@ func Test_UserDocDwnload(t *testing.T) {
 	})
 	userLib := userlibclient.NewUserLib(client)
 	resp, err := userLib.DocDownload(context.Background(), &userlibclient.UserCollectRequest{
-		DocId:        "123",
-		UserId:       "wh5",
-		Cost:1000,
-		AppId:int64(10000),
+		DocId:  "123",
+		UserId: "wh5",
+		Cost:   1000,
+		AppId:  int64(10000),
 	})
 	if err != nil {
 		log.Println("UserDoc Collect call error:", err)
 	}
-	log.Print("UserDoc Collect call response:", resp.Message,resp.Code)
-}
+	log.Print("UserDoc Collect call response:", resp.Message, resp.Code)
+}

+ 0 - 2
rpc/userlib/userlib.go

@@ -19,8 +19,6 @@ import (
 var configFile = flag.String("f", "etc/userlib.yaml", "the config file")
 func main() {
 	flag.Parse()
-
-
 	conf.MustLoad(*configFile, &config.Configs)
 	if config.Configs.JyDocsMysqlDB.DataSourceName != "" {
 		jyDocsRpcUtil.InitDB(config.Configs.JyDocsMysqlDB.DataSourceName, config.Configs.JyDocsMysqlDB.DriverName, config.Configs.JyDocsMysqlDB.MaxOpenConn, config.Configs.JyDocsMysqlDB.MaxIdleConn)

+ 1 - 1
services/model/stdlib.go

@@ -78,7 +78,7 @@ type UserDocData struct {
 	Id          string `json:"id"`
 	UserId      string `json:"user_id"  gorm:"column:userId"`
 	DocId       string `json:"doc_id" gorm:"column:docId"`
-	DocCategory int    `json:"doc_category" gorm:"column:docCategory"`
+	IsCollection int    `json:"is_collection" gorm:"column:isCollection"`
 	IsDelete    int    `json:"is_delete" gorm:"column:isDelete"`
 }
 

+ 42 - 31
services/userlib/userDocService.go

@@ -16,56 +16,51 @@ func UserDocCollect(userDoc *model.UserDoc, cost int) bool {
 	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).
+		err0 := orm.Select("id,userId,docId,isCollection").
+			Where("userId = ? AND docId = ? AND appId = ?", userDoc.UserId, userDoc.DocId,userDoc.AppId).
 			Find(&docData).Error
 		if err0 != nil {
 			log.Println("查询已存在收藏记录失败")
 			return err0
 		}
-		//已下载数据处理
-		if docData.DocCategory == 1 {
-			log.Println("该文档已下载,无法收藏")
-			return err0
-		}
-
 		//已收藏数据处理
-		if docData.IsDelete == 0 && docData.UserId != "" {
+		if docData.IsCollection == 1 {
 			log.Println("此文档,该用户已收藏,不可重复收藏")
 			return err0
 		}
+		//查询文档基础信息
+		doc := model.Doc{}
+		err0 = orm.Where("id = ?", userDoc.DocId).
+			Find(&doc).Error
+		if err0 != nil || doc.Id == "" {
+			log.Println("文档不存在", err0)
+			return err0
+		}
+		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
 		//已取消收藏,再次进行收藏
-		if docData.IsDelete == 1 && docData.UserId != "" {
-			err := orm.Exec("UPDATE user_doc SET isDelete = 0 WHERE id = ?", docData.Id).Error
+		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
-			//查询文档基础信息
-			doc := model.Doc{}
-			err0 := orm.Where("id = ?", userDoc.DocId).
-				Find(&doc).Error
-			if err0 != nil || doc.Id == "" {
-				log.Println("文档不存在", err0)
-				return err0
-			}
-			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
 			err := orm.Create(userDoc).Error
 			if err != nil {
 				log.Println("userDocCollect error:", err)
@@ -74,7 +69,7 @@ func UserDocCollect(userDoc *model.UserDoc, cost int) bool {
 			}
 		}
 		//用户收藏、兑换记录表添加记录
-		err := orm.Exec("insert into download_collection_record (docId,userId,sourceUserId,category,cost) values (?,?,?,?,?)", userDoc.DocId, userDoc.UserId, userDoc.DocSourceUserId, userDoc.DocCategory, cost).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, cost).Error
 		if err != nil {
 			log.Println("userDocCollect record insert error:", err)
 			tx.Rollback()
@@ -92,12 +87,28 @@ func UserDocCollect(userDoc *model.UserDoc, cost int) bool {
 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 = ? AND docCategory = 2 AND isDelete = 0", userDocId).Error
+		//收藏记录详情
+		userDoc := model.UserDoc{}
+		err := orm.Where("id = ?", userDocId).
+			Find(&userDoc).Error
+		if err != nil || userDoc.ID == 0{
+			log.Println("无此收藏记录,取消收藏失败", err)
+			return err
+		}
+		//文档取消收藏状态修改
+		err = orm.Exec("UPDATE user_doc SET isCollection = 0 WHERE id = ? AND isCollection = 1", userDocId).Error
 		if err != nil {
 			log.Println("文档取消收藏失败")
 			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, 3, 0).Error
+		if err != nil {
+			log.Println("userDocCollect record insert error:", err)
+			tx.Rollback()
+			return err
+		}
 		return nil
 	})
 	if err != nil {