Procházet zdrojové kódy

feat:p525 jydocs_back 增加获取用户文库会员状态接口

fuwencai před 1 rokem
rodič
revize
ecf42b5518

+ 4 - 4
jydocs-back/config.json

@@ -11,25 +11,25 @@
     "stdDoc": {
       "key": "jydocs.stdlib.rpc",
       "address": [
-        "127.0.0.1:2379"
+        "192.168.3.206:2379"
       ]
     },
     "userDoc": {
       "key": "jydocs.userlib.rpc",
       "address": [
-        "127.0.0.1:2379"
+        "192.168.3.206:2379"
       ]
     },
     "jyFile": {
       "key": "moapp.filesystem.rpc",
       "address": [
-        "127.0.0.1:2379"
+        "192.168.3.206:2379"
       ]
     },
     "points": {
       "key": "integral.rpc",
       "address": [
-        "127.0.0.1:2379"
+        "192.168.3.206:2379"
       ]
     }
   },

+ 7 - 0
jydocs-back/config.yaml

@@ -0,0 +1,7 @@
+etcd:
+  hosts:
+  - 192.168.3.207:2379
+  - 192.168.3.165:2379
+  - 192.168.3.204:2379
+userCenterKey: "usercenter.rpc" #用户中台rpc
+

+ 13 - 1
jydocs-back/config/config.go

@@ -1,6 +1,13 @@
 package config
 
-import "app.yhyue.com/moapp/jybase/common"
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jypkg/middleground"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/gctx"
+
+	"github.com/gogf/gf/v2/os/gcfg"
+)
 
 type appConfig struct {
 	WebPort   string `json:"webport"`  //程序端口
@@ -28,7 +35,12 @@ type rpcConfig struct {
 }
 
 var JyDocsAppConfig appConfig
+var Middleground *middleground.Middleground
 
 func init() {
+	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
+	var ctx = gctx.New()
+	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings()).
+		RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String())
 	common.ReadConfig(&JyDocsAppConfig)
 }

+ 18 - 2
jydocs-back/db.json

@@ -1,7 +1,7 @@
 {
   "mongodb": {
     "main": {
-      "address": "192.168.3.128:27080",
+      "address": "192.168.3.206:27080",
       "size": 5,
       "dbName": "qfw",
       "replSet": ""
@@ -17,11 +17,27 @@
   },
   "redis": {
     "main": {
-      "address": "session=192.168.3.128:1712,other=192.168.3.128:1712"
+      "address": "session=192.168.3.149:1713,other=192.168.3.149:1712"
     }
   },
   "nsqConfig": {
     "address": "192.168.3.240:4260",
     "appName": "jywx_node"
+  },
+  "mysql": {
+    "dbName": "jianyu",
+    "address": "192.168.3.217:4000",
+    "userName": "root",
+    "passWord": "=PDT49#80Z!RVv52_z",
+    "maxOpenConns": 2,
+    "maxIdleConns": 2
+  },
+  "baseMysql": {
+    "dbName": "base_service",
+    "address": "192.168.3.217:4000",
+    "userName": "root",
+    "passWord": "=PDT49#80Z!RVv52_z",
+    "maxOpenConns": 2,
+    "maxIdleConns": 2
   }
 }

+ 131 - 8
jydocs-back/go.mod

@@ -1,14 +1,137 @@
 module jy-docs
 
-go 1.13
+go 1.21
+
+toolchain go1.21rc2
 
 require (
-	app.yhyue.com/moapp/jyPoints v0.0.0-20210324100730-40913089ed41
-	app.yhyue.com/moapp/jy_docs v0.0.0-20210325090558-b5d95f6bdf53
-	app.yhyue.com/moapp/jybase v0.0.0-20210323023006-c658b04d251a
-	app.yhyue.com/moapp/jyfs v0.0.0-20210319080840-5c8e6e03dce8
-	app.yhyue.com/moapp/message v0.0.0-20210322082125-2a9762351105
+	app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736
+	app.yhyue.com/moapp/jy_docs v1.1.1
+	app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20
+	app.yhyue.com/moapp/jyfs v0.0.0-20231024061508-480c270480d4
+	app.yhyue.com/moapp/jypkg v1.20.1
+	app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
-	github.com/nsqio/go-nsq v1.0.8
-	github.com/tal-tech/go-zero v1.1.5
+	github.com/gogf/gf/v2 v2.7.1
+	github.com/nsqio/go-nsq v1.1.0
+	github.com/zeromicro/go-zero v1.6.4
+)
+
+require (
+	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 // indirect
+	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb // indirect
+	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2 // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231222060155-36e225b61353 // indirect
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.1.3 // indirect
+	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.16 // indirect
+	filippo.io/edwards25519 v1.1.0 // indirect
+	github.com/BurntSushi/toml v1.3.2 // indirect
+	github.com/beorn7/perks v1.0.1 // indirect
+	github.com/cenkalti/backoff/v4 v4.2.1 // indirect
+	github.com/cespare/xxhash/v2 v2.2.0 // indirect
+	github.com/clbanning/mxj/v2 v2.7.0 // indirect
+	github.com/coreos/go-semver v0.3.1 // indirect
+	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
+	github.com/davecgh/go-spew v1.1.1 // indirect
+	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+	github.com/emicklei/go-restful/v3 v3.11.0 // indirect
+	github.com/fatih/color v1.16.0 // indirect
+	github.com/fsnotify/fsnotify v1.7.0 // indirect
+	github.com/garyburd/redigo v1.6.2 // indirect
+	github.com/go-logr/logr v1.4.1 // indirect
+	github.com/go-logr/stdr v1.2.2 // indirect
+	github.com/go-openapi/jsonpointer v0.19.6 // indirect
+	github.com/go-openapi/jsonreference v0.20.2 // indirect
+	github.com/go-openapi/swag v0.22.4 // indirect
+	github.com/go-sql-driver/mysql v1.8.1 // indirect
+	github.com/gogo/protobuf v1.3.2 // indirect
+	github.com/golang/mock v1.6.0 // indirect
+	github.com/golang/protobuf v1.5.4 // indirect
+	github.com/golang/snappy v0.0.4 // indirect
+	github.com/gomodule/redigo v2.0.0+incompatible // indirect
+	github.com/google/gnostic-models v0.6.8 // indirect
+	github.com/google/go-cmp v0.6.0 // indirect
+	github.com/google/gofuzz v1.2.0 // indirect
+	github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 // indirect
+	github.com/google/uuid v1.6.0 // indirect
+	github.com/gorilla/websocket v1.5.1 // indirect
+	github.com/grokify/html-strip-tags-go v0.1.0 // indirect
+	github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
+	github.com/howeyc/fsnotify v0.9.0 // indirect
+	github.com/jinzhu/inflection v1.0.0 // indirect
+	github.com/jinzhu/now v1.1.1 // indirect
+	github.com/josharian/intern v1.0.0 // indirect
+	github.com/json-iterator/go v1.1.12 // indirect
+	github.com/klauspost/compress v1.16.7 // indirect
+	github.com/magiconair/properties v1.8.7 // indirect
+	github.com/mailru/easyjson v0.7.7 // indirect
+	github.com/mattn/go-colorable v0.1.13 // indirect
+	github.com/mattn/go-isatty v0.0.20 // indirect
+	github.com/mattn/go-runewidth v0.0.15 // indirect
+	github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
+	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+	github.com/modern-go/reflect2 v1.0.2 // indirect
+	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+	github.com/olekukonko/tablewriter v0.0.5 // indirect
+	github.com/openzipkin/zipkin-go v0.4.2 // indirect
+	github.com/pelletier/go-toml/v2 v2.2.0 // indirect
+	github.com/prometheus/client_golang v1.18.0 // indirect
+	github.com/prometheus/client_model v0.5.0 // indirect
+	github.com/prometheus/common v0.45.0 // indirect
+	github.com/prometheus/procfs v0.12.0 // indirect
+	github.com/redis/go-redis/v9 v9.4.0 // indirect
+	github.com/rivo/uniseg v0.4.4 // indirect
+	github.com/spaolacci/murmur3 v1.1.0 // indirect
+	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
+	github.com/xdg-go/scram v1.1.2 // indirect
+	github.com/xdg-go/stringprep v1.0.4 // indirect
+	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
+	go.etcd.io/etcd/api/v3 v3.5.13 // indirect
+	go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect
+	go.etcd.io/etcd/client/v3 v3.5.13 // indirect
+	go.mongodb.org/mongo-driver v1.14.0 // indirect
+	go.opentelemetry.io/otel v1.24.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.19.0 // indirect
+	go.opentelemetry.io/otel/metric v1.24.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.22.0 // indirect
+	go.opentelemetry.io/otel/trace v1.24.0 // indirect
+	go.opentelemetry.io/proto/otlp v1.0.0 // indirect
+	go.uber.org/atomic v1.10.0 // indirect
+	go.uber.org/automaxprocs v1.5.3 // indirect
+	go.uber.org/multierr v1.9.0 // indirect
+	go.uber.org/zap v1.24.0 // indirect
+	golang.org/x/crypto v0.22.0 // indirect
+	golang.org/x/net v0.24.0 // indirect
+	golang.org/x/oauth2 v0.18.0 // indirect
+	golang.org/x/sync v0.6.0 // indirect
+	golang.org/x/sys v0.19.0 // indirect
+	golang.org/x/term v0.19.0 // indirect
+	golang.org/x/text v0.14.0 // indirect
+	golang.org/x/time v0.5.0 // indirect
+	google.golang.org/appengine v1.6.8 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
+	google.golang.org/grpc v1.64.0 // indirect
+	google.golang.org/protobuf v1.33.0 // indirect
+	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/yaml.v2 v2.4.0 // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+	gorm.io/driver/mysql v1.0.5 // indirect
+	gorm.io/gorm v1.21.3 // indirect
+	jygit.jydev.jianyu360.cn/ApplicationCenter/publicService v0.0.0-20231023011746-38dc3b6aded8 // indirect
+	k8s.io/api v0.29.3 // indirect
+	k8s.io/apimachinery v0.29.3 // indirect
+	k8s.io/client-go v0.29.3 // indirect
+	k8s.io/klog/v2 v2.110.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
+	k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
+	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+	sigs.k8s.io/yaml v1.3.0 // indirect
 )

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1029 - 55
jydocs-back/go.sum


+ 24 - 1
jydocs-back/public/db.go

@@ -4,11 +4,14 @@ import (
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/mongodb"
+	"app.yhyue.com/moapp/jybase/mysql"
 	"app.yhyue.com/moapp/jybase/redis"
+	"app.yhyue.com/moapp/jypkg/compatible"
 	"app.yhyue.com/moapp/message/model"
 	"encoding/json"
 	"fmt"
 	"github.com/nsqio/go-nsq"
+	"jy-docs/config"
 	"log"
 	"time"
 )
@@ -18,6 +21,9 @@ var (
 	MQFW         mongodb.MongodbSim
 	Mgo_Log      mongodb.MongodbSim
 	NSQ_Producer *nsq.Producer
+	Mysql        *mysql.Mysql
+	BaseMysql    *mysql.Mysql
+	Compatible   *compatible.Compatible
 )
 
 type dbConf struct {
@@ -29,6 +35,22 @@ type dbConf struct {
 		Main *redisConf
 	}
 	NsqConfig *NsqConfig
+	Mysql     struct {
+		DbName       string
+		Address      string
+		UserName     string
+		PassWord     string
+		MaxOpenConns int
+		MaxIdleConns int
+	}
+	BaseMysql struct {
+		DbName       string
+		Address      string
+		UserName     string
+		PassWord     string
+		MaxOpenConns int
+		MaxIdleConns int
+	}
 }
 
 type mgoConf struct {
@@ -89,9 +111,10 @@ func init() {
 			}
 		}
 	}
+	Compatible = compatible.NewCompatible(&MQFW, BaseMysql, Mysql, config.Middleground)
 }
 
-//分享打开文库赚积分
+// 分享打开文库赚积分
 func OpenShareJydoc(fromId, openId, docId string) {
 	fromId = encrypt.SE.Decode4Hex(fromId)
 	if fromId == "" || openId == fromId || openId == "" || docId == "" {

+ 4 - 4
jydocs-back/rpc/fileSystemRpc.go

@@ -5,13 +5,13 @@ import (
 	"app.yhyue.com/moapp/jyfs/rpc/filesystemclient"
 	"context"
 	"fmt"
-	"github.com/tal-tech/go-zero/core/discov"
-	"github.com/tal-tech/go-zero/zrpc"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 	"jy-docs/config"
 	"log"
 )
 
-//剑鱼文件系统RPC接口
+// 剑鱼文件系统RPC接口
 var jyFilelLib filesystemclient.FileSystem
 
 func init() {
@@ -23,7 +23,7 @@ func init() {
 	}))
 }
 
-//获取用户对话pdf文件地址
+// 获取用户对话pdf文件地址
 func GetFileContext(userId, ossId string) (string, error) {
 	resp, err := jyFilelLib.GetOssUril(context.Background(), &filesystem.LoadFileReq{
 		Domain: config.JyDocsAppConfig.OssBucket.Std,

+ 9 - 3
jydocs-back/rpc/pointsRpc.go

@@ -4,13 +4,13 @@ import (
 	"app.yhyue.com/moapp/jyPoints/rpc/integralclient"
 	"context"
 	"fmt"
-	"github.com/tal-tech/go-zero/core/discov"
-	"github.com/tal-tech/go-zero/zrpc"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 	"jy-docs/config"
 	"log"
 )
 
-//剑鱼积分RPC接口
+// 剑鱼积分RPC接口
 var jyIntegralLib integralclient.Integral
 
 func init() {
@@ -25,8 +25,11 @@ func init() {
 /*
 积分查询
 param
+
 	userId  用户id
+
 return
+
 	int64 剩余积分
 	error 异常
 */
@@ -49,10 +52,13 @@ func GetUserPointValue(userId string) (int64, error) {
 /*
 积分消费
 param
+
 	userId  用户id
 	docId	文库id
 	abstract 文库简介(积分流水列表展示)
+
 return
+
 	error 异常
 */
 func SpendUserPoint(userId, docId, abstract string, value int64) (string, error) {

+ 2 - 2
jydocs-back/rpc/stdDocRpc.go

@@ -5,8 +5,8 @@ import (
 	"app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlibclient"
 	"context"
 	"fmt"
-	"github.com/tal-tech/go-zero/core/discov"
-	"github.com/tal-tech/go-zero/zrpc"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 	"jy-docs/config"
 	"log"
 )

+ 19 - 5
jydocs-back/rpc/userDocRpc.go

@@ -5,13 +5,13 @@ import (
 	"app.yhyue.com/moapp/jy_docs/rpc/userlib/userlibclient"
 	"context"
 	"fmt"
-	"github.com/tal-tech/go-zero/core/discov"
-	"github.com/tal-tech/go-zero/zrpc"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 	"jy-docs/config"
 	"log"
 )
 
-//用户库RPC接口
+// 用户库RPC接口
 var jyUserDocLib userlibclient.UserLib
 
 func init() {
@@ -23,13 +23,17 @@ func init() {
 	}))
 }
 
-/*查询用户文库列表
+/*
+查询用户文库列表
 param
+
 	userId  用户id
 	pageNum 页码
 	pageSize 每页大小
 	colloctType  0兑换的 1收藏的 2回收站的
+
 return
+
 	文库列表,文库数量,异常
 */
 func GetUserDocs(userId string, pageNum, pageSize, colloctType int64) (interface{}, int64, error) {
@@ -51,11 +55,15 @@ func GetUserDocs(userId string, pageNum, pageSize, colloctType int64) (interface
 	return resp.Data, resp.Count, nil
 }
 
-/*收藏文库
+/*
+收藏文库
 param
+
 	userId  用户id
 	docId   文库id
+
 return
+
 	异常
 */
 func SetUserCollect(userId, docId string) error {
@@ -80,9 +88,12 @@ func SetUserCollect(userId, docId string) error {
 /*
 取消收藏
 param
+
 	userId  用户id
 	docId   文库id
+
 return
+
 	异常
 */
 func DelUserCollect(userId, docId string) error {
@@ -105,9 +116,12 @@ func DelUserCollect(userId, docId string) error {
 /*
 文库转存
 param
+
 	userId  用户id
 	docId   文库id
+
 return
+
 	异常
 */
 func PayDoc(userId, docId string) error {

+ 24 - 1
jydocs-back/servers/userDoc.go

@@ -5,6 +5,7 @@ import (
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"encoding/json"
+	"errors"
 	"fmt"
 	"jy-docs/public"
 	"jy-docs/rpc"
@@ -18,9 +19,10 @@ type UserDoc struct {
 	collectAdd    xweb.Mapper `xweb:"/user/collect/add"`    //收藏文库
 	collectRemove xweb.Mapper `xweb:"/user/collect/remove"` //取消收藏
 	docBuy        xweb.Mapper `xweb:"/user/buy"`            //文库购买
+	info          xweb.Mapper `xweb:"/user/info"`           //文库购买
 }
 
-//用户文库列表
+// 用户文库列表
 func (userDoc *UserDoc) UserList() {
 	userId := common.ObjToString(userDoc.GetSession("userId"))
 	rData, errMsg := func() (interface{}, error) {
@@ -155,3 +157,24 @@ func (userDoc *UserDoc) DocBuy() {
 	}
 	userDoc.ServeJson(NewResult(rData, errMsg))
 }
+
+// Info 剑鱼文库会员信息
+func (userDoc *UserDoc) Info() {
+	userId := common.ObjToString(userDoc.GetSession("userId"))
+	rData, errMsg := func() (interface{}, error) {
+		mData := public.Compatible.Select(userId, `{"i_doc_status":1,"l_doc_endtime":1,"l_doc_starttime":1}`)
+		if mData != nil && len(*mData) > 0 {
+			vipStatus := common.IntAll((*mData)["i_doc_status"])
+			return map[string]interface{}{
+				"docMemberStatus": vipStatus > 0,
+				"startTime":       (*mData)["l_doc_starttime"],
+				"endTime":         (*mData)["l_doc_endtime"],
+			}, nil
+		}
+		return nil, errors.New("获取文库会员状态失败")
+	}()
+	if errMsg != nil {
+		log.Printf("%s UserDoc Info err:%s\n", userId, errMsg.Error())
+	}
+	userDoc.ServeJson(NewResult(rData, errMsg))
+}

+ 3 - 0
jydocs-back/test/p525.http

@@ -0,0 +1,3 @@
+POST http://127.0.0.1:821/jydocs/user/info
+Content-Type: application/x-www-form-urlencoded
+Cookie: SESSIONID=d6d16e5272466216cb3fb63c80f82cb2938a4e6c;

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů