Browse Source

wip:检索库doc

wangshan 1 year ago
parent
commit
36b815b8f8
35 changed files with 423 additions and 254 deletions
  1. 11 0
      go.mod
  2. 8 0
      go.sum
  3. 9 11
      rpc/partnerlib/crontab/service/docinInfo.go
  4. 2 1
      rpc/partnerlib/crontab/service/docinUpdate.go
  5. 7 7
      rpc/partnerlib/crontab/service/service.go
  6. 11 5
      rpc/partnerlib/entity/entity.go
  7. 4 4
      rpc/partnerlib/etc/crontab.yaml
  8. 10 13
      rpc/partnerlib/etc/partner.yaml
  9. BIN
      rpc/partnerlib/file/1.doc
  10. 3 2
      rpc/partnerlib/init/init.go
  11. 1 1
      rpc/partnerlib/internal/config/config.go
  12. 6 6
      rpc/partnerlib/internal/config/crontab.go
  13. 1 1
      rpc/partnerlib/internal/logic/docdownloadlogic.go
  14. 1 1
      rpc/partnerlib/internal/logic/userbuylogic.go
  15. 2 2
      rpc/partnerlib/internal/server/partnerserver.go
  16. 16 16
      rpc/partnerlib/model/partner.go
  17. BIN
      rpc/partnerlib/partner.exe
  18. 6 5
      rpc/partnerlib/partner/partner.go
  19. 11 6
      rpc/partnerlib/partnerlib.proto
  20. 11 12
      rpc/partnerlib/service/docDownload.go
  21. 24 0
      rpc/partnerlib/service/ossFileUpload.go
  22. 21 25
      rpc/partnerlib/service/service.go
  23. 7 7
      rpc/partnerlib/service/userBuy.go
  24. 118 37
      rpc/partnerlib/type/partnerlib/partnerlib.pb.go
  25. 10 10
      rpc/partnerlib/type/partnerlib/partnerlib_grpc.pb.go
  26. 39 26
      services/model/partner.go
  27. 35 35
      services/model/stdlib.go
  28. 6 2
      services/partner/docCheck.go
  29. 2 1
      services/partner/docClass.go
  30. 3 2
      services/partner/docsInsert.go
  31. 2 1
      services/partner/docsStatistics.go
  32. 7 1
      services/partner/docsUpdate.go
  33. 3 2
      services/partner/elastic.go
  34. 1 1
      services/partner/mgo.go
  35. 25 11
      services/util/baseInit.go

+ 11 - 0
go.mod

@@ -14,15 +14,19 @@ require (
 )
 
 require (
+	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
+	github.com/BurntSushi/toml v1.3.2 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.2.0 // 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.9.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.2.3 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
@@ -38,20 +42,26 @@ require (
 	github.com/google/gnostic v0.5.7-v3refs // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.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.15.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.15.15 // 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.13 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // 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/olivere/elastic v6.2.37+incompatible // indirect
 	github.com/olivere/elastic/v7 v7.0.22 // indirect
 	github.com/openzipkin/zipkin-go v0.4.1 // indirect
 	github.com/pelletier/go-toml/v2 v2.1.0 // indirect
@@ -60,6 +70,7 @@ require (
 	github.com/prometheus/client_model v0.4.0 // indirect
 	github.com/prometheus/common v0.42.0 // indirect
 	github.com/prometheus/procfs v0.10.1 // indirect
+	github.com/rivo/uniseg v0.2.0 // 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

+ 8 - 0
go.sum

@@ -1,3 +1,4 @@
+app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+jPzpnsDe/OvcshDUUtOTZPYGSJ8=
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
 app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20 h1:F1ZHkzo7yHp5eNrZDqQxaXMIKFQU72bsI1dMq3ztJLA=
 app.yhyue.com/moapp/jybase v0.0.0-20240523083821-42a82b37ae20/go.mod h1:XHNATN6tsJKHdCB0DbUtFdPPHXexTUFyB3RlO+lUUoM=
@@ -764,6 +765,7 @@ git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3p
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
 github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
+github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
 github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk=
@@ -824,6 +826,7 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR
 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
 github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
+github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -897,6 +900,7 @@ github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHqu
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
 github.com/fullstorydev/grpcurl v1.8.8/go.mod h1:TRM21TqPbPzHkA9DqSh94oI2g1pD2AFRhLhmGrSht+Q=
 github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM=
 github.com/garyburd/redigo v1.6.2/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
@@ -1086,8 +1090,10 @@ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+
 github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
+github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4=
+github.com/grokify/html-strip-tags-go v0.1.0/go.mod h1:ZdzgfHEzAfz9X6Xe5eBLVblWIxXfYSQ40S/VKrAOGpc=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
@@ -1173,6 +1179,7 @@ github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuz
 github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o=
 github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk=
 github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
+github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
@@ -1222,6 +1229,7 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
 github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
 github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
 github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/olivere/elastic v6.2.37+incompatible h1:UfSGJem5czY+x/LqxgeCBgjDn6St+z8OnsCuxwD3L0U=
 github.com/olivere/elastic v6.2.37+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8=
 github.com/olivere/elastic/v7 v7.0.22 h1:esBA6JJwvYgfms0EVlH7Z+9J4oQ/WUADF2y/nCNDw7s=
 github.com/olivere/elastic/v7 v7.0.22/go.mod h1:VDexNy9NjmtAkrjNoI7tImv7FR4tf5zUA3ickqu5Pc8=

+ 9 - 11
rpc/partnerlib/crontab/service/docinInfo.go

@@ -16,12 +16,14 @@ import (
 
 func InsertDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTotal int) {
 	var docinInfos model.DocinInfoRes
+	str := string(b)
+	fmt.Println(str, "--------------")
 	err = json.Unmarshal(b, &docinInfos)
 	if err == nil {
 		if expectTotal = len(docinInfos.Data); expectTotal > 0 {
 			//剑鱼doc 一份 || 豆丁备份表一份
 			var (
-				docs           []sm.Doc
+				docs           []sm.Docin
 				docsStatistics []sm.DocStatistics
 				docsES         []map[string]interface{}
 			)
@@ -29,7 +31,7 @@ func InsertDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTot
 				var (
 					id                = fmt.Sprintf("docin-%d", v.ProductId)
 					md5Id             = GetMD5(id, v.ProductName, v.Desc, v.FilePostfix) //判断数据是否已存在 md5
-					price             = v.Price                                          //价格转换
+					price             = int(v.Price * entity.Multiple)                   //价格转换
 					docTags, docClass = partner.SwitchDocClass(v.PcatName, v.CatName, 1) //标签和分类
 					fileType          = GetDocFileType(v.FilePostfix)
 				)
@@ -46,7 +48,7 @@ func InsertDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTot
 					ViewTimes:  v.VisitCount,
 				})
 				//tidb 文档
-				docs = append(docs, sm.Doc{
+				docs = append(docs, sm.Docin{
 					Id:              id,
 					UserId:          "docin",
 					AppId:           entity.AppId,
@@ -57,28 +59,24 @@ func InsertDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTot
 					DocPageSize:     v.PageCount,
 					DocTags:         strings.Join(docTags, ","),
 					DocClass:        docClass,
-					UploadDate:      time.Now(),
+					UploadDate:      date.NowFormat(date.Date_Full_Layout),
 					IsDelete:        0,
 					OssDocId:        "",
-					OssDocUrl:       "",
 					Md5:             md5Id, //
 					OssPdfId:        "",
-					OssPdfUrl:       "",
 					OssTxtId:        "",
-					OssTxtUrl:       "",
 					Price:           price,
 					DownOrUp:        0,
 					DocSummary:      v.Desc,
 					PreviewImgId:    "",
-					PreviewImgUrl:   "",
 					EncryptionLevel: 0,
 					Source:          2,              //豆丁
 					ProductType:     v.Ifcharge + 1, //Ifcharge:是否付费,0:免费,1:收费;ProductType:商品类型:默认:0:全部;1:会员免费;2:精品(付费)
-					UpdateDate:      time.Now(),
+					UpdateDate:      date.NowFormat(date.Date_Full_Layout),
 				})
 				//elastic
 				docsES = append(docsES, map[string]interface{}{
-					"id":           id,
+					"_id":          id,
 					"docClass":     docClass,
 					"docFileSize":  int(v.FileSize),
 					"docFileType":  fileType,
@@ -88,7 +86,7 @@ func InsertDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTot
 					"docTags":      strings.Join(docTags, ","),
 					"downTimes":    v.DownloadCount,
 					"previewImgId": v.ProductId,
-					"price":        v.Price,
+					"price":        price,
 					"uploadDate":   date.NowFormat(date.Date_Full_Layout),
 					"viewTimes":    v.VisitCount,
 					"source":       2, //豆丁

+ 2 - 1
rpc/partnerlib/crontab/service/docinUpdate.go

@@ -1,6 +1,7 @@
 package service
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
 	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/model"
 	sm "app.yhyue.com/moapp/jy_docs/services/model"
 	"app.yhyue.com/moapp/jy_docs/services/partner"
@@ -24,7 +25,7 @@ func UpdateDocinInfos(b []byte) (err error, lastId int64, expectTotal, actualTot
 				lastId = v.ProductId
 				doc.Id = id
 				doc.UpdateDate, _ = time.ParseInLocation(date.Date_Full_Layout, v.ModifyDate, time.Local)
-				doc.Price = v.Price
+				doc.Price = int(v.Price * entity.Multiple)
 				doc.PriceVip = v.PriceVip
 				doc.ProductType = v.Ifcharge + 1
 				doc.DownOrUp = v.State

+ 7 - 7
rpc/partnerlib/crontab/service/service.go

@@ -31,15 +31,15 @@ func SyncDocinInfo(cron config.Cron) {
 			"startId": startId,
 			"count":   Cron.NewDocsList.Count,
 		})
-		b, err = h.HttpFunc()
-		lastId = startId
+		b, err, _ = h.HttpFunc()
+		lastId    = startId
 	)
-	go h.SaveRequestLogger(b, err)
+	go h.SaveDocinLogger(b, err, "req")
 	if err == nil {
 		if len(b) > 0 {
 			var et, at int
 			//豆丁同步数据到mongo
-			go h.SaveResponseData(b, err)
+			go h.SaveDocinLogger(b, err, "res")
 			err, lastId, et, at = InsertDocinInfos(b)
 			entity.SyncExpectTotal = entity.SyncExpectTotal + et
 			entity.SyncActualTotal = entity.SyncActualTotal + at
@@ -95,14 +95,14 @@ func UpdateDocinInfo(cron config.Cron) {
 		"startDate": startDate,
 		"endDate":   endDate,
 	})
-	b, err := h.HttpFunc()
+	b, err, _ := h.HttpFunc()
 	lastId := startId
-	go h.SaveRequestLogger(b, err)
+	go h.SaveDocinLogger(b, err, "req")
 	if err == nil {
 		if len(b) > 0 {
 			var et, at int
 			//豆丁更新数据到mongo
-			go h.SaveResponseData(b, err)
+			go h.SaveDocinLogger(b, err, "res")
 			err, lastId, et, at = UpdateDocinInfos(b)
 			entity.UpdateExpectTotal = entity.UpdateExpectTotal + et
 			entity.UpdateActualTotal = entity.UpdateActualTotal + at

+ 11 - 5
rpc/partnerlib/entity/entity.go

@@ -1,13 +1,19 @@
 package entity
 
+import "sync"
+
 const (
-	DateFormat     = "20060102"
-	RedisCode      = "newother"
-	AppId          = "10000"
-	InBatchesCount = 20
-	ElasticJYDoc   = "jydoc"
+	DateFormat         = "20060102"
+	RedisCode          = "newother"
+	AppId              = "10000"
+	InBatchesCount     = 20
+	ElasticJYDoc       = "jydoc"
+	Multiple           = 10
+	DocTable           = "doc"
+	DocStatisticsTable = "doc_statistics"
 )
 
 var (
 	SyncExpectTotal, SyncActualTotal, UpdateExpectTotal, UpdateActualTotal int //批次预计处理数据和实际处理数据
+	DocsLock                                                               = &sync.Mutex{}
 )

+ 4 - 4
rpc/partnerlib/etc/crontab.yaml

@@ -5,16 +5,16 @@ NewDocsList:
   Time: "0 0 0/4 * * ?"
   StartId: 0
   StartIdKey: docin_sync_start_id
-  Count: 50
+  Count: 2
   SleepTime: 10
 UpdateDocsList:
   Name: updateDocs
-  First: true
-  Time: "0 0 0/4 * * ?"
+  First: false
+  Time: "0 0 2 * * 6 ?" # 豆丁文档更新量比较少,每周六早上两点开始
   StartId: 0 # 首次任务执行:0;以后配置成1
   StartIdKey: docin_update_start_id
   Count: 50
-  StartDate: "20240411" # 首次任务执行:20240411
+  StartDate: "20230411" # 首次任务执行:20240411
   StartDateKey: docin_update_start_date
   EndDate: "" # 默认空
   SleepTime: 10

+ 10 - 13
rpc/partnerlib/etc/partner.yaml

@@ -3,25 +3,22 @@ ListenOn: 127.0.0.1:8082
 WebRpcPort: 8185
 Etcd:
   Hosts:
-    - 192.168.3.207:2379
-    - 192.168.3.165:2379
-    - 192.168.3.204:2379
+    - 127.0.0.1:2379
   Key: jydocs.partnerlib.rpc
 JyDocsMysqlDB:
   DriverName: "mysql"
-  DataSourceName: "root:Topnet123@tcp(192.168.3.11:3366)/jydocs?charset=utf8mb4&parseTime=true&loc=Local"
+  DataSourceName: "root:=PDT49#80Z!RVv52_z@tcp(192.168.3.217:4000)/jydocs?charset=utf8mb4&parseTime=true&loc=Local"
   MaxOpenConn: 20
   MaxIdleConn: 10
   MaxConnLifeTime: 100
 EsConfig:
-  Addr: "http://192.168.3.241:9200,http://192.168.3.242:9200"
-  Pool: 15
+  Addr: "http://192.168.3.242:9200"
+  Pool: 30
   UserName: elastic
   Password: elastic
-Redis:
-  Addr:
-    - other=192.168.3.149:1712
-    - newother=192.168.3.149:1712
+RedisAddr:
+  - other=192.168.3.149:1712
+  - newother=192.168.3.149:1712
 Mongo:
   Main:
     Address: 192.168.3.206:27080
@@ -30,12 +27,12 @@ Mongo:
     UserName: ""
     Password: ""
   Logger:
-    Address: 192.168.3.206:27001
+    Address: 192.168.3.206:27090
     Size: 5
-    DbName: qfw_data
+    DbName: qfw
     UserName: admin
     Password: "123456"
 FileSystemConf:
   Hosts:
-    - 192.168.3.240:2379
+    - 127.0.0.1:2379
   Key: moapp.filesystem.rpc

BIN
rpc/partnerlib/file/1.doc


+ 3 - 2
rpc/partnerlib/init/init.go

@@ -26,9 +26,10 @@ func init() {
 	conf.MustLoad(*warnFile, &Warn)
 	if C.JyDocsMysqlDB.DataSourceName != "" && C.EsConfig.Addr != "" {
 		jyDocsRpcUtil.InitDB(C.JyDocsMysqlDB.DataSourceName, C.JyDocsMysqlDB.DriverName, C.JyDocsMysqlDB.MaxOpenConn, C.JyDocsMysqlDB.MaxIdleConn)
-		jyDocsRpcUtil.InitEs(C.EsConfig.Addr, C.EsConfig.Pool, C.EsConfig.UserName, C.EsConfig.Password)
-		jyDocsRpcUtil.InitRedis(C.Redis)
+		jyDocsRpcUtil.InitESV7(C.EsConfig.Addr, C.EsConfig.Pool, C.EsConfig.UserName, C.EsConfig.Password)
+		jyDocsRpcUtil.InitRedis(C.RedisAddr)
 		jyDocsRpcUtil.InitMongo(C.Mongo)
+		jyDocsRpcUtil.InitOss(C.FileSystemConf)
 	}
 	//初始化 分类对应关系
 	go partner.InitDocClass()

+ 1 - 1
rpc/partnerlib/internal/config/config.go

@@ -11,7 +11,7 @@ type Config struct {
 	WebRpcPort     int64
 	JyDocsMysqlDB  jyDocRpcUtil.MysqlDBConfig
 	EsConfig       jyDocRpcUtil.EsConfig
-	Redis          jyDocRpcUtil.RedisConfig
+	RedisAddr      []string
 	Mongo          jyDocRpcUtil.MongoConfig
 	FileSystemConf discov.EtcdConf
 }

+ 6 - 6
rpc/partnerlib/internal/config/crontab.go

@@ -10,11 +10,11 @@ type Cron struct {
 	Name         string
 	First        bool
 	Time         string
-	StartId      int64
-	StartIdKey   string
+	StartId      int64  `json:",optional"`
+	StartIdKey   string `json:",optional"`
 	Count        int
-	StartDate    string
-	StartDateKey string
-	EndDate      string
-	SleepTime    int
+	StartDate    string `json:",optional"`
+	StartDateKey string `json:",optional"`
+	EndDate      string `json:",optional"`
+	SleepTime    int    `json:",optional"`
 }

+ 1 - 1
rpc/partnerlib/internal/logic/docdownloadlogic.go

@@ -26,7 +26,7 @@ func NewDocDownloadLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DocDo
 	}
 }
 
-func (l *DocDownloadLogic) DocDownload(in *partnerlib.UserDownloadRequest) (*partnerlib.CommonResponse, error) {
+func (l *DocDownloadLogic) DocDownload(in *partnerlib.UserDownloadRequest) (*partnerlib.UDRes, error) {
 	res, err := service.DocDownload(in)
 	if err != nil {
 		go warn.SendMsgByWXURL(fmt.Sprintf("文档下载异常:%s,下载参数:%v", err.Error(), in))

+ 1 - 1
rpc/partnerlib/internal/logic/userbuylogic.go

@@ -26,7 +26,7 @@ func NewUserBuyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserBuyLo
 	}
 }
 
-func (l *UserBuyLogic) UserBuy(in *partnerlib.UserBuyVipRequest) (*partnerlib.CommonResponse, error) {
+func (l *UserBuyLogic) UserBuy(in *partnerlib.UserBuyVipRequest) (*partnerlib.UBVRes, error) {
 	res, err := service.UBHandle(in)
 	if err != nil {
 		go warn.SendMsgByWXURL(fmt.Sprintf("精品文档购买异常:%s,下载参数:%v", err.Error(), in))

+ 2 - 2
rpc/partnerlib/internal/server/partnerserver.go

@@ -22,12 +22,12 @@ func NewPartnerServer(svcCtx *svc.ServiceContext) *PartnerServer {
 	}
 }
 
-func (s *PartnerServer) DocDownload(ctx context.Context, in *partnerlib.UserDownloadRequest) (*partnerlib.CommonResponse, error) {
+func (s *PartnerServer) DocDownload(ctx context.Context, in *partnerlib.UserDownloadRequest) (*partnerlib.UDRes, error) {
 	l := logic.NewDocDownloadLogic(ctx, s.svcCtx)
 	return l.DocDownload(in)
 }
 
-func (s *PartnerServer) UserBuy(ctx context.Context, in *partnerlib.UserBuyVipRequest) (*partnerlib.CommonResponse, error) {
+func (s *PartnerServer) UserBuy(ctx context.Context, in *partnerlib.UserBuyVipRequest) (*partnerlib.UBVRes, error) {
 	l := logic.NewUserBuyLogic(ctx, s.svcCtx)
 	return l.UserBuy(in)
 }

+ 16 - 16
rpc/partnerlib/model/partner.go

@@ -12,20 +12,20 @@ type DocinInfoRes struct {
 }
 
 type Docs struct {
-	PageCount     int    //文档页数
-	FilePostfix   string //文档格式
-	ProductId     int64  //文档ID
-	ModifyDate    string //修改时间
-	PcatName      string //一级分类
-	Price         int    //文档价格
-	PriceVip      int    //文档券数
-	ProductName   string //文档标题
-	VisitCount    int    //浏览量
-	CreatedDate   string //创建时间
-	FileSize      int64  //文档大小
-	CatName       string //二级分类
-	DownloadCount int    //下载量
-	Ifcharge      int    //是否付费,0:免费,1:收费
-	Desc          string //文档详情
-	State         int    //文档状态,0:上架,1:下架
+	PageCount     int     //文档页数
+	FilePostfix   string  //文档格式
+	ProductId     int64   //文档ID
+	ModifyDate    string  //修改时间
+	PcatName      string  //一级分类
+	Price         float64 //文档价格
+	PriceVip      int     //文档券数
+	ProductName   string  //文档标题
+	VisitCount    int     //浏览量
+	CreatedDate   string  //创建时间
+	FileSize      int64   //文档大小
+	CatName       string  //二级分类
+	DownloadCount int     //下载量
+	Ifcharge      int     //是否付费,0:免费,1:收费
+	Desc          string  //文档详情
+	State         int     //文档状态,0:上架,1:下架
 }

BIN
rpc/partnerlib/partner.exe


+ 6 - 5
rpc/partnerlib/partner/partner.go

@@ -13,13 +13,14 @@ import (
 )
 
 type (
-	CommonResponse      = partnerlib.CommonResponse
+	UBVRes              = partnerlib.UBVRes
+	UDRes               = partnerlib.UDRes
 	UserBuyVipRequest   = partnerlib.UserBuyVipRequest
 	UserDownloadRequest = partnerlib.UserDownloadRequest
 
 	Partner interface {
-		DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*CommonResponse, error)
-		UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*CommonResponse, error)
+		DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*UDRes, error)
+		UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*UBVRes, error)
 	}
 
 	defaultPartner struct {
@@ -33,12 +34,12 @@ func NewPartner(cli zrpc.Client) Partner {
 	}
 }
 
-func (m *defaultPartner) DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*CommonResponse, error) {
+func (m *defaultPartner) DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*UDRes, error) {
 	client := partnerlib.NewPartnerClient(m.cli.Conn())
 	return client.DocDownload(ctx, in, opts...)
 }
 
-func (m *defaultPartner) UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*CommonResponse, error) {
+func (m *defaultPartner) UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*UBVRes, error) {
 	client := partnerlib.NewPartnerClient(m.cli.Conn())
 	return client.UserBuy(ctx, in, opts...)
 }

+ 11 - 6
rpc/partnerlib/partnerlib.proto

@@ -27,15 +27,20 @@ message UserBuyVipRequest{
   int64 state = 11;//1:豆丁
   int64 mold = 12;//0:保存文库会员购买记录订单信息;1:更新合作商购买订单信息
 }
-
-//公共返回
-message CommonResponse{
+// 用户下载
+message UDRes{
+  int64 code = 1;
+  string msg = 2;
+  string ossDocId = 3;
+}
+//会员购买返回值
+message UBVRes{
   int64 code = 1;
   string msg = 2;
-  string  data = 3;
+  string  orderNo = 3;
 }
 
 service  Partner {
-  rpc DocDownload(UserDownloadRequest) returns (CommonResponse);//文档下载
-  rpc UserBuy(UserBuyVipRequest) returns(CommonResponse); //会员购买
+  rpc DocDownload(UserDownloadRequest) returns (UDRes);//文档下载
+  rpc UserBuy(UserBuyVipRequest) returns(UBVRes); //会员购买
 }

+ 11 - 12
rpc/partnerlib/service/docDownload.go

@@ -4,7 +4,6 @@ import (
 	IC "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/init"
 	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib"
 	"encoding/json"
-	"log"
 )
 
 type DRes struct {
@@ -12,25 +11,25 @@ type DRes struct {
 	Code int64
 }
 
-func DocDownload(in *partnerlib.UserDownloadRequest) (res *partnerlib.CommonResponse, err error) {
-	res = new(partnerlib.CommonResponse)
+func DocDownload(in *partnerlib.UserDownloadRequest) (res *partnerlib.UDRes, err error) {
+	res = new(partnerlib.UDRes)
 	var (
-		b []byte
+		b      []byte
+		isJson bool
 	)
 	h := NewHH(IC.I.Docin.Name, IC.I.Docin.Host, IC.I.Docin.DocDownload.Name, IC.I.Docin.DocDownload.Pathname, IC.I.Docin.DocDownload.Method, map[string]interface{}{
 		"productId": in.DocId,
 		"userId":    in.PositionId,
 	})
-	b, err = h.HttpFunc()
-	go h.SaveRequestLogger(b, err)
+	b, err, isJson = h.HttpFunc()
+	go h.SaveDocinLogger(b, err, "req")
 	if err == nil {
-		log.Println(string(b))
-		dRes := &DRes{}
-		if err = json.Unmarshal(b, &dRes); err != nil {
-			res.Data = string(b)
+		//豆丁同步数据到mongo
+		go h.SaveDocinLogger(b, err, "res")
+		if isJson {
+			err = json.Unmarshal(b, &res)
 		} else {
-			res.Msg = dRes.Msg
-			res.Code = dRes.Code
+			res = FileUpload(b)
 		}
 	} else {
 		res.Msg = err.Error()

+ 24 - 0
rpc/partnerlib/service/ossFileUpload.go

@@ -0,0 +1,24 @@
+package service
+
+import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib"
+	jyDocRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
+	"app.yhyue.com/moapp/jyfs/rpc/filesystem"
+	"github.com/gogf/gf/v2/os/gctx"
+)
+
+// 上传文档信息
+func FileUpload(b []byte) (res *partnerlib.UDRes) {
+	if len(b) > 0 {
+		fRes, err := jyDocRpcUtil.FileSystem.SaveFile(gctx.New(), &filesystem.SaveFileReq{
+			Domain:         "",
+			FileId:         "",
+			Meta:           nil,
+			RawFileContent: nil,
+		})
+		if err == nil {
+
+		}
+	}
+	return
+}

+ 21 - 25
rpc/partnerlib/service/service.go

@@ -40,33 +40,38 @@ func NewHH(name, host, apiName, pathname, method string, params map[string]inter
 }
 
 // 豆丁api 请求
-func (h *HH) HttpFunc() (body []byte, err error) {
+func (h *HH) HttpFunc() (body []byte, err error, isJson bool) {
+	entity.DocsLock.Lock()
+	defer entity.DocsLock.Unlock()
 	if h.Params == nil || len(h.Params) == 0 {
 		err = fmt.Errorf("参数异常")
 		return
 	}
 	var (
 		href string
-		bb   *bytes.Buffer
+		req  *http.Request
 	)
 	switch h.Method {
 	case "POST":
+		var bb *bytes.Buffer
 		href = fmt.Sprintf("%s%s", h.Host, h.Pathname)
 		b, _err := json.Marshal(h.Params)
 		if _err == nil {
 			bb = bytes.NewBuffer(b)
 		}
+		// 创建 请求并添加查询参数
+		req, err = http.NewRequest(h.Method, href, bb)
 	case "GET":
 		params := url.Values{}
 		for k, v := range h.Params {
 			params.Add(k, common.InterfaceToStr(v))
 		}
 		href = fmt.Sprintf("%s%s?%s", h.Host, h.Pathname, params.Encode())
+		// 创建 请求并添加查询参数
+		req, err = http.NewRequest(h.Method, href, nil)
 	}
-	// 创建 请求并添加查询参数
-	req, _err := http.NewRequest(h.Method, href, bb)
-	if _err != nil {
-		err = fmt.Errorf("error creating GET request:%v", _err)
+	if err != nil {
+		err = fmt.Errorf("error creating GET request:%v", err)
 		return
 	}
 	// 添加请求头
@@ -86,6 +91,7 @@ func (h *HH) HttpFunc() (body []byte, err error) {
 	}
 	defer resp.Body.Close()
 	body, err = io.ReadAll(resp.Body)
+	isJson = strings.Contains(strings.ToLower(resp.Header.Get("Content-Type")), "text/json")
 	if err != nil {
 		log.Println("Failed to read response body", http.StatusInternalServerError)
 		return
@@ -117,23 +123,12 @@ func (h *HH) GetAuthorization() string {
 }
 
 // 豆丁api请求日志 存mongo
-func (h *HH) SaveRequestLogger(b []byte, err error) {
-	partner.SaveDocinRequestLogger(map[string]interface{}{
-		"name":       h.Name,
-		"host":       h.Host,
-		"apiName":    h.ApiName,
-		"params":     h.Params,
-		"method":     h.Method,
-		"pathname":   h.Pathname,
-		"createDate": date.NowFormat(date.Date_Full_Layout),
-		"content":    string(b),
-		"err":        err,
-	})
-}
-
-// 豆丁api请求日志 存mongo
-func (h *HH) SaveResponseData(b []byte, err error) {
-	partner.SaveDocinList(map[string]interface{}{
+func (h *HH) SaveDocinLogger(b []byte, err error, mark string) {
+	var body = map[string]interface{}{}
+	if err := json.Unmarshal(b, &body); err != nil {
+		log.Println("json b to body err:", err.Error())
+	}
+	partner.SaveDocinLogger(map[string]interface{}{
 		"name":       h.Name,
 		"host":       h.Host,
 		"apiName":    h.ApiName,
@@ -141,7 +136,8 @@ func (h *HH) SaveResponseData(b []byte, err error) {
 		"method":     h.Method,
 		"pathname":   h.Pathname,
 		"createDate": date.NowFormat(date.Date_Full_Layout),
-		"content":    string(b),
-		"err":        err,
+		"content":    body,
+		"ok":         common.If(err == nil, true, false).(bool),
+		"httpType":   mark,
 	})
 }

+ 7 - 7
rpc/partnerlib/service/userBuy.go

@@ -4,7 +4,6 @@ import (
 	IC "app.yhyue.com/moapp/jy_docs/rpc/partnerlib/init"
 	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/type/partnerlib"
 	"encoding/json"
-	"log"
 )
 
 type BRes struct {
@@ -13,8 +12,8 @@ type BRes struct {
 	OrderNo string
 }
 
-func UBHandle(in *partnerlib.UserBuyVipRequest) (res *partnerlib.CommonResponse, err error) {
-	res = new(partnerlib.CommonResponse)
+func UBHandle(in *partnerlib.UserBuyVipRequest) (res *partnerlib.UBVRes, err error) {
+	res = new(partnerlib.UBVRes)
 	var (
 		b []byte
 	)
@@ -27,13 +26,14 @@ func UBHandle(in *partnerlib.UserBuyVipRequest) (res *partnerlib.CommonResponse,
 		"type":      in.Type,
 		"orderTime": in.OrderTime,
 	})
-	b, err = h.HttpFunc()
-	go h.SaveRequestLogger(b, err)
+	b, err, _ = h.HttpFunc()
+	go h.SaveDocinLogger(b, err, "req")
 	if err == nil {
-		log.Println(string(b))
+		//豆丁同步数据到mongo
+		go h.SaveDocinLogger(b, err, "res")
 		bRes := &BRes{}
 		if err = json.Unmarshal(b, &bRes); err == nil {
-			res.Data = bRes.OrderNo
+			res.OrderNo = bRes.OrderNo
 			res.Msg = bRes.Msg
 			res.Code = bRes.Code
 			return

+ 118 - 37
rpc/partnerlib/type/partnerlib/partnerlib.pb.go

@@ -252,19 +252,19 @@ func (x *UserBuyVipRequest) GetMold() int64 {
 	return 0
 }
 
-//公共返回
-type CommonResponse struct {
+// 用户下载
+type UDRes struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Code int64  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
-	Msg  string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
-	Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
+	Code     int64  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
+	Msg      string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
+	OssDocId string `protobuf:"bytes,3,opt,name=ossDocId,proto3" json:"ossDocId,omitempty"`
 }
 
-func (x *CommonResponse) Reset() {
-	*x = CommonResponse{}
+func (x *UDRes) Reset() {
+	*x = UDRes{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_partnerlib_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -272,13 +272,13 @@ func (x *CommonResponse) Reset() {
 	}
 }
 
-func (x *CommonResponse) String() string {
+func (x *UDRes) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*CommonResponse) ProtoMessage() {}
+func (*UDRes) ProtoMessage() {}
 
-func (x *CommonResponse) ProtoReflect() protoreflect.Message {
+func (x *UDRes) ProtoReflect() protoreflect.Message {
 	mi := &file_partnerlib_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -290,28 +290,92 @@ func (x *CommonResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead.
-func (*CommonResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use UDRes.ProtoReflect.Descriptor instead.
+func (*UDRes) Descriptor() ([]byte, []int) {
 	return file_partnerlib_proto_rawDescGZIP(), []int{2}
 }
 
-func (x *CommonResponse) GetCode() int64 {
+func (x *UDRes) GetCode() int64 {
 	if x != nil {
 		return x.Code
 	}
 	return 0
 }
 
-func (x *CommonResponse) GetMsg() string {
+func (x *UDRes) GetMsg() string {
 	if x != nil {
 		return x.Msg
 	}
 	return ""
 }
 
-func (x *CommonResponse) GetData() string {
+func (x *UDRes) GetOssDocId() string {
 	if x != nil {
-		return x.Data
+		return x.OssDocId
+	}
+	return ""
+}
+
+//会员购买返回值
+type UBVRes struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Code    int64  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
+	Msg     string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
+	OrderNo string `protobuf:"bytes,3,opt,name=orderNo,proto3" json:"orderNo,omitempty"`
+}
+
+func (x *UBVRes) Reset() {
+	*x = UBVRes{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_partnerlib_proto_msgTypes[3]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UBVRes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UBVRes) ProtoMessage() {}
+
+func (x *UBVRes) ProtoReflect() protoreflect.Message {
+	mi := &file_partnerlib_proto_msgTypes[3]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UBVRes.ProtoReflect.Descriptor instead.
+func (*UBVRes) Descriptor() ([]byte, []int) {
+	return file_partnerlib_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UBVRes) GetCode() int64 {
+	if x != nil {
+		return x.Code
+	}
+	return 0
+}
+
+func (x *UBVRes) GetMsg() string {
+	if x != nil {
+		return x.Msg
+	}
+	return ""
+}
+
+func (x *UBVRes) GetOrderNo() string {
+	if x != nil {
+		return x.OrderNo
 	}
 	return ""
 }
@@ -353,23 +417,27 @@ var file_partnerlib_proto_rawDesc = []byte{
 	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65,
 	0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52,
 	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x6c, 0x64, 0x18, 0x0c,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x6c, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x43, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04,
-	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
-	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
-	0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x9b, 0x01, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x6e,
-	0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x6f, 0x63, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
-	0x64, 0x12, 0x1f, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x55,
-	0x73, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e,
-	0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6d, 0x6f, 0x6c, 0x64, 0x22, 0x49, 0x0a, 0x05, 0x55, 0x44,
+	0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x73, 0x73,
+	0x44, 0x6f, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x73, 0x73,
+	0x44, 0x6f, 0x63, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x06, 0x55, 0x42, 0x56, 0x52, 0x65, 0x73, 0x12,
+	0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63,
+	0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x32,
+	0x8a, 0x01, 0x0a, 0x07, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0b, 0x44,
+	0x6f, 0x63, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1f, 0x2e, 0x70, 0x61, 0x72,
+	0x74, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e,
+	0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x70, 0x61,
+	0x72, 0x74, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x55, 0x44, 0x52, 0x65, 0x73, 0x12, 0x3c,
 	0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x12, 0x1d, 0x2e, 0x70, 0x61, 0x72, 0x74,
 	0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x75, 0x79, 0x56, 0x69,
-	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e,
-	0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65,
-	0x72, 0x6c, 0x69, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x6e,
+	0x65, 0x72, 0x6c, 0x69, 0x62, 0x2e, 0x55, 0x42, 0x56, 0x52, 0x65, 0x73, 0x42, 0x0e, 0x5a, 0x0c,
+	0x2e, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x6c, 0x69, 0x62, 0x62, 0x06, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -384,17 +452,18 @@ func file_partnerlib_proto_rawDescGZIP() []byte {
 	return file_partnerlib_proto_rawDescData
 }
 
-var file_partnerlib_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_partnerlib_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
 var file_partnerlib_proto_goTypes = []interface{}{
 	(*UserDownloadRequest)(nil), // 0: partnerlib.UserDownloadRequest
 	(*UserBuyVipRequest)(nil),   // 1: partnerlib.UserBuyVipRequest
-	(*CommonResponse)(nil),      // 2: partnerlib.CommonResponse
+	(*UDRes)(nil),               // 2: partnerlib.UDRes
+	(*UBVRes)(nil),              // 3: partnerlib.UBVRes
 }
 var file_partnerlib_proto_depIdxs = []int32{
 	0, // 0: partnerlib.Partner.DocDownload:input_type -> partnerlib.UserDownloadRequest
 	1, // 1: partnerlib.Partner.UserBuy:input_type -> partnerlib.UserBuyVipRequest
-	2, // 2: partnerlib.Partner.DocDownload:output_type -> partnerlib.CommonResponse
-	2, // 3: partnerlib.Partner.UserBuy:output_type -> partnerlib.CommonResponse
+	2, // 2: partnerlib.Partner.DocDownload:output_type -> partnerlib.UDRes
+	3, // 3: partnerlib.Partner.UserBuy:output_type -> partnerlib.UBVRes
 	2, // [2:4] is the sub-list for method output_type
 	0, // [0:2] is the sub-list for method input_type
 	0, // [0:0] is the sub-list for extension type_name
@@ -433,7 +502,19 @@ func file_partnerlib_proto_init() {
 			}
 		}
 		file_partnerlib_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CommonResponse); i {
+			switch v := v.(*UDRes); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_partnerlib_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UBVRes); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -451,7 +532,7 @@ func file_partnerlib_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_partnerlib_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   3,
+			NumMessages:   4,
 			NumExtensions: 0,
 			NumServices:   1,
 		},

+ 10 - 10
rpc/partnerlib/type/partnerlib/partnerlib_grpc.pb.go

@@ -22,8 +22,8 @@ const _ = grpc.SupportPackageIsVersion7
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type PartnerClient interface {
-	DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*CommonResponse, error)
-	UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*CommonResponse, error)
+	DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*UDRes, error)
+	UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*UBVRes, error)
 }
 
 type partnerClient struct {
@@ -34,8 +34,8 @@ func NewPartnerClient(cc grpc.ClientConnInterface) PartnerClient {
 	return &partnerClient{cc}
 }
 
-func (c *partnerClient) DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*CommonResponse, error) {
-	out := new(CommonResponse)
+func (c *partnerClient) DocDownload(ctx context.Context, in *UserDownloadRequest, opts ...grpc.CallOption) (*UDRes, error) {
+	out := new(UDRes)
 	err := c.cc.Invoke(ctx, "/partnerlib.Partner/DocDownload", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -43,8 +43,8 @@ func (c *partnerClient) DocDownload(ctx context.Context, in *UserDownloadRequest
 	return out, nil
 }
 
-func (c *partnerClient) UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*CommonResponse, error) {
-	out := new(CommonResponse)
+func (c *partnerClient) UserBuy(ctx context.Context, in *UserBuyVipRequest, opts ...grpc.CallOption) (*UBVRes, error) {
+	out := new(UBVRes)
 	err := c.cc.Invoke(ctx, "/partnerlib.Partner/UserBuy", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -56,8 +56,8 @@ func (c *partnerClient) UserBuy(ctx context.Context, in *UserBuyVipRequest, opts
 // All implementations must embed UnimplementedPartnerServer
 // for forward compatibility
 type PartnerServer interface {
-	DocDownload(context.Context, *UserDownloadRequest) (*CommonResponse, error)
-	UserBuy(context.Context, *UserBuyVipRequest) (*CommonResponse, error)
+	DocDownload(context.Context, *UserDownloadRequest) (*UDRes, error)
+	UserBuy(context.Context, *UserBuyVipRequest) (*UBVRes, error)
 	mustEmbedUnimplementedPartnerServer()
 }
 
@@ -65,10 +65,10 @@ type PartnerServer interface {
 type UnimplementedPartnerServer struct {
 }
 
-func (UnimplementedPartnerServer) DocDownload(context.Context, *UserDownloadRequest) (*CommonResponse, error) {
+func (UnimplementedPartnerServer) DocDownload(context.Context, *UserDownloadRequest) (*UDRes, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method DocDownload not implemented")
 }
-func (UnimplementedPartnerServer) UserBuy(context.Context, *UserBuyVipRequest) (*CommonResponse, error) {
+func (UnimplementedPartnerServer) UserBuy(context.Context, *UserBuyVipRequest) (*UBVRes, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UserBuy not implemented")
 }
 func (UnimplementedPartnerServer) mustEmbedUnimplementedPartnerServer() {}

+ 39 - 26
services/model/partner.go

@@ -1,38 +1,51 @@
 package model
 
 type Docin struct {
-	ProductId     int64  `json:"product_id" gorm:"column:product_id"`
-	ProductName   string `json:"product_name" gorm:"column:product_name"`
-	FilePostfix   string `json:"file_postfix" gorm:"column:file_postfix"`
-	FileSize      int64  `json:"file_size" gorm:"column:file_size"`
-	VisitCount    int64  `json:"visit_count" gorm:"column:visit_count"`
-	DownloadCount int64  `json:"download_count" gorm:"column:download_count"`
-	IfCharge      int64  `json:"if_charge" gorm:"column:if_charge"`
-	Price         int64  `json:"price" gorm:"column:price"`
-	PriceVip      int64  `json:"price_vip" gorm:"column:price_vip"`
-	PCatName      string `json:"p_cat_name" gorm:"column:p_cat_name"`
-	CatName       string `json:"cat_name" gorm:"column:cat_name"`
-	Desc          string `json:"desc" gorm:"column:desc"`
-	CreateDate    string `json:"create_date" gorm:"column:create_date"`
-	ModifyDate    string `json:"modify_date" gorm:"column:modify_date"`
+	Id              string `json:"id" gorm:"column:id"`
+	UserId          string `json:"userId" gorm:"column:userId"`
+	AppId           string `json:"appId" gorm:"column:appId"`
+	DocName         string `json:"docName" gorm:"column:docName"`
+	DocFileType     int    `json:"docFileType" gorm:"column:docFileType"`
+	DocFileSuffix   string `json:"docFileSuffix" gorm:"column:docFileSuffix"`
+	DocFileSize     int    `json:"docFileSize" gorm:"column:docFileSize"`
+	DocPageSize     int    `json:"docPageSize" gorm:"column:docPageSize"`
+	DocTags         string `json:"docTags" gorm:"column:docTags"`
+	DocClass        string `json:"docClass" gorm:"column:docClass"`
+	UploadDate      string `json:"uploadDate" gorm:"column:uploadDate"`
+	IsDelete        int    `json:"isDelete" gorm:"column:isDelete"`
+	OssDocId        string `json:"ossDocId" gorm:"column:ossDocId"`
+	Md5             string `json:"md5" gorm:"column:md5"`
+	OssPdfId        string `json:"ossPdfId" gorm:"column:ossPdfId"`
+	OssTxtId        string `json:"ossTxtId" gorm:"column:ossTxtId"`
+	Price           int    `json:"price" gorm:"column:price"`
+	PriceVip        int    `json:"priceVip" gorm:"column:priceVip"`
+	DownOrUp        int    `json:"downOrUp" gorm:"column:downOrUp"`
+	DocSummary      string `json:"docSummary" gorm:"column:docSummary"`
+	PreviewImgId    string `json:"previewImgId" gorm:"column:previewImgId"`
+	EncryptionLevel int    `json:"encryptionLevel" gorm:"column:encryptionLevel"` //
+	Source          int    `json:"source" gorm:"column:source"`
+	ProductType     int    `json:"productType" gorm:"column:productType"`
+	UpdateDate      string `json:"updateDate" gorm:"column:updateDate"`
 }
 
 func (ud *Docin) TableName() string {
 	return "doc"
 }
 
-//type DocinStatistics struct {
-//	DocId      string `json:"docId" gorm:"column:docId"`
-//	AppId      string `json:"appId" gorm:"column:appId"`
-//	UpdateDate string `json:"updateDate" gorm:"column:updateDate"`
-//	Score      string `json:"score" gorm:"column:score"`
-//	DownTimes  string `json:"downTimes" gorm:"column:downTimes"`
-//	ViewTimes  string `json:"viewTimes" gorm:"column:viewTimes"`
-//}
-//
-//func (ud *DocinStatistics) TableName() string {
-//	return "doc_statistics"
-//}
+// 精品文库订单信息表
+type DocinUserOrder struct {
+	PositionId string `json:"position_id" gorm:"column:position_id"`
+	MgoUserId  string `json:"mgo_user_id" gorm:"column:mgo_user_id"`
+	Phone      string `json:"phone" gorm:"column:phone"`
+	OrderCode  string `json:"order_code" gorm:"column:order_code"`
+	State      string `json:"state" gorm:"column:state"`
+	CreateTime string `json:"create_time" gorm:"column:create_time"`
+	UpdateTime string `json:"update_time" gorm:"column:update_time"`
+}
+
+func (ud *DocinUserOrder) TableName() string {
+	return "doc_user_order"
+}
 
 type DocClass struct {
 	Name  string

+ 35 - 35
services/model/stdlib.go

@@ -5,35 +5,35 @@ import (
 )
 
 type Doc struct {
-	Id              string    `json:"id" gorm:"id"`
-	UserId          string    `json:"userId" gorm:"column:userId"`
-	AppId           string    `json:"appId" gorm:"column:appId"`
-	DocName         string    `json:"docName" gorm:"column:docName"`
-	DocFileType     int       `json:"docFileType" gorm:"column:docFileType"`
-	DocFileSuffix   string    `json:"docFileSuffix" gorm:"column:docFileSuffix"`
-	DocFileSize     int       `json:"docFileSize" gorm:"column:docFileSize"`
-	DocPageSize     int       `json:"docPageSize" gorm:"column:docPageSize"`
-	DocTags         string    `json:"docTags" gorm:"column:docTags"`
-	DocClass        string    `json:"docClass" gorm:"column:docClass"`
-	UploadDate      time.Time `json:"uploadDate" gorm:"column:uploadDate"`
-	IsDelete        int       `json:"isDelete" gorm:"column:isDelete"`
-	OssDocId        string    `json:"ossDocId" gorm:"column:ossDocId"`
-	OssDocUrl       string    `json:"ossDocUrl" gorm:"column:ossDocUrl"`
-	Md5             string    `json:"md5" gorm:"column:md5"`
-	OssPdfId        string    `json:"ossPdfId" gorm:"column:ossPdfId"`
-	OssPdfUrl       string    `json:"ossPdfUrl" gorm:"column:ossPdfUrl"`
-	OssTxtId        string    `json:"ossTxtId" gorm:"column:ossTxtId"`
-	OssTxtUrl       string    `json:"ossTxtUrl" gorm:"column:ossTxtUrl"`
-	Price           int       `json:"price" gorm:"column:price"`
-	PriceVip        int       `json:"priceVip" gorm:"column:priceVip"`
-	DownOrUp        int       `json:"downOrUp" gorm:"column:downOrUp"`
-	DocSummary      string    `json:"docSummary" gorm:"column:docSummary"`
-	PreviewImgId    string    `json:"preview_img_id" gorm:"column:previewImgId"`
-	PreviewImgUrl   string    `json:"preview_img_url" gorm:"column:previewImgUrl"`
-	EncryptionLevel int       `json:"encryption_level" gorm:"encryption_level"` //
-	Source          int       `json:"source" gorm:"source"`
-	ProductType     int       `json:"product_type" gorm:"encryption_level"`
-	UpdateDate      time.Time `json:"updateDate" gorm:"updateDate"`
+	Id            string    `json:"id" gorm:"column:id"`
+	UserId        string    `json:"userId" gorm:"column:userId"`
+	AppId         string    `json:"appId" gorm:"column:appId"`
+	DocName       string    `json:"docName" gorm:"column:docName"`
+	DocFileType   int       `json:"docFileType" gorm:"column:docFileType"`
+	DocFileSuffix string    `json:"docFileSuffix" gorm:"column:docFileSuffix"`
+	DocFileSize   int       `json:"docFileSize" gorm:"column:docFileSize"`
+	DocPageSize   int       `json:"docPageSize" gorm:"column:docPageSize"`
+	DocTags       string    `json:"docTags" gorm:"column:docTags"`
+	DocClass      string    `json:"docClass" gorm:"column:docClass"`
+	UploadDate    time.Time `json:"uploadDate" gorm:"column:uploadDate"`
+	IsDelete      int       `json:"isDelete" gorm:"column:isDelete"`
+	OssDocId      string    `json:"ossDocId" gorm:"column:ossDocId"`
+	//OssDocUrl       string    `json:"ossDocUrl" gorm:"column:ossDocUrl"`
+	Md5      string `json:"md5" gorm:"column:md5"`
+	OssPdfId string `json:"ossPdfId" gorm:"column:ossPdfId"`
+	//OssPdfUrl       string    `json:"ossPdfUrl" gorm:"column:ossPdfUrl"`
+	OssTxtId string `json:"ossTxtId" gorm:"column:ossTxtId"`
+	//OssTxtUrl       string    `json:"ossTxtUrl" gorm:"column:ossTxtUrl"`
+	Price        int    `json:"price" gorm:"column:price"`
+	PriceVip     int    `json:"priceVip" gorm:"column:priceVip"`
+	DownOrUp     int    `json:"downOrUp" gorm:"column:downOrUp"`
+	DocSummary   string `json:"docSummary" gorm:"column:docSummary"`
+	PreviewImgId string `json:"previewImgId" gorm:"column:previewImgId"`
+	//PreviewImgUrl   string    `json:"preview_img_url" gorm:"column:previewImgUrl"`
+	EncryptionLevel int       `json:"encryptionLevel" gorm:"column:encryptionLevel"` //
+	Source          int       `json:"source" gorm:"column:source"`
+	ProductType     int       `json:"productType" gorm:"column:productType"`
+	UpdateDate      time.Time `json:"updateDate" gorm:"column:updateDate"`
 }
 
 func (ud *Doc) TableName() string {
@@ -103,12 +103,12 @@ func (ud *UserDocData) TableName() string {
 
 type DocStatistics struct {
 	Id         int       `json:"id"`
-	AppId      string    `json:"app_id"  gorm:"column:appId"`
-	DocId      string    `json:"doc_id" gorm:"column:docId"`
-	UpdateDate time.Time `json:"update_date" gorm:"column:updateDate"`
-	score      int       `json:"score" gorm:"column:score"`
-	DownTimes  int       `json:"down_times" gorm:"column:downTimes"`
-	ViewTimes  int       `json:"view_times" gorm:"column:viewTimes"`
+	AppId      string    `json:"appId"  gorm:"column:appId"`
+	DocId      string    `json:"docId" gorm:"column:docId"`
+	UpdateDate time.Time `json:"updateDate" gorm:"column:updateDate"`
+	Score      int       `json:"score" gorm:"column:score"`
+	DownTimes  int       `json:"downTimes" gorm:"column:downTimes"`
+	ViewTimes  int       `json:"viewTimes" gorm:"column:viewTimes"`
 }
 
 func (ud *DocStatistics) TableName() string {

+ 6 - 2
services/partner/docCheck.go

@@ -1,9 +1,13 @@
 package partner
 
-import docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
+import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
+	docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
+)
 
 func CheckDocs(docId, md5Id string) bool {
 	var count int64
-	docRpcUtil.GetJyDocsDB().Exec("SELECT COUNT(id) FROM `doc` WHERE id = ? OR md5 = ?", docId, md5Id).Count(&count)
+	//docRpcUtil.GetJyDocsDB().Raw("SELECT COUNT(id) FROM `doc` WHERE id = ? OR md5 = ?", docId, md5Id).Count(&count)
+	docRpcUtil.GetJyDocsDB().Table(entity.DocTable).Where("id = ? OR md5 = ?", docId, md5Id).Count(&count)
 	return count > 0
 }

+ 2 - 1
services/partner/docClass.go

@@ -14,7 +14,8 @@ var (
 // 初始化 文档分类关系
 func InitDocClass() {
 	var dcs = []*model.DocClass{}
-	if err := docRpcUtil.GetJyDocsDB().Table("doc_class").Find(&dcs).Error; err == nil && len(dcs) > 0 {
+	err := docRpcUtil.GetJyDocsDB().Table("doc_class").Find(&dcs).Error
+	if err == nil && len(dcs) > 0 {
 		var (
 			jyMap  = map[string]string{}
 			tagMap = map[string]string{}

+ 3 - 2
services/partner/docsInsert.go

@@ -1,13 +1,14 @@
 package partner
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
 	"app.yhyue.com/moapp/jy_docs/services/model"
 	docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 	"log"
 )
 
-func DocsInsert(docinInfos []model.Doc, count int) {
-	res := docRpcUtil.GetJyDocsDB().CreateInBatches(&docinInfos, count)
+func DocsInsert(docinInfos []model.DocNew, count int) {
+	res := docRpcUtil.GetJyDocsDB().Table(entity.DocTable).CreateInBatches(&docinInfos, count)
 	if res.Error != nil {
 		log.Println("error:", res.Error)
 		return

+ 2 - 1
services/partner/docsStatistics.go

@@ -1,13 +1,14 @@
 package partner
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
 	"app.yhyue.com/moapp/jy_docs/services/model"
 	docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 	"log"
 )
 
 func DocsStatistics(docinStatistics []model.DocStatistics, count int) {
-	res := docRpcUtil.GetJyDocsDB().CreateInBatches(&docinStatistics, count)
+	res := docRpcUtil.GetJyDocsDB().Table(entity.DocStatisticsTable).CreateInBatches(&docinStatistics, count)
 	if res.Error != nil {
 		log.Println("error:", res.Error)
 		return

+ 7 - 1
services/partner/docsUpdate.go

@@ -1,6 +1,7 @@
 package partner
 
 import (
+	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
 	"app.yhyue.com/moapp/jy_docs/services/model"
 	docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 	"app.yhyue.com/moapp/jybase/date"
@@ -8,7 +9,12 @@ import (
 )
 
 func DocsUpdate(doc model.Doc) (err error) {
-	err = docRpcUtil.GetJyDocsDB().Exec(`UPDATE doc SET updateDate = ?,price = ?,priceVip = ?,product_type = ?,downOrUp = ? WHERE id = ?`, doc.UpdateDate.Format(date.Date_Full_Layout), doc.Price, doc.PriceVip, doc.ProductType, doc.DownOrUp, doc.Id).Error
+	err = docRpcUtil.GetJyDocsDB().Table(entity.DocTable).Where("id=?", doc.Id).Updates(map[string]interface{}{
+		"updateDate":  doc.UpdateDate.Format(date.Date_Full_Layout),
+		"price":       doc.Price,
+		"productType": doc.ProductType,
+		"downOrUp":    doc.DownOrUp,
+	}).Error
 	if err.Error != nil {
 		log.Println("error:", err.Error)
 		return

+ 3 - 2
services/partner/elastic.go

@@ -2,13 +2,14 @@ package partner
 
 import (
 	"app.yhyue.com/moapp/jy_docs/rpc/partnerlib/entity"
-	"app.yhyue.com/moapp/jybase/es"
+	jyDocsRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 )
 
 // 同步豆丁文档到es
 func SyncDocsToES(docs []map[string]interface{}) {
+	//jyDocsRpcUtil.GetESV7DB().Save(entity.ElasticJYDoc, entity.ElasticJYDoc, docs[0])
 	if len(docs) > 0 {
-		es.BulkSave(entity.ElasticJYDoc, entity.ElasticJYDoc, &docs, false)
+		jyDocsRpcUtil.GetESV7DB().BulkSave(entity.ElasticJYDoc, entity.ElasticJYDoc, &docs, false)
 	}
 	return
 }

+ 1 - 1
services/partner/mgo.go

@@ -3,7 +3,7 @@ package partner
 import docRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
 
 // 接口请求日志
-func SaveDocinRequestLogger(logMap map[string]interface{}) {
+func SaveDocinLogger(logMap map[string]interface{}) {
 	docRpcUtil.GetJyMgoLoggerDB().Save("doc_log", logMap)
 }
 

+ 25 - 11
services/util/baseInit.go

@@ -1,6 +1,7 @@
 package util
 
 import (
+	"app.yhyue.com/moapp/jybase/es"
 	elastic "app.yhyue.com/moapp/jybase/esv7"
 	"app.yhyue.com/moapp/jybase/mongodb"
 	"app.yhyue.com/moapp/jybase/mysql"
@@ -28,10 +29,6 @@ type EsConfig struct {
 	Password string
 }
 
-type RedisConfig struct {
-	Addr []string
-}
-
 type MongoConfig struct {
 	Main   Mongo
 	Logger Mongo
@@ -50,6 +47,7 @@ var (
 	FileSystem filesystemclient.FileSystem
 	mgoLog     *mongodb.MongodbSim
 	mgoMain    *mongodb.MongodbSim
+	esV7       es.Es
 )
 
 func InitDB(url, driverName string, maxOpenConn, maxIdle int) {
@@ -59,7 +57,6 @@ func InitDB(url, driverName string, maxOpenConn, maxIdle int) {
 	} else {
 		log.Fatalf("----------->【jy_docs】 DB初始化失败<--------------")
 	}
-
 }
 
 func InitEs(addr string, poolSize int, userName, password string) {
@@ -74,17 +71,17 @@ func InitOss(etcd discov.EtcdConf) {
 	FileSystem = filesystemclient.NewFileSystem(client)
 }
 
-func InitRedis(rc RedisConfig) {
+func InitRedis(rc []string) {
 	//初始化 redis
-	if len(rc.Addr) > 0 {
-		log.Println("--初始化 redis--")
-		redis.InitRedisBySize(strings.Join(rc.Addr, ","), 100, 30, 300)
+	if len(rc) > 0 {
+		log.Printf("----------->【jy_docs】 redis :[%s] init<--------------", strings.Join(rc, ","))
+		redis.InitRedisBySize(strings.Join(rc, ","), 100, 30, 300)
 	}
 }
 
 func InitMongo(mgo MongoConfig) {
 	if mgo.Main.Address != "" {
-		log.Println("--初始化 mongodb main --")
+		log.Printf("----------->【jy_docs】 mongodb main:[%s] init<--------------", mgo.Main.Address)
 		mgoMain = &mongodb.MongodbSim{
 			MongodbAddr: mgo.Main.Address,
 			Size:        mgo.Main.Size,
@@ -95,7 +92,7 @@ func InitMongo(mgo MongoConfig) {
 		mgoMain.InitPool()
 	}
 	if mgo.Logger.Address != "" {
-		log.Println("--初始化 mongodb log--")
+		log.Printf("----------->【jy_docs】 mongodb log:[%s] init<--------------", mgo.Logger.Address)
 		mgoLog = &mongodb.MongodbSim{
 			MongodbAddr: mgo.Logger.Address,
 			Size:        mgo.Logger.Size,
@@ -107,6 +104,19 @@ func InitMongo(mgo MongoConfig) {
 	}
 }
 
+// esv7
+func InitESV7(addr string, poolSize int, userName, password string) {
+	if addr != "" {
+		log.Printf("----------->【jy_docs】 elasticSearch :[%s] init<--------------", addr)
+		esV7 = &es.EsV7{
+			Address:  addr,
+			UserName: userName,
+			Password: password,
+			Size:     poolSize,
+		}
+		esV7.Init()
+	}
+}
 func GetJyMgoLoggerDB() *mongodb.MongodbSim {
 	return mgoLog
 }
@@ -118,3 +128,7 @@ func GetJyMgoMainDB() *mongodb.MongodbSim {
 func GetJyDocsDB() *gorm.DB {
 	return jyDocsDB
 }
+
+func GetESV7DB() es.Es {
+	return esV7
+}