package rpc import ( "context" "fmt" "log" "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlib" "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlibclient" "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlib" "app.yhyue.com/moapp/jy_docs/rpc/userlib/userlibclient" "github.com/gogf/gf/v2/os/gcfg" "github.com/gogf/gf/v2/os/gctx" "github.com/zeromicro/go-zero/core/discov" "github.com/zeromicro/go-zero/zrpc" ) var ( jyUserDocLib userlibclient.UserLib jyStdDocStdlib stdlibclient.Stdlib appId string ) func init() { jyUserDocLib = userlibclient.NewUserLib(zrpc.MustNewClient(zrpc.RpcClientConf{ Etcd: discov.EtcdConf{ Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.address", nil).Strings(), Key: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.userlib.key", nil).String(), }, })) jyStdDocStdlib = stdlibclient.NewStdlib(zrpc.MustNewClient(zrpc.RpcClientConf{ Etcd: discov.EtcdConf{ Hosts: gcfg.Instance().MustGet(gctx.New(), "etcd.address", nil).Strings(), Key: gcfg.Instance().MustGet(gctx.New(), "etcd.jydocs.stdlib.key", nil).String(), }, })) appId = gcfg.Instance().MustGet(gctx.New(), "appid", "10000").String() } func PayDoc(userId, docId string) error { resp, err := jyUserDocLib.DocDownload(context.Background(), &userlib.UserCollectRequest{ AppId: appId, UserId: userId, DocId: docId, }) log.Println(resp, "++++++++", err) 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 } /* 获取文库详情 param userId 用户id docId 文库id return DocInfo 文库详情 error 异常 */ func GetDocDetail(userId, docId string) (*stdlib.DocInfo, bool, bool, error) { resp, err := jyStdDocStdlib.DocGetCheck(context.Background(), &stdlib.DocGetCheckReq{ AppId: appId, UserId: userId, DocId: docId, }) if err != nil { log.Printf("%s GetDocDetail call error %v\n", userId, err) return nil, false, false, err } if resp.Code != 1 { log.Printf("%s GetDocDetail fail Message %v\n", userId, resp.Msg) return nil, false, false, fmt.Errorf("获取内容失败") } if resp.DocDeail == nil { return nil, false, false, fmt.Errorf("查询文档异常") } return resp.DocDeail, resp.IsBuy, resp.IsCollect, nil }