package rpc import ( "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib" "context" "fmt" "github.com/zeromicro/go-zero/core/discov" "github.com/zeromicro/go-zero/zrpc" "jy-docs/config" "jy-docs/public" "log" ) // 用户库RPC接口 var jyUserDocLib userlib.UserLib func init() { jyUserDocLib = userlib.NewUserLib(zrpc.MustNewClient(zrpc.RpcClientConf{ Etcd: discov.EtcdConf{ Key: config.JyDocsAppConfig.RpcServers.UserDoc.Key, Hosts: config.JyDocsAppConfig.RpcServers.UserDoc.Address, }, Timeout: config.JyDocsAppConfig.RpcServers.StdDoc.Timeout, })) } /* 查询用户文库列表 param userId 用户id pageNum 页码 pageSize 每页大小 colloctType 0兑换的 1收藏的 2回收站的 return 文库列表,文库数量,异常 */ func GetUserDocs(userId string, pageNum, pageSize, colloctType int64) (interface{}, int64, error) { resp, err := jyUserDocLib.UserDocs(context.Background(), &userlib.UserDocsRequest{ AppId: config.JyDocsAppConfig.AppId, UserId: userId, Page: pageNum, PageSize: pageSize, UserDocCategory: colloctType, }) if err != nil { log.Printf("%s GetUserDocs call error %v\n", userId, err) return nil, -1, err } if resp.Code != 1 { log.Printf("%s GetUserDocs fail Message %v\n", userId, resp.Message) return nil, -1, fmt.Errorf("获取文库列表失败") } return resp.Data, resp.Count, nil } /* 收藏文库 param userId 用户id docId 文库id return 异常 */ func SetUserCollect(userId, docId string) error { resp, err := jyUserDocLib.DocCollect(context.Background(), &userlib.UserCollectRequest{ AppId: config.JyDocsAppConfig.AppId, UserId: userId, DocId: docId, Cost: 0, }) if err != nil { log.Printf("%s SetUserCollect call error %v\n", userId, err) return err } if resp.Code != 1 { log.Printf("%s SetUserCollect fail Message %v\n", userId, resp.Message) return fmt.Errorf("添加收藏失败") } //log.Printf("用户id:%s appid:%d 返回值:%+v\n", userId, config.JyDocsAppConfig.AppId, resp) return nil } /* 取消收藏 param userId 用户id docId 文库id return 异常 */ func DelUserCollect(userId, docId string) error { resp, err := jyUserDocLib.DocCancelCollect(context.Background(), &userlib.UserCancelRequest{ AppId: config.JyDocsAppConfig.AppId, UserId: userId, DocId: docId, }) if err != nil { log.Printf("%s DelUserCollect call error %v\n", userId, err) return err } if resp.Code != 1 { log.Printf("%s DelUserCollect fail Message %v\n", userId, resp.Message) return fmt.Errorf("删除收藏失败") } return nil } /* 文库转存 param userId 用户id docId 文库id return 异常 */ func PayDoc(userId, docId string) error { resp, err := jyUserDocLib.DocDownload(context.Background(), &userlib.UserCollectRequest{ AppId: config.JyDocsAppConfig.AppId, UserId: userId, DocId: docId, }) if err != nil { log.Printf("%s SetUserCollect call error %v\n", userId, err) return err } if resp.Code != 1 { log.Printf("%s PayDoc fail Message %v\n", userId, resp.Message) return fmt.Errorf("下载文库失败") } return nil } func TodayCount(userId string) (int64, int64, error) { resp, err := jyUserDocLib.UserTodayCount(context.Background(), &userlib.UserTodayCountReq{ AppId: config.JyDocsAppConfig.AppId, UserId: userId, ProductType: public.ProductTypeMemberFree, }) if err != nil { log.Printf("%s UserTodayCount call error %v\n", userId, err) return 0, 0, err } if resp.Code != 1 { log.Printf("%s UserTodayCount fail Message %v\n", userId, resp.Message) return 0, 0, fmt.Errorf("获取用户下载次数失败") } return resp.Count, resp.TotalCount, nil }