Browse Source

Merge remote-tracking branch 'origin/feature/v4.7.55' into feature/v4.7.55

# Conflicts:
#	src/go.mod
#	src/go.sum
#	src/jfw/front/front.go
#	src/jfw/modules/app/src/go.mod
#	src/jfw/modules/app/src/go.sum
#	src/jfw/modules/bigmember/src/go.mod
#	src/jfw/modules/bigmember/src/go.sum
#	src/jfw/modules/bigmember/src/service/report/report.go
#	src/jfw/modules/publicapply/src/go.mod
#	src/jfw/modules/publicapply/src/go.sum
#	src/jfw/modules/publicapply/src/grpc/usercenter.go
#	src/jfw/modules/subscribepay/src/go.mod
WH01243 2 years ago
parent
commit
8fcb689a00
47 changed files with 2710 additions and 1834 deletions
  1. 5 7
      src/go.mod
  2. 10 15
      src/go.sum
  3. 17 13
      src/jfw/config/config.go
  4. 16 2
      src/jfw/filter/filter.go
  5. 54 0
      src/jfw/filter/pcUserSalesFilter.go
  6. 1296 1330
      src/jfw/front/front.go
  7. 22 14
      src/jfw/front/tags.go
  8. 0 40
      src/jfw/grpc/usercenter.go
  9. 6 63
      src/jfw/jyutil/jyutil.go
  10. 13 2
      src/jfw/modules/app/src/app/filter/filter.go
  11. 63 66
      src/jfw/modules/app/src/app/front/login.go
  12. 4 0
      src/jfw/modules/app/src/config.yaml
  13. 14 25
      src/jfw/modules/app/src/go.mod
  14. 22 33
      src/jfw/modules/app/src/go.sum
  15. 19 12
      src/jfw/modules/app/src/jfw/config/config.go
  16. 20 0
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js
  17. 9 3
      src/jfw/modules/bigmember/src/filter/sessionfilter.go
  18. 14 15
      src/jfw/modules/bigmember/src/go.mod
  19. 22 33
      src/jfw/modules/bigmember/src/go.sum
  20. BIN
      src/jfw/modules/bigmember/src/src
  21. 4 0
      src/jfw/modules/publicapply/src/config.yaml
  22. 12 6
      src/jfw/modules/publicapply/src/config/config.go
  23. 20 5
      src/jfw/modules/publicapply/src/filter/sessionfilter.go
  24. 5 6
      src/jfw/modules/publicapply/src/go.mod
  25. 10 15
      src/jfw/modules/publicapply/src/go.sum
  26. 7 38
      src/jfw/modules/publicapply/src/identity/service/service.go
  27. BIN
      src/jfw/modules/publicapply/src/publicapply
  28. 16 9
      src/jfw/modules/publicapply/src/userbase/entity/entity.go
  29. 1 1
      src/jfw/modules/publicapply/src/userbase/service/service.go
  30. 19 16
      src/jfw/modules/subscribepay/src/go.mod
  31. 2 13
      src/jfw/modules/subscribepay/src/report/report.go
  32. 18 1
      src/web/staticres/common-module/portraitRecord/js/index-wx.js
  33. 18 1
      src/web/staticres/common-module/portraitRecord/js/index.js
  34. 3 0
      src/web/staticres/frontRouter/pc/collection/css/index-pc.css
  35. 224 0
      src/web/staticres/frontRouter/pc/user/css/set_favorite.css
  36. BIN
      src/web/staticres/frontRouter/pc/user/img/logo-transparent.png
  37. 222 0
      src/web/staticres/frontRouter/pc/user/js/set_favorite.js
  38. 63 0
      src/web/staticres/js/guide-intro-dialog.js
  39. 49 15
      src/web/staticres/js/login.js
  40. 1 1
      src/web/staticres/public-pc/js/header-nav.js
  41. 20 1
      src/web/staticres/vipsubscribe/js/vip_index_new.js
  42. 60 0
      src/web/templates/common/guide-intro-dialog.html
  43. 4 0
      src/web/templates/common/pchead.html
  44. 12 12
      src/web/templates/frontRouter/pc/enterpriseCertificatio/free/index.html
  45. 139 0
      src/web/templates/frontRouter/pc/pure/sess/guide-intro-dialog-content.html
  46. 134 0
      src/web/templates/frontRouter/pc/user/sess/set_favorite.html
  47. 21 21
      src/web/templates/pc/index.html

+ 5 - 7
src/go.mod

@@ -3,24 +3,23 @@ module jy/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab
-	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1
+	app.yhyue.com/moapp/jybase v0.0.0-20230110071808-0c8ff7f798c6
+	app.yhyue.com/moapp/jypkg v0.0.0-20230110072459-b8e28d30c98d
+	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/dchest/captcha v1.0.0
 	github.com/fsnotify/fsnotify v1.6.0
 	github.com/gogf/gf/v2 v2.2.6
 	github.com/robfig/cron v1.2.0
-	github.com/zeromicro/go-zero v1.4.4
+	github.com/zeromicro/go-zero v1.4.3
 	go.mongodb.org/mongo-driver v1.11.1
 )
 
 
-
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 // indirect
 	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.1.3 // indirect
@@ -90,7 +89,6 @@ require (
 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 // indirect
 	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
 	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
 	go.opentelemetry.io/otel/trace v1.11.0 // indirect

+ 10 - 15
src/go.sum

@@ -11,17 +11,17 @@ app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHu
 app.yhyue.com/moapp/jybase v0.0.0-20220719064915-2fef79005dfa/go.mod h1:FjBF25AYoBrPhVKTXGXWcmEAbBT0ATTK6KJMOA+I80Q=
 app.yhyue.com/moapp/jybase v0.0.0-20220802080941-07f401baab8b/go.mod h1:HelrO6tcD9TcKb/HOP2BLbzppyDz2kpQSFhPMQTUgbQ=
 app.yhyue.com/moapp/jybase v0.0.0-20230109015757-aa3d5e19b196/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab h1:a9XvegdF3aM0y9v5SHtX03LIGMS3+8J1ofoNeyw5J0Y=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab/go.mod h1:MqJfBFTSfZhrNDEnE4e19BmaLkaMr+lYActLXm6lrpw=
+app.yhyue.com/moapp/jybase v0.0.0-20230110071808-0c8ff7f798c6 h1:Szt9G37MxAN5xJXGGS87EtMdIKoucilK5inP3zRLUIE=
+app.yhyue.com/moapp/jybase v0.0.0-20230110071808-0c8ff7f798c6/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110072459-b8e28d30c98d h1:N/71mg7rkJnKNtxVGji0xID2PdRt4BnAj7uKpjA3ZO0=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110072459-b8e28d30c98d/go.mod h1:Arq5I8RsXJvV6i8K7f0ZG6MBt26MLhzuQswoU3SSqjc=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.mod h1:Yj4oabIGItuMoF0BXYLz2XAnF581kxgXBrvlUtIJrkI=
 bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c h1:g49jOlhZlBCJ3IgJA0rotfNf2Gh22pISffUtqxB8XtY=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 h1:Xv1D9avDKeaM5kQTisF/pIt8y7B7yQ/hAxuWEg75LMs=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419023723-0b32d4a41751/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419063004-233fc7ce006c/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
@@ -31,8 +31,8 @@ bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4/go.mod h1:rRiGzKG4F/fmkN
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220418072311-2062bed1e700/go.mod h1:KjcrxTzM96tBc6G4B8tlLBn1lrVy5UJYF8+eTdP4xAE=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220421015128-4a36f3eac5c5/go.mod h1:GT0QC4aaKDuXxAvaU4G02XjCc31TU1ctqBGqxQYOfC4=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220905055615-8540037e1b06/go.mod h1:LS21iwbgP8i3ZHJ1n4yNpLXQ/nzEudUOk0klC6VM2dQ=
-bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1 h1:LH/gm2iRShZ64FEuF7LTzF62iJhOVVD9AxGVHFd0ORI=
-bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1/go.mod h1:m7/aZ1r1FapNT2h3gqmCFVb0EV+CaJaNKNPHMzLHx8Y=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979 h1:hC97JNmBonTAsnDH4XMWLXVqWdo85tCo0ge04cy0e4E=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979/go.mod h1:m7/aZ1r1FapNT2h3gqmCFVb0EV+CaJaNKNPHMzLHx8Y=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
@@ -442,9 +442,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGn
 github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
 github.com/alicebob/miniredis/v2 v2.17.0/go.mod h1:gquAfGbzn92jvtrSC69+6zZnwSODVXVpYDRaGhWaL6I=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
+github.com/alicebob/miniredis/v2 v2.23.1 h1:jR6wZggBxwWygeXcdNyguCOCIjPsZyNUNlAkTx2fu0U=
 github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
-github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M=
-github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
@@ -812,7 +811,6 @@ github.com/jhump/protoreflect v1.10.3/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd
 github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
 github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
-github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
@@ -1117,9 +1115,8 @@ github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ
 github.com/zeromicro/go-zero v1.3.2/go.mod h1:DEj3Fwj1Ui1ltsgf6YqwTL9nD4+tYzIRX0c1pWtQo1E=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
 github.com/zeromicro/go-zero v1.4.0/go.mod h1:1amLn98K7c6FLntb9f8hdmq26ajtolOg4DTFWnRt54o=
+github.com/zeromicro/go-zero v1.4.3 h1:sTQ++6fxQHJnpGCN7h2CUrhWmbvhBqEgE75cJl635SM=
 github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y=
-github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y=
-github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb h1:uWiILQloLUVdtPYr1ZZo2zqtlpzo4G8vUpglo/Fs2H8=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb/go.mod h1:J3xKssoVdrwZ2E29fIox/EKxOZWimS7AZ4fOTCFkOLo=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
@@ -1173,8 +1170,6 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0/go.mod h1:FnDp7XemjN3o
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 h1:j2RFV0Qdt38XQ2Jvi4WIsQ56w8T7eSirYbMw19VXRDg=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0/go.mod h1:pILgiTEtrqvZpoiuGdblDgS5dbIaTgDrkIuKfEFkt+A=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 h1:S8DedULB3gp93Rh+9Z+7NTEv+6Id/KYS7LDyipZ9iCE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0/go.mod h1:5WV40MLWwvWlGP7Xm8g3pMcg0pKOUY609qxJn8y7LmM=
 go.opentelemetry.io/otel/exporters/zipkin v1.3.0/go.mod h1:LxGGfHIYbvsFnrJtBcazb0yG24xHdDGrT/H6RB9r3+8=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
 go.opentelemetry.io/otel/exporters/zipkin v1.9.0/go.mod h1:HyIvYIu37wV4Wx5azd7e05x9k/dOz9KB4x0plw2QNvs=

+ 17 - 13
src/jfw/config/config.go

@@ -3,34 +3,36 @@ package config
 import (
 	util "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/mail"
+	"app.yhyue.com/moapp/jypkg/middleground"
 	"github.com/gogf/gf/v2/frame/g"
 	"github.com/gogf/gf/v2/os/gcfg"
+	"github.com/gogf/gf/v2/os/gctx"
 )
 
-//seo.josn 配置文件中的版本号,可以动态更新
-var Seoconfig_Version string
-
-var Sysconfig map[string]interface{}
-var Seoconfig map[string]interface{}
-var WeixinConfig map[string]interface{}
-var PhoneFilterConfig map[string]interface{}
-var Wxoauth, Wxoauthinfo string
-var ResourceApi ResourceApiConfig
+var (
+	//seo.josn 配置文件中的版本号,可以动态更新
+	Seoconfig_Version    string
+	Sysconfig            map[string]interface{}
+	Seoconfig            map[string]interface{}
+	WeixinConfig         map[string]interface{}
+	PhoneFilterConfig    map[string]interface{}
+	Wxoauth, Wxoauthinfo string
+	ResourceApi          ResourceApiConfig
+	GmailAuth            []*mail.GmailAuth
+	EntnichePcConf       *entnichePcConf
+	Middleground         *middleground.Middleground
+)
 
 type ResourceApiConfig struct {
 	HasPowers string // 获取我的所有权限api
 }
 
-var GmailAuth []*mail.GmailAuth
-
 type entnichePcConf struct {
 	EntnichePcUser   []int  `json:"entnichePcUser"`
 	HideEntnicheMenu []int  `json:"hideEntnicheMenu"`
 	PrivateDataPhone string `json:"privateDataPhone"`
 }
 
-var EntnichePcConf *entnichePcConf
-
 func init() {
 	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
 	util.ReadConfig(&Sysconfig)
@@ -63,4 +65,6 @@ func init() {
 		panic("未获取到资源中心配置")
 	}
 	ResourceApi.HasPowers = resourceCenter + util.ObjToString(resourceCenterUrl["haspowers"])
+	var ctx = gctx.New()
+	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings(), g.Cfg().MustGet(ctx, "userCenterKey").String())
 }

+ 16 - 2
src/jfw/filter/filter.go

@@ -1,15 +1,14 @@
 package filter
 
 import (
+	. "jy/src/jfw/config"
 	"jy/src/jfw/jyutil"
 	"net/http"
 	"regexp"
 	"time"
 
 	util "app.yhyue.com/moapp/jybase/common"
-
 	fs "app.yhyue.com/moapp/jybase/fsnotify"
-
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
@@ -42,6 +41,18 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 	if getSession["userId"] != nil && getSession["mgoUserId"] == nil && util.Int64All(getSession["positionType"]) == 0 {
 		session.Set("mgoUserId", getSession["userId"])
 	}
+	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
+		identity := Middleground.UserCenter.IdentityByUserId(util.Int64All(getSession["base_user_id"]))
+		if identity != nil {
+			session.SetMultiple(map[string]interface{}{
+				"personId":     identity.PersonId,
+				"userName":     identity.UserName,
+				"accountId":    identity.AccountId,
+				"positionId":   identity.PositionId,
+				"positionType": identity.PositionType,
+			})
+		}
+	}
 	if !(&logFilter{w, r, session, getSession, make(map[string]interface{})}).Do() {
 		return false
 	}
@@ -60,5 +71,8 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 	if !(&salesFilter{w, r, session, getSession}).Do() {
 		return false
 	}
+	if !(&pcSalesFilter{w, r, session, getSession}).Do() {
+		return false
+	}
 	return true
 }

+ 54 - 0
src/jfw/filter/pcUserSalesFilter.go

@@ -0,0 +1,54 @@
+package filter
+
+import (
+	"jy/src/jfw/config"
+	"jy/src/jfw/public"
+	"net/http"
+	"strings"
+	"time"
+
+	qu "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+)
+
+type pcSalesFilter struct {
+	W          http.ResponseWriter
+	R          *http.Request
+	Session    *httpsession.Session
+	GetSession map[string]interface{}
+}
+
+// pc新用户判断是否需要留资
+func (l *pcSalesFilter) Do() bool {
+	if !initflag {
+		return true
+	}
+	if flag, _ := config.Sysconfig["phoneFilterFlag"].(bool); !flag {
+		return true
+	}
+	if l.R.Method == "POST" {
+		return true
+	}
+	for _, v := range bindurl {
+		if v.MatchString(l.R.URL.Path) && !strings.Contains(l.R.URL.Path, "bidedoc") && !strings.Contains(l.R.URL.Path, "squeeze") && !strings.Contains(l.R.URL.Path, "partner") {
+			return true
+		}
+	}
+	if userAgent := l.R.UserAgent(); mobileReg.MatchString(userAgent) || public.CheckWxBrowser(l.R) {
+		return true // 移动端 返回
+	}
+	//pc判断是否需要留资
+	href := "/swordfish/frontPage/user/sess/set_favorite" // pc端留资页面地址
+	if uid := l.GetSession["userId"]; uid != nil && uid != "" {
+		data, ok := public.MQFW.FindById("user", qu.InterfaceToStr(uid), `{"l_registedate":1,"app_first_login":1}`)
+		if ok && data != nil && len(*data) > 0 {
+			if qu.Int64All((*data)["l_registedate"]) >= qu.Int64All(config.Seoconfig["appNewUserTime"]) && qu.IntAll((*data)["app_first_login"]) == 0 {
+				//设置cookie 前端跳转
+				SetCookie(l.R.URL.String(), int(time.Hour*24/time.Second), l.W)
+				http.Redirect(l.W, l.R, href, 302)
+				return false
+			}
+		}
+	}
+	return true
+}

File diff suppressed because it is too large
+ 1296 - 1330
src/jfw/front/front.go


+ 22 - 14
src/jfw/front/tags.go

@@ -3,26 +3,24 @@ package front
 import (
 	"fmt"
 	"jy/src/jfw/config"
+	"jy/src/jfw/jyutil"
 	"jy/src/jfw/paging"
 	"log"
 	"math"
 	"math/rand"
+	"net/http"
 	"strconv"
 	"strings"
 	"time"
 
-	"jy/src/jfw/jyutil"
-
-	"app.yhyue.com/moapp/jybase/encrypt"
-	"app.yhyue.com/moapp/jypkg/public"
-
 	qu "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/encrypt"
 	elastic "app.yhyue.com/moapp/jybase/esv1"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
-
-	"app.yhyue.com/moapp/jybase/redis"
-
+	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	"app.yhyue.com/moapp/jybase/redis"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
+	"app.yhyue.com/moapp/jypkg/public"
 )
 
 //剑鱼标签页
@@ -234,7 +232,12 @@ func (this *Tags) Index(types, name string) {
 	this.T["tdk"] = this.GetTDK(haveList, types, checkedKeywords, pageNum, checkedLetter, qu.ObjToString(this.T["area"])+checkedKeywords+infotypeStr, qu.ObjToString(this.T["area"])+checkedKeywords+infotypeStr, checkedKeywords)
 	if haveList {
 		//信息类型
-		this.T["biddingList"], this.T["biddingCount"] = this.GetBidding(checkedIndustry, checkedProvince, checkedCity, InfoType, checkedKeywords)
+		isLimit := false
+		this.T["biddingList"], this.T["biddingCount"], isLimit = this.GetBidding(checkedIndustry, checkedProvince, checkedCity, InfoType, checkedKeywords, this.Request, this.ResponseWriter, this.Session())
+		if isLimit {
+			this.Redirect("/504.html")
+			return
+		}
 		filters["biddingCount"] = this.T["biddingCount"]
 		if qu.Int64All(this.T["biddingCount"]) == 0 && types == "letter" {
 			this.T["letterList"], this.T["letterListCount"], this.T["pagingMap"] = this.GetLetterPaging(pageNum, checkedLetter)
@@ -588,15 +591,20 @@ func GetBiddingPlatformType() (nameToCode map[string]int64, codeToName map[int64
 	return
 }
 
-func (this *Tags) GetBidding(industry, area, city, stype, keyword string) ([]map[string]interface{}, int64) {
+func (this *Tags) GetBidding(industry, area, city, stype, keyword string, request *http.Request, responseWriter http.ResponseWriter, session *httpsession.Session) ([]map[string]interface{}, int64, bool) {
 	rediskey := fmt.Sprintf("pcseo_getbidding_%s_%s_%s_%s_%s", industry, area, city, stype, keyword)
 	rediskeyCount := fmt.Sprintf("pcseo_getbidding_count_%s_%s_%s_%s_%s", industry, area, city, stype, keyword)
 
 	if l, ok := redis.Get("other", rediskey).([]interface{}); ok && l != nil {
 		count := redis.GetInt("other", rediskeyCount)
-		return qu.ObjArrToMapArr(l), int64(count)
+		return qu.ObjArrToMapArr(l), int64(count), false
 	} else {
 		if area != "" || stype != "" || industry != "" || city != "" || keyword != "" {
+			if public.Lst.IsLimited(request, responseWriter, session, false) == 1 { //没有被限制
+				defer public.Lst.Limit()
+			} else {
+				return nil, 0, true
+			}
 			//
 			query1 := `{"query": {"bool": {"must":[`
 			query_start := `{"query": {"bool": {"must":[`
@@ -669,11 +677,11 @@ func (this *Tags) GetBidding(industry, area, city, stype, keyword string) ([]map
 				public.BidListConvert(industry, datas)
 				redis.Put("other", rediskey, datas, 2*60*60)
 				redis.Put("other", rediskeyCount, count, 2*60*60)
-				return *datas, count
+				return *datas, count, false
 			}
 		}
 	}
-	return nil, 0
+	return nil, 0, false
 }
 
 //获取关键词

+ 0 - 40
src/jfw/grpc/usercenter.go

@@ -1,40 +0,0 @@
-package grpc
-
-import (
-	"context"
-	"log"
-
-	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
-	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/os/gctx"
-	"github.com/zeromicro/go-zero/core/discov"
-	"github.com/zeromicro/go-zero/zrpc"
-)
-
-var UserCenter = &userCenter{}
-
-type userCenter struct{}
-
-func (u *userCenter) IdentityList(userId int64) []*pb.Identity {
-	var ctx = gctx.New()
-	client, err := zrpc.NewClient(zrpc.RpcClientConf{
-		Etcd: discov.EtcdConf{
-			Hosts: g.Cfg().MustGet(ctx, "etcd.hosts").Strings(),
-			Key:   g.Cfg().MustGet(ctx, "userCenterKey").String(),
-		},
-	})
-	if err != nil {
-		log.Println(err)
-		return nil
-	}
-	defer client.Conn().Close()
-	resp, err := usercenter.NewUserCenter(client).IdentityList(context.Background(), &pb.IdentityReq{
-		UserId: userId,
-	})
-	if err != nil {
-		log.Println(err)
-		return nil
-	}
-	return resp.Identitys
-}

+ 6 - 63
src/jfw/jyutil/jyutil.go

@@ -10,19 +10,14 @@ import (
 	"reflect"
 	"regexp"
 	"sort"
-
-	. "app.yhyue.com/moapp/jybase/mongodb"
+	"strings"
+	"time"
 
 	util "app.yhyue.com/moapp/jybase/common"
-
-	"app.yhyue.com/moapp/jybase/redis"
-
 	"app.yhyue.com/moapp/jybase/encrypt"
-	"app.yhyue.com/moapp/jybase/usercenter"
+	. "app.yhyue.com/moapp/jybase/mongodb"
+	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jypkg/public"
-
-	"strings"
-	"time"
 )
 
 var mongodb = public.MQFW
@@ -95,6 +90,7 @@ func GetSessionVal(q map[string]interface{}) (*map[string]interface{}, map[strin
 		sessionVal["shareknow"] = (*person)["i_shareknow"]
 	}
 	sessionVal["userId"] = BsonIdToSId((*person)["_id"])
+	sessionVal["mgoUserId"] = sessionVal["userId"]
 	nickName, _ := (*person)["s_nickname"].(string)
 	phone := util.ObjToString((*person)["s_phone"])
 	if nickName == "" {
@@ -117,62 +113,9 @@ func GetSessionVal(q map[string]interface{}) (*map[string]interface{}, map[strin
 	if phone == "" {
 		phone = util.ObjToString((*person)["s_m_phone"])
 	}
-	if phone != "" {
-		//企业信息存session
-		sql := `SELECT a.id,a.name,a.startdate,a.enddate,a.quota,c.id as dept_id,b.id as user_id,b.name as user_name from entniche_info a 
-			INNER JOIN entniche_user b on (b.phone=? and a.id=b.ent_id) 
-			INNER JOIN entniche_department c on (c.pid=0 and a.id=c.ent_id) 
-			LEFT JOIN entniche_user_role d on (d.role_id=? and b.id=d.user_id)  
-			order by a.status DESC,b.power desc,a.auth_status DESC,d.role_id desc,a.createtime desc`
-		list := public.Mysql.SelectBySql(sql, phone, 1)
-		if list != nil {
-			for _, v := range *list {
-				if util.IntAll(v["id"]) == 0 {
-					break
-				}
-				sessionVal["entId"] = util.IntAll(v["id"])
-				sessionVal["entName"] = util.ObjToString(v["name"])
-				sessionVal["entUserId"] = util.IntAll(v["user_id"])
-				sessionVal["entUserName"] = util.ObjToString(v["user_name"])
-				sessionVal["frameworkEntId"] = util.IntAll(v["id"])
-				sessionVal["frameworkEntName"] = util.ObjToString(v["name"])
-				break
-			}
-		}
-	}
 	sessionVal["phone"] = phone
 	sessionVal["i_unlimited"] = util.IntAll((*person)["i_unlimited"])
-	base_uid := util.IntAllDef((*person)["base_user_id"], 0)
-	if base_uid != 0 {
-		sessionVal["base_user_id"] = base_uid //用户中台的uid
-		//
-		entId := util.Int64All(sessionVal["entId"])
-		uid := util.ObjToString(sessionVal["userId"])
-		identity := usercenter.GetUserIdentity(util.ObjToString(config.Sysconfig["userCenterApi"]), uid, int64(base_uid), entId, &http.Cookie{})
-		if identity != nil {
-			if identity.PersonId > 0 {
-				sessionVal["personId"] = identity.PersonId
-			}
-			if identity.UserName != "" {
-				sessionVal["userName"] = identity.UserName
-			}
-			if identity.UserAccountId > 0 {
-				sessionVal["userAccountId"] = identity.UserAccountId
-			}
-			if identity.EntAccountId > 0 {
-				sessionVal["entAccountId"] = identity.EntAccountId
-			}
-			if identity.EntUserAccountId > 0 {
-				sessionVal["entUserAccountId"] = identity.EntUserAccountId
-			}
-			if identity.UserPositionId > 0 {
-				sessionVal["userPositionId"] = identity.UserPositionId
-			}
-			if identity.EntUserPositionId > 0 {
-				sessionVal["entUserPositionId"] = identity.EntUserPositionId
-			}
-		}
-	}
+	sessionVal["base_user_id"] = util.IntAll((*person)["base_user_id"]) //用户中台的uid
 	return person, sessionVal
 }
 

+ 13 - 2
src/jfw/modules/app/src/app/filter/filter.go

@@ -1,14 +1,13 @@
 package filter
 
 import (
+	. "jy/src/jfw/modules/app/src/jfw/config"
 	"net/http"
 	"regexp"
 	"time"
 
 	util "app.yhyue.com/moapp/jybase/common"
-
 	fs "app.yhyue.com/moapp/jybase/fsnotify"
-
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
@@ -41,6 +40,18 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 	if getSession["userId"] != nil && getSession["mgoUserId"] == nil && util.Int64All(getSession["positionType"]) == 0 {
 		session.Set("mgoUserId", getSession["userId"])
 	}
+	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
+		identity := Middleground.UserCenter.IdentityByUserId(util.Int64All(getSession["base_user_id"]))
+		if identity != nil {
+			session.SetMultiple(map[string]interface{}{
+				"personId":     identity.PersonId,
+				"userName":     identity.UserName,
+				"accountId":    identity.AccountId,
+				"positionId":   identity.PositionId,
+				"positionType": identity.PositionType,
+			})
+		}
+	}
 	if !(&logFilter{w, r, getSession}).Do() {
 		return false
 	}

+ 63 - 66
src/jfw/modules/app/src/app/front/login.go

@@ -15,11 +15,12 @@ import (
 
 	qutil "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
-
 	. "app.yhyue.com/moapp/jybase/mongodb"
 	"app.yhyue.com/moapp/jybase/redis"
 	qrpc "app.yhyue.com/moapp/jybase/rpc"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+	. "app.yhyue.com/moapp/jypkg/identity"
+	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
 
 	"app.yhyue.com/moapp/jybase/usercenter"
 	"app.yhyue.com/moapp/jypkg/public"
@@ -278,21 +279,45 @@ func (l *Login) Sess(ostr string) error {
 	str := strings.Split(sewx.DecodeString(strs[0]), ",")
 	if len(str) == 4 {
 		hasSession := false
-		if l.GetSession("userId") != nil {
+		if l.GetSession("positionId") != nil {
 			hasSession = true
 		} else {
-			loginType := 0
 			loginId := str[0]
-			if str[1] == "uid" {
-				loginType = 2
-				if phoneReg.MatchString(loginId) {
-					loginType = 1
+			var identity *pb.Identity
+			if str[1] == "userId" || str[1] == "entUserId" || str[1] == "positionId" {
+				if str[1] == "userId" {
+					identity = config.Middleground.UserCenter.IdentityByUserId(util.Int64All(loginId))
+				} else if str[1] == "entUserId" {
+					identity = config.Middleground.UserCenter.IdentityByEntUserId(util.Int64All(loginId))
+				} else if str[1] == "positionId" {
+					identity = config.Middleground.UserCenter.IdentityByPositionId(util.Int64All(loginId))
+				}
+				if identity != nil {
+					if createSession(l.Session(), nil, fmt.Sprint(identity.UserId), 3, l.ResponseWriter) {
+						hasSession = true
+					} else {
+						log.Println("创建session失败", str)
+					}
+				}
+			} else {
+				loginType := 0
+				if str[1] == "uid" {
+					loginType = 2
+					if phoneReg.MatchString(loginId) {
+						loginType = 1
+					}
+				}
+				if createSession(l.Session(), nil, loginId, loginType, l.ResponseWriter) {
+					hasSession = true
+					identity = config.Middleground.UserCenter.IdentityByUserId(util.Int64All(m.GetSession("base_user_id")))
+				} else {
+					log.Println("创建session失败", str)
 				}
 			}
-			if createSession(l.Session(), nil, loginId, loginType, l.ResponseWriter) {
-				hasSession = true
+			if identity != nil {
+				hasSession = hasSession && NewIdentityInfo(identity).Switch(m.Session())
 			} else {
-				log.Println("创建session失败", loginId)
+				log.Println("获取用户身份信息失败", str)
 			}
 		}
 		if hasSession {
@@ -303,21 +328,17 @@ func (l *Login) Sess(ostr string) error {
 				}
 				//切换企业身份
 				if len(strs) > 2 {
-					var entParams []string
+					var entUserId int64
 					if strings.HasPrefix(strs[2], "V20221215-") {
-						entParams = strings.Split(sewx.Decode4HexByCheck(strings.TrimPrefix(strs[2], "V20221215-")), "_")
+						entParams := strings.Split(sewx.Decode4HexByCheck(strings.TrimPrefix(strs[2], "V20221215-")), "_")
+						entUserId := qutil.Int64All(entParams[1])
 					} else {
-						entParams = strings.Split(sewx.DecodeString(strs[2]), "_")
-						ents := public.Mysql.SelectBySql(`select name from entniche_info where id=?`, qutil.Int64All(entParams[0]))
-						if ents != nil && len(*ents) > 0 {
-							entParams[2] = qutil.ObjToString((*ents)[0]["name"])
-						}
+						entParams := strings.Split(sewx.DecodeString(strs[2]), "_")
+						entUserId := qutil.Int64All(entParams[1])
+					}
+					if identity := config.Middleground.UserCenter.IdentityByEntUserId(entUserId); identity != nil {
+						NewIdentityInfo(identity).Switch(m.Session())
 					}
-					l.Session().SetMultiple(map[string]interface{}{
-						"entId":     qutil.Int64All(entParams[0]),
-						"entUserId": qutil.Int64All(entParams[1]),
-						"entName":   qutil.ObjToString(entParams[2]),
-					})
 				}
 			} else {
 				actionurl = qutil.ObjToString(urlMap[str[3]])
@@ -985,7 +1006,6 @@ func createSession(s *httpsession.Session, person map[string]interface{}, loginI
 		query := map[string]interface{}{
 			"i_appid": 2,
 		}
-		log.Println("~~~~~~~``", loginType, loginId)
 		switch loginType {
 		case 0: //_id登录
 			query["_id"], _ = primitive.ObjectIDFromHex(loginId)
@@ -996,6 +1016,9 @@ func createSession(s *httpsession.Session, person map[string]interface{}, loginI
 		case 2: //a_m_openid登录
 			query["a_m_openid"] = loginId
 			break
+		case 3: //a_m_openid登录
+			query["base_user_id"] = qutil.Int64All(loginId)
+			break
 		default:
 			return false
 		}
@@ -1019,61 +1042,35 @@ func createSession(s *httpsession.Session, person map[string]interface{}, loginI
 		}
 		person = *data
 	}
-	s.Set("userId", BsonIdToSId(person["_id"]))
-	s.Set("s_jpushid", person["s_jpushid"])
-	s.Set("s_m_openid", person["s_m_openid"])
-	s.Set("s_opushid", person["s_opushid"])
-	s.Set("s_appponetype", person["s_appponetype"])
-	s.Set("s_appversion", person["s_appversion"])
-	s.Set("s_headimageurl", strings.Replace(qutil.ObjToString(person["s_headimageurl"]), "http://", "https://", 1))
-	s.Set("i_unlimited", qutil.IntAll(person["i_unlimited"]))
-	if base_userid := qutil.IntAllDef(person["base_user_id"], 0); base_userid != 0 {
-		s.Set("base_user_id", base_userid)
-		//
-		//
-		uid := BsonIdToSId(person["_id"])
-		identity := usercenter.GetUserIdentity(qutil.ObjToString(config.Sysconfig["userCenterApi"]), uid, int64(base_userid), 0, &http.Cookie{})
-		if identity != nil {
-			if identity.PersonId > 0 {
-				s.Set("personId", identity.PersonId)
-			}
-			if identity.UserName != "" {
-				s.Set("personId", identity.PersonId)
-			}
-			if identity.UserAccountId > 0 {
-				s.Set("userAccountId", identity.UserAccountId)
-			}
-			if identity.EntAccountId > 0 {
-				s.Set("entAccountId", identity.EntAccountId)
-			}
-			if identity.EntUserAccountId > 0 {
-				s.Set("entUserAccountId", identity.EntUserAccountId)
-			}
-			if identity.UserPositionId > 0 {
-				s.Set("userPositionId", identity.UserPositionId)
-			}
-			if identity.EntUserPositionId > 0 {
-				s.Set("entUserPositionId", identity.EntUserPositionId)
-			}
-		}
-	}
+	sessVal := map[string]interface{}{}
+	sessVal["userId"] = BsonIdToSId(person["_id"])
+	sessVal["mgoUserId"] = sessVal["userId"]
+	sessVal["s_jpushid"] = person["s_jpushid"]
+	sessVal["s_m_openid"] = person["s_m_openid"]
+	sessVal["s_opushid"] = person["s_opushid"]
+	sessVal["s_appponetype"] = person["s_appponetype"]
+	sessVal["s_appversion"] = person["s_appversion"]
+	sessVal["s_headimageurl"] = strings.Replace(qutil.ObjToString(person["s_headimageurl"]), "http://", "https://", 1)
+	sessVal["i_unlimited"] = qutil.IntAll(person["i_unlimited"])
+	sessVal["base_user_id"] = qutil.IntAll(person["base_user_id"])
 	if qutil.ObjToString(person["s_phone"]) != "" {
 		phone := person["s_phone"].(string)
-		s.Set("s_phone", phone)
+		sessVal["s_phone"] = phone
 		phone = string(phone[0:3]) + "****" + string(phone[len(phone)-4:])
-		s.Set("s_nickname", phone)
+		sessVal["s_nickname"] = phone
 	}
 	if qutil.ObjToString(person["s_m_phone"]) != "" {
 		s_m_phone := person["s_m_phone"].(string)
-		s.Set("s_m_phone", s_m_phone)
+		sessVal["s_m_phone"] = s_m_phone
 	}
 	if qutil.ObjToString(person["s_nickname"]) != "" {
-		s.Set("app_name", person["s_nickname"])
+		sessVal["app_name"] = person["s_nickname"]
 	}
 	// 剑鱼昵称
 	if qutil.ObjToString(person["s_jyname"]) != "" {
-		s.Set("s_jyname", person["s_jyname"])
+		sessVal["s_jyname"] = person["s_jyname"]
 	}
+	s.SetMultiple(sessVal)
 	//cookie
 	maxAge := int(time.Hour * 72 / time.Second) //3天,单位秒
 	expires := time.Now().Add(72 * time.Hour)

+ 4 - 0
src/jfw/modules/app/src/config.yaml

@@ -0,0 +1,4 @@
+etcd:
+  hosts:
+  - 127.0.0.1:2379
+userCenterKey: "usercenter.rpc" #用户中台rpc

+ 14 - 25
src/jfw/modules/app/src/go.mod

@@ -3,25 +3,21 @@ module jy/src/jfw/modules/app/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg d8ae3867d2abebd3d05c9e473df5372fbf4ac21c
-	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1
+	app.yhyue.com/moapp/jybase v0.0.0-20221230025810-b88f2a62c467
+	app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/dchest/captcha v1.0.0
-	github.com/gogf/gf/v2 v2.0.6
 	github.com/pkg/errors v0.9.1
 	go.mongodb.org/mongo-driver v1.11.1
 )
 
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
-	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter a6b26e74a68ce961a9df05650224d0d8dbcb67af
-	github.com/BurntSushi/toml v0.4.1 // indirect
+	app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.1.3 // indirect
 	github.com/cespare/xxhash/v2 v2.1.2 // indirect
-	github.com/clbanning/mxj/v2 v2.5.5 // indirect
 	github.com/coreos/go-semver v0.3.0 // indirect
 	github.com/coreos/go-systemd/v22 v22.3.2 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
@@ -44,24 +40,19 @@ require (
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect
 	github.com/googleapis/gnostic v0.5.5 // indirect
-	github.com/gorilla/websocket v1.5.0 // indirect
-	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.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/json-iterator/go v1.1.12 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
-	github.com/longbridgeapp/sqlparser v0.3.1 // indirect
 	github.com/mattn/go-colorable v0.1.9 // indirect
 	github.com/mattn/go-isatty v0.0.14 // indirect
-	github.com/mattn/go-runewidth v0.0.13 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // 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/nsqio/go-nsq v1.1.0 // indirect
-	github.com/olekukonko/tablewriter v0.0.5 // indirect
 	github.com/olivere/elastic v6.2.37+incompatible // indirect
 	github.com/openzipkin/zipkin-go v0.4.0 // indirect
 	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
@@ -69,7 +60,6 @@ require (
 	github.com/prometheus/client_model v0.2.0 // indirect
 	github.com/prometheus/common v0.37.0 // indirect
 	github.com/prometheus/procfs v0.8.0 // indirect
-	github.com/rivo/uniseg v0.2.0 // indirect
 	github.com/robfig/cron v1.2.0 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
 	github.com/tealeg/xlsx v1.0.5 // indirect
@@ -78,20 +68,19 @@ require (
 	github.com/xdg-go/scram v1.1.1 // indirect
 	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
-	github.com/zeromicro/go-zero v1.4.4 // indirect
+	github.com/zeromicro/go-zero v1.4.3 // indirect
 	github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb // indirect
 	go.etcd.io/etcd/api/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.5 // indirect
-	go.opentelemetry.io/otel v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/jaeger v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 // indirect
-	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
-	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
-	go.opentelemetry.io/otel/trace v1.11.0 // indirect
+	go.opentelemetry.io/otel v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.10.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.10.0 // indirect
+	go.opentelemetry.io/otel/trace v1.10.0 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/automaxprocs v1.5.1 // indirect
@@ -101,7 +90,7 @@ require (
 	golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
 	golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
 	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
+	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
 	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
 	golang.org/x/text v0.4.0 // indirect
 	golang.org/x/time v0.3.0 // indirect

+ 22 - 33
src/jfw/modules/app/src/go.sum

@@ -2,14 +2,14 @@ app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+j
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
 app.yhyue.com/moapp/jyPoints v1.1.1/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
 app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab h1:a9XvegdF3aM0y9v5SHtX03LIGMS3+8J1ofoNeyw5J0Y=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab/go.mod h1:MqJfBFTSfZhrNDEnE4e19BmaLkaMr+lYActLXm6lrpw=
-app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
-app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c h1:g49jOlhZlBCJ3IgJA0rotfNf2Gh22pISffUtqxB8XtY=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+app.yhyue.com/moapp/jybase v0.0.0-20221230025810-b88f2a62c467 h1:MTZBSIzrqrwieb1gLhls3Wjz0Q2u75n+O2jfPw40iEA=
+app.yhyue.com/moapp/jybase v0.0.0-20221230025810-b88f2a62c467/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf h1:NMVZDXa4yZtL2BTM8gJLpRU4fSN9a1cj7mTVYa1RUZY=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf/go.mod h1:7D6zNxrg+Tma3VC43TLu7XPczubl4uJavua89kaFS1Q=
+app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c h1:CrcvbsXZ4aQkNikBi7FUUQZNnY8hKsNo2LLe/SqeXs8=
+app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 h1:Xv1D9avDKeaM5kQTisF/pIt8y7B7yQ/hAxuWEg75LMs=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
@@ -409,8 +409,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZp
 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
-github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M=
-github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
+github.com/alicebob/miniredis/v2 v2.23.1 h1:jR6wZggBxwWygeXcdNyguCOCIjPsZyNUNlAkTx2fu0U=
+github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/antlr/antlr4 v0.0.0-20210105212045-464bcbc32de2/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
@@ -750,7 +750,7 @@ github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+
 github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ=
 github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
 github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
-github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
+github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E=
@@ -1033,8 +1033,8 @@ github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRF
 github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
 github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
-github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y=
-github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4=
+github.com/zeromicro/go-zero v1.4.3 h1:sTQ++6fxQHJnpGCN7h2CUrhWmbvhBqEgE75cJl635SM=
+github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb h1:uWiILQloLUVdtPYr1ZZo2zqtlpzo4G8vUpglo/Fs2H8=
 github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb/go.mod h1:J3xKssoVdrwZ2E29fIox/EKxOZWimS7AZ4fOTCFkOLo=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
@@ -1065,41 +1065,31 @@ go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnf
 go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
 go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
 go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM=
+go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4=
 go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
-go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk=
-go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk=
 go.opentelemetry.io/otel/exporters/jaeger v1.8.0/go.mod h1:GbWg+ng88rDtx+id26C34QLqw2erqJeAjsCx9AFeHfE=
+go.opentelemetry.io/otel/exporters/jaeger v1.10.0 h1:7W3aVVjEYayu/GOqOVF4mbTvnCuxF1wWu3eRxFGQXvw=
 go.opentelemetry.io/otel/exporters/jaeger v1.10.0/go.mod h1:n9IGyx0fgyXXZ/i0foLHNxtET9CzXHzZeKCucvRBFgA=
-go.opentelemetry.io/otel/exporters/jaeger v1.11.0 h1:Sv2valcFfMlfu6g8USSS+ZUN5vwbuGj1aY/CFtMG33w=
-go.opentelemetry.io/otel/exporters/jaeger v1.11.0/go.mod h1:nRgyJbgJ0hmaUdHwyDpTTfBYz61cTTeeGhVzfQc+FsI=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y=
 go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 h1:0dly5et1i/6Th3WHn0M6kYiJfFNzhhxanrJ0bOfnjEo=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0/go.mod h1:+Lq4/WkdCkjbGcBMVHHg2apTbv8oMBf29QCnyCCJjNQ=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 h1:pDDYmo0QadUPal5fwXoY1pmMpFcdyhXOmL5drCrI3vU=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0/go.mod h1:Krqnjl22jUJ0HgMzw5eveuCvFDXY4nSYb4F8t5gdrag=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 h1:eyJ6njZmH16h9dOKCi7lMswAnGsSOwgTqWzfxqcuNr8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0/go.mod h1:FnDp7XemjN3oZ3xGunnfOUTVwd2XcvLbtRAuOSU3oc8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 h1:KtiUEhQmj/Pa874bVYKGNVdq8NPKiacPbaRRtgXi+t4=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 h1:j2RFV0Qdt38XQ2Jvi4WIsQ56w8T7eSirYbMw19VXRDg=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0/go.mod h1:pILgiTEtrqvZpoiuGdblDgS5dbIaTgDrkIuKfEFkt+A=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 h1:S8DedULB3gp93Rh+9Z+7NTEv+6Id/KYS7LDyipZ9iCE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0/go.mod h1:5WV40MLWwvWlGP7Xm8g3pMcg0pKOUY609qxJn8y7LmM=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
+go.opentelemetry.io/otel/exporters/zipkin v1.10.0 h1:HcPAFsFpEBKF+G5NIOA+gBsxifd3Ej+wb+KsdBLa15E=
 go.opentelemetry.io/otel/exporters/zipkin v1.10.0/go.mod h1:HdfvgwcOoCB0+zzrTHycW6btjK0zNpkz2oTGO815SCI=
-go.opentelemetry.io/otel/exporters/zipkin v1.11.0 h1:v/Abo5REOWrCj4zcEIUHFZtXpsCVjrwZj28iyX2rHXE=
-go.opentelemetry.io/otel/exporters/zipkin v1.11.0/go.mod h1:unWnsLCMYfINP8ue0aXVrB/GYHoXNn/lbTnupvLekGQ=
 go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM=
 go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
 go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c=
+go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY=
 go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
-go.opentelemetry.io/otel/sdk v1.11.0 h1:ZnKIL9V9Ztaq+ME43IUi/eo22mNsb6a7tGfzaOWB5fo=
-go.opentelemetry.io/otel/sdk v1.11.0/go.mod h1:REusa8RsyKaq0OlyangWXaw97t2VogoO4SSEeKkSTAk=
 go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
 go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
 go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
 go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4=
+go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E=
 go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
-go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI=
-go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
 go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
@@ -1378,9 +1368,8 @@ golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc=
-golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

+ 19 - 12
src/jfw/modules/app/src/jfw/config/config.go

@@ -3,22 +3,27 @@ package config
 import (
 	util "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/mail"
+	"app.yhyue.com/moapp/jypkg/middleground"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/gcfg"
+	"github.com/gogf/gf/v2/os/gctx"
 )
 
-// Seoconfig_Version seo.josn 配置文件中的版本号,可以动态更新
-var Seoconfig_Version string
-
-// Seoconfig_Mod_Version Seoconfig_Version 作为固定版本号 除非大版本更新需要改动,其他都更改Seoconfig_Mod_Version  王山  2020/06/11
-var Seoconfig_Mod_Version string
-
-var Seoconfig_Cdns map[string]interface{}
-var Sysconfig map[string]interface{}
-var PhoneFilterConfig map[string]interface{}
-var Seoconfig map[string]interface{}
-
-var GmailAuth []*mail.GmailAuth
+var (
+	// Seoconfig_Version seo.josn 配置文件中的版本号,可以动态更新
+	Seoconfig_Version string
+	// Seoconfig_Mod_Version Seoconfig_Version 作为固定版本号 除非大版本更新需要改动,其他都更改Seoconfig_Mod_Version  王山  2020/06/11
+	Seoconfig_Mod_Version string
+	Seoconfig_Cdns        map[string]interface{}
+	Sysconfig             map[string]interface{}
+	PhoneFilterConfig     map[string]interface{}
+	Seoconfig             map[string]interface{}
+	GmailAuth             []*mail.GmailAuth
+	Middleground          *middleground.Middleground
+)
 
 func init() {
+	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
 	util.ReadConfig(&Sysconfig)
 	mails, _ := Sysconfig["mail"].([]interface{})
 	mailConfigArrMap := util.ObjArrToMapArr(mails)
@@ -33,4 +38,6 @@ func init() {
 		}
 		GmailAuth = append(GmailAuth, mailConf)
 	}
+	var ctx = gctx.New()
+	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings(), g.Cfg().MustGet(ctx, "userCenterKey").String())
 }

+ 20 - 0
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js

@@ -187,6 +187,8 @@ var subNode = new Vue({
               _this.arrowShow = true
               sessionStorage.setItem('switch-product', 'supervip')
               $('.update_renew').show()
+              // 获取企业信息--用于判断是否是企业分配的超级订阅
+              _this.getEntInfo()
               $('.super-title').show();
               _this.subInfoAjax = '/subscribepay/vipsubscribe/getSubBuyMsg?t=' + new Date().getTime()
             } else {
@@ -215,6 +217,24 @@ var subNode = new Vue({
         }
       })
     },
+    // 获取当前账户所属的企业信息
+    getEntInfo: function () {
+      var _this = this
+      $.ajax({
+        url: '/entbase/ent/entinfo?t=' + Date.now(),
+        type: 'POST',
+        async: false,
+        success: function (res) {
+          if (res) {
+            const data =  res.data || {}
+            // 企业分配的超级订阅不展示“续费”、“升级”入口
+            if(data.vip_power === 1){
+              $('.update_renew').hide()
+            }
+          }
+        }
+      })
+    },
     // 点击广告跳转超级订阅落地页
     toPaySupSub: function () {
       if (this.vSwitch === 'f') {

+ 9 - 3
src/jfw/modules/bigmember/src/filter/sessionfilter.go

@@ -1,13 +1,15 @@
 package filter
 
 import (
-	. "app.yhyue.com/moapp/jybase/api"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"jy/src/jfw/modules/bigmember/src/config"
 	"jy/src/jfw/modules/bigmember/src/db"
 	"net/http"
 	"regexp"
 
+	. "app.yhyue.com/moapp/jybase/api"
+	util "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
@@ -25,6 +27,10 @@ func init() {
 
 func (l *sessionfilter) Do(w http.ResponseWriter, req *http.Request) bool {
 	session := l.App.SessionManager.Session(req, w)
+	getSession := session.GetMultiple()
+	if getSession["userId"] != nil && getSession["mgoUserId"] == nil && util.Int64All(getSession["positionType"]) == 0 {
+		session.Set("mgoUserId", getSession["userId"])
+	}
 	match := needReg.FindStringSubmatch(req.URL.Path)
 	if len(match) == 0 {
 		return true
@@ -33,7 +39,7 @@ func (l *sessionfilter) Do(w http.ResponseWriter, req *http.Request) bool {
 	if req.URL.Path == "/bigmember/subscribe/freeUser/searchSubscribe" || req.URL.Path == "/bigmember/subscribe/freeUser/subscribeSearch" {
 		return true
 	}
-	userId, ok := session.Get("userId").(string)
+	userId, ok := getSession["userId"].(string)
 	if !ok || userId == "" {
 		R.ServeJson(w, req, &Result{Error_code_1004, Error_msg_1004, nil})
 		return false

+ 14 - 15
src/jfw/modules/bigmember/src/go.mod

@@ -4,15 +4,15 @@ go 1.18
 
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d
-	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab
+	app.yhyue.com/moapp/jybase v0.0.0-20221229074840-790b25997170
+	app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf
 	github.com/donnie4w/go-logger v0.0.0-20170827050443-4740c51383f4
 	go.mongodb.org/mongo-driver v1.11.1
 )
 
 require (
-	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c // indirect
+	app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.1.3 // indirect
 	github.com/cespare/xxhash/v2 v2.1.2 // indirect
@@ -65,19 +65,18 @@ require (
 	github.com/xdg-go/scram v1.1.1 // indirect
 	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
-	github.com/zeromicro/go-zero v1.4.4 // indirect
+	github.com/zeromicro/go-zero v1.4.3 // indirect
 	go.etcd.io/etcd/api/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.5 // indirect
-	go.opentelemetry.io/otel v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/jaeger v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 // indirect
-	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
-	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
-	go.opentelemetry.io/otel/trace v1.11.0 // indirect
+	go.opentelemetry.io/otel v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.10.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.10.0 // indirect
+	go.opentelemetry.io/otel/trace v1.10.0 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/automaxprocs v1.5.1 // indirect
@@ -87,7 +86,7 @@ require (
 	golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
 	golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
 	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
+	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
 	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
 	golang.org/x/text v0.4.0 // indirect
 	golang.org/x/time v0.3.0 // indirect

+ 22 - 33
src/jfw/modules/bigmember/src/go.sum

@@ -2,14 +2,14 @@ app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+j
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
 app.yhyue.com/moapp/jyPoints v1.1.1/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
 app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab h1:a9XvegdF3aM0y9v5SHtX03LIGMS3+8J1ofoNeyw5J0Y=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab/go.mod h1:MqJfBFTSfZhrNDEnE4e19BmaLkaMr+lYActLXm6lrpw=
-app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
-app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c h1:g49jOlhZlBCJ3IgJA0rotfNf2Gh22pISffUtqxB8XtY=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+app.yhyue.com/moapp/jybase v0.0.0-20221229074840-790b25997170 h1:gjx6+x7P1Vp/++OyfuEdR3Bcjj4/HrgIaRnE1cMTP3k=
+app.yhyue.com/moapp/jybase v0.0.0-20221229074840-790b25997170/go.mod h1:efAeRPDpJ13JuNODuqtfLlKQSQgCbnUcwGPzhFU5krY=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf h1:NMVZDXa4yZtL2BTM8gJLpRU4fSN9a1cj7mTVYa1RUZY=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf/go.mod h1:7D6zNxrg+Tma3VC43TLu7XPczubl4uJavua89kaFS1Q=
+app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c h1:CrcvbsXZ4aQkNikBi7FUUQZNnY8hKsNo2LLe/SqeXs8=
+app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 h1:Xv1D9avDKeaM5kQTisF/pIt8y7B7yQ/hAxuWEg75LMs=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
@@ -407,8 +407,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZp
 github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
-github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M=
-github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
+github.com/alicebob/miniredis/v2 v2.23.1 h1:jR6wZggBxwWygeXcdNyguCOCIjPsZyNUNlAkTx2fu0U=
+github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/antlr/antlr4 v0.0.0-20210105212045-464bcbc32de2/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
@@ -748,7 +748,7 @@ github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+
 github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ=
 github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
 github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
-github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
+github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E=
@@ -1027,8 +1027,8 @@ github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 h1:5mLPGnFdSsevFRF
 github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
 github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
-github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y=
-github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4=
+github.com/zeromicro/go-zero v1.4.3 h1:sTQ++6fxQHJnpGCN7h2CUrhWmbvhBqEgE75cJl635SM=
+github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eGVOq7i1ULiz3OuXoQFWOirmAM=
@@ -1057,41 +1057,31 @@ go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnf
 go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
 go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
 go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM=
+go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4=
 go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
-go.opentelemetry.io/otel v1.11.0 h1:kfToEGMDq6TrVrJ9Vht84Y8y9enykSZzDDZglV0kIEk=
-go.opentelemetry.io/otel v1.11.0/go.mod h1:H2KtuEphyMvlhZ+F7tg9GRhAOe60moNx61Ex+WmiKkk=
 go.opentelemetry.io/otel/exporters/jaeger v1.8.0/go.mod h1:GbWg+ng88rDtx+id26C34QLqw2erqJeAjsCx9AFeHfE=
+go.opentelemetry.io/otel/exporters/jaeger v1.10.0 h1:7W3aVVjEYayu/GOqOVF4mbTvnCuxF1wWu3eRxFGQXvw=
 go.opentelemetry.io/otel/exporters/jaeger v1.10.0/go.mod h1:n9IGyx0fgyXXZ/i0foLHNxtET9CzXHzZeKCucvRBFgA=
-go.opentelemetry.io/otel/exporters/jaeger v1.11.0 h1:Sv2valcFfMlfu6g8USSS+ZUN5vwbuGj1aY/CFtMG33w=
-go.opentelemetry.io/otel/exporters/jaeger v1.11.0/go.mod h1:nRgyJbgJ0hmaUdHwyDpTTfBYz61cTTeeGhVzfQc+FsI=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y=
 go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 h1:0dly5et1i/6Th3WHn0M6kYiJfFNzhhxanrJ0bOfnjEo=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0/go.mod h1:+Lq4/WkdCkjbGcBMVHHg2apTbv8oMBf29QCnyCCJjNQ=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 h1:pDDYmo0QadUPal5fwXoY1pmMpFcdyhXOmL5drCrI3vU=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0/go.mod h1:Krqnjl22jUJ0HgMzw5eveuCvFDXY4nSYb4F8t5gdrag=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 h1:eyJ6njZmH16h9dOKCi7lMswAnGsSOwgTqWzfxqcuNr8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0/go.mod h1:FnDp7XemjN3oZ3xGunnfOUTVwd2XcvLbtRAuOSU3oc8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 h1:KtiUEhQmj/Pa874bVYKGNVdq8NPKiacPbaRRtgXi+t4=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 h1:j2RFV0Qdt38XQ2Jvi4WIsQ56w8T7eSirYbMw19VXRDg=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0/go.mod h1:pILgiTEtrqvZpoiuGdblDgS5dbIaTgDrkIuKfEFkt+A=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 h1:S8DedULB3gp93Rh+9Z+7NTEv+6Id/KYS7LDyipZ9iCE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0/go.mod h1:5WV40MLWwvWlGP7Xm8g3pMcg0pKOUY609qxJn8y7LmM=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
+go.opentelemetry.io/otel/exporters/zipkin v1.10.0 h1:HcPAFsFpEBKF+G5NIOA+gBsxifd3Ej+wb+KsdBLa15E=
 go.opentelemetry.io/otel/exporters/zipkin v1.10.0/go.mod h1:HdfvgwcOoCB0+zzrTHycW6btjK0zNpkz2oTGO815SCI=
-go.opentelemetry.io/otel/exporters/zipkin v1.11.0 h1:v/Abo5REOWrCj4zcEIUHFZtXpsCVjrwZj28iyX2rHXE=
-go.opentelemetry.io/otel/exporters/zipkin v1.11.0/go.mod h1:unWnsLCMYfINP8ue0aXVrB/GYHoXNn/lbTnupvLekGQ=
 go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM=
 go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
 go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c=
+go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY=
 go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
-go.opentelemetry.io/otel/sdk v1.11.0 h1:ZnKIL9V9Ztaq+ME43IUi/eo22mNsb6a7tGfzaOWB5fo=
-go.opentelemetry.io/otel/sdk v1.11.0/go.mod h1:REusa8RsyKaq0OlyangWXaw97t2VogoO4SSEeKkSTAk=
 go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs=
 go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
 go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
 go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4=
+go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E=
 go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
-go.opentelemetry.io/otel/trace v1.11.0 h1:20U/Vj42SX+mASlXLmSGBg6jpI1jQtv682lZtTAOVFI=
-go.opentelemetry.io/otel/trace v1.11.0/go.mod h1:nyYjis9jy0gytE9LXGU+/m1sHTKbRY0fX0hulNNDP1U=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
 go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
@@ -1370,9 +1360,8 @@ golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc=
-golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

BIN
src/jfw/modules/bigmember/src/src


+ 4 - 0
src/jfw/modules/publicapply/src/config.yaml

@@ -0,0 +1,4 @@
+etcd:
+  hosts:
+  - 127.0.0.1:2379
+userCenterKey: "usercenter.rpc" #用户中台rpc

+ 12 - 6
src/jfw/modules/publicapply/src/config/config.go

@@ -2,8 +2,10 @@ package config
 
 import (
 	qutil "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/gcfg"
+	"github.com/gogf/gf/v2/os/gctx"
 )
 
 type config struct {
@@ -14,8 +16,7 @@ type config struct {
 		Pwd  string
 		User string
 	}
-	Industry string
-
+	Industry              string
 	Frequency             string
 	HotWords              []string
 	DefaultEntList        []string //企业查询默认展示企业
@@ -62,10 +63,13 @@ type ShareF struct {
 	MayActive  string //活动标识
 }
 
-var Config *config
-var BidCollConfig *BidColl
-var AdLeaguefig *AdLeague
-var ShareConfig *ShareF
+var (
+	Config        *config
+	BidCollConfig *BidColl
+	AdLeaguefig   *AdLeague
+	ShareConfig   *ShareF
+	Middleground  *middleground.Middleground
+)
 
 func init() {
 	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
@@ -74,4 +78,6 @@ func init() {
 	qutil.ReadConfig("./bidcollection.json", &BidCollConfig)
 	qutil.ReadConfig("./adLeague.json", &AdLeaguefig)
 	qutil.ReadConfig("./shareFission.json", &ShareConfig)
+	var ctx = gctx.New()
+	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings(), g.Cfg().MustGet(ctx, "userCenterKey").String())
 }

+ 20 - 5
src/jfw/modules/publicapply/src/filter/sessionfilter.go

@@ -1,12 +1,12 @@
 package filter
 
 import (
-	"log"
+	. "jy/src/jfw/modules/publicapply/src/config"
 	"net/http"
 	"regexp"
 
 	. "app.yhyue.com/moapp/jybase/api"
-
+	util "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 )
 
@@ -20,12 +20,27 @@ var reg_share = regexp.MustCompile("^/publicapply/shareFission/.*")
 var reg_nps = regexp.MustCompile("^/publicapply/nps/.*")
 
 func (l *sessionfilter) Do(w http.ResponseWriter, req *http.Request) bool {
+	session := l.App.SessionManager.Session(req, w)
+	getSession := session.GetMultiple()
+	if getSession["userId"] != nil && getSession["mgoUserId"] == nil && util.Int64All(getSession["positionType"]) == 0 {
+		session.Set("mgoUserId", getSession["userId"])
+	}
+	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
+		identity := Middleground.UserCenter.IdentityByUserId(util.Int64All(getSession["base_user_id"]))
+		if identity != nil {
+			session.SetMultiple(map[string]interface{}{
+				"personId":     identity.PersonId,
+				"userName":     identity.UserName,
+				"accountId":    identity.AccountId,
+				"positionId":   identity.PositionId,
+				"positionType": identity.PositionType,
+			})
+		}
+	}
 	if reg.MatchString(req.URL.Path) || reg.MatchString(req.URL.Path) || reg_share.MatchString(req.URL.Path) || reg_nps.MatchString(req.URL.Path) {
 		return true
 	}
-	session := l.App.SessionManager.Session(req, w)
-	userId, ok := session.Get("userId").(string)
-	log.Println("-------------", session.GetMultiple(), session.Id())
+	userId, ok := getSession["userId"].(string)
 	if !ok || userId == "" {
 		R.ServeJson(w, req, &Result{Error_code_1004, Error_msg_1004, nil})
 		return false

+ 5 - 6
src/jfw/modules/publicapply/src/go.mod

@@ -3,19 +3,19 @@ module jy/src/jfw/modules/publicapply/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab
-	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1
+	app.yhyue.com/moapp/jybase v0.0.0-20230109053435-fe962d69e751
+	app.yhyue.com/moapp/jypkg v0.0.0-20230110033557-004ea51c1d18
+	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/gogf/gf/v2 v2.0.6
-	github.com/zeromicro/go-zero v1.4.4
+	github.com/zeromicro/go-zero v1.4.3
 	go.mongodb.org/mongo-driver v1.11.1
 )
 
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 // indirect
 	github.com/BurntSushi/toml v0.4.1 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.1.3 // indirect
@@ -86,7 +86,6 @@ require (
 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 // indirect
 	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
 	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
 	go.opentelemetry.io/otel/trace v1.11.0 // indirect

+ 10 - 15
src/jfw/modules/publicapply/src/go.sum

@@ -11,17 +11,17 @@ app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHu
 app.yhyue.com/moapp/jybase v0.0.0-20220719064915-2fef79005dfa/go.mod h1:FjBF25AYoBrPhVKTXGXWcmEAbBT0ATTK6KJMOA+I80Q=
 app.yhyue.com/moapp/jybase v0.0.0-20220802080941-07f401baab8b/go.mod h1:HelrO6tcD9TcKb/HOP2BLbzppyDz2kpQSFhPMQTUgbQ=
 app.yhyue.com/moapp/jybase v0.0.0-20230109015757-aa3d5e19b196/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=
-app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab h1:a9XvegdF3aM0y9v5SHtX03LIGMS3+8J1ofoNeyw5J0Y=
-app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab/go.mod h1:MqJfBFTSfZhrNDEnE4e19BmaLkaMr+lYActLXm6lrpw=
+app.yhyue.com/moapp/jybase v0.0.0-20230109053435-fe962d69e751 h1:Z3Ye/xauzer3FymqIElv9/iEIfDOUkQBfnQPcKthoSc=
+app.yhyue.com/moapp/jybase v0.0.0-20230109053435-fe962d69e751/go.mod h1:zB47XTeJvpcbtBRYgkQuxOICWNexiZfbUO+7aUf6mNs=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033557-004ea51c1d18 h1:VEImnN1BTIOgjEwUUvqatGqz9/CUoLPumMfRvrbgAEY=
+app.yhyue.com/moapp/jypkg v0.0.0-20230110033557-004ea51c1d18/go.mod h1:n2XBXZGvxUuc4AZMeMYUZuK7ayrwDQ7UdrZd6AJkUVM=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.mod h1:Yj4oabIGItuMoF0BXYLz2XAnF581kxgXBrvlUtIJrkI=
 bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c h1:g49jOlhZlBCJ3IgJA0rotfNf2Gh22pISffUtqxB8XtY=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 h1:Xv1D9avDKeaM5kQTisF/pIt8y7B7yQ/hAxuWEg75LMs=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419023723-0b32d4a41751/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419063004-233fc7ce006c/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
@@ -31,8 +31,8 @@ bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4/go.mod h1:rRiGzKG4F/fmkN
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220418072311-2062bed1e700/go.mod h1:KjcrxTzM96tBc6G4B8tlLBn1lrVy5UJYF8+eTdP4xAE=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220421015128-4a36f3eac5c5/go.mod h1:GT0QC4aaKDuXxAvaU4G02XjCc31TU1ctqBGqxQYOfC4=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220905055615-8540037e1b06/go.mod h1:LS21iwbgP8i3ZHJ1n4yNpLXQ/nzEudUOk0klC6VM2dQ=
-bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1 h1:LH/gm2iRShZ64FEuF7LTzF62iJhOVVD9AxGVHFd0ORI=
-bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230128064517-23fe8581b7f1/go.mod h1:m7/aZ1r1FapNT2h3gqmCFVb0EV+CaJaNKNPHMzLHx8Y=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979 h1:hC97JNmBonTAsnDH4XMWLXVqWdo85tCo0ge04cy0e4E=
+bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230109023014-2cd2a0b9b979/go.mod h1:m7/aZ1r1FapNT2h3gqmCFVb0EV+CaJaNKNPHMzLHx8Y=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
@@ -441,9 +441,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGn
 github.com/alicebob/miniredis/v2 v2.14.1/go.mod h1:uS970Sw5Gs9/iK3yBg0l9Uj9s25wXxSpQUE9EaJ/Blg=
 github.com/alicebob/miniredis/v2 v2.17.0/go.mod h1:gquAfGbzn92jvtrSC69+6zZnwSODVXVpYDRaGhWaL6I=
 github.com/alicebob/miniredis/v2 v2.22.0/go.mod h1:XNqvJdQJv5mSuVMc0ynneafpnL/zv52acZ6kqeS0t88=
+github.com/alicebob/miniredis/v2 v2.23.1 h1:jR6wZggBxwWygeXcdNyguCOCIjPsZyNUNlAkTx2fu0U=
 github.com/alicebob/miniredis/v2 v2.23.1/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
-github.com/alicebob/miniredis/v2 v2.30.0 h1:uA3uhDbCxfO9+DI/DuGeAMr9qI+noVWwGPNTFuKID5M=
-github.com/alicebob/miniredis/v2 v2.30.0/go.mod h1:84TWKZlxYkfgMucPBf5SOQBYJceZeQRFIaQgNMiCX6Q=
 github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
 github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
 github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
@@ -808,7 +807,6 @@ github.com/jhump/protoreflect v1.10.3/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd
 github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
 github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jhump/protoreflect v1.14.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
-github.com/jhump/protoreflect v1.14.1/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
 github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
@@ -1110,9 +1108,8 @@ github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ
 github.com/zeromicro/go-zero v1.3.2/go.mod h1:DEj3Fwj1Ui1ltsgf6YqwTL9nD4+tYzIRX0c1pWtQo1E=
 github.com/zeromicro/go-zero v1.3.5/go.mod h1:wh4o794b7Ul3W0k35Pw9nc3iB4O0OpaQTMQz/PJc1bc=
 github.com/zeromicro/go-zero v1.4.0/go.mod h1:1amLn98K7c6FLntb9f8hdmq26ajtolOg4DTFWnRt54o=
+github.com/zeromicro/go-zero v1.4.3 h1:sTQ++6fxQHJnpGCN7h2CUrhWmbvhBqEgE75cJl635SM=
 github.com/zeromicro/go-zero v1.4.3/go.mod h1:UmDjuW7LHd9j7+nnnPBcXF0HLNmjJw6OjHPTlSp7X7Y=
-github.com/zeromicro/go-zero v1.4.4 h1:J8M768EVFNtIQJ/GCEsoIQPanxbx2HHT0it7r69U76Y=
-github.com/zeromicro/go-zero v1.4.4/go.mod h1:5WSUwtJm0bYdDZ69GlckigcT6D0EyAPbDaX3unbSY/4=
 github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
 go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
 go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eGVOq7i1ULiz3OuXoQFWOirmAM=
@@ -1164,8 +1161,6 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0/go.mod h1:FnDp7XemjN3o
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 h1:j2RFV0Qdt38XQ2Jvi4WIsQ56w8T7eSirYbMw19VXRDg=
 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0/go.mod h1:pILgiTEtrqvZpoiuGdblDgS5dbIaTgDrkIuKfEFkt+A=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 h1:S8DedULB3gp93Rh+9Z+7NTEv+6Id/KYS7LDyipZ9iCE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0/go.mod h1:5WV40MLWwvWlGP7Xm8g3pMcg0pKOUY609qxJn8y7LmM=
 go.opentelemetry.io/otel/exporters/zipkin v1.3.0/go.mod h1:LxGGfHIYbvsFnrJtBcazb0yG24xHdDGrT/H6RB9r3+8=
 go.opentelemetry.io/otel/exporters/zipkin v1.8.0/go.mod h1:0uYAyCuGT67MFV9Z/Mmx93wGuugHw0FbxMc74fs3LNo=
 go.opentelemetry.io/otel/exporters/zipkin v1.9.0/go.mod h1:HyIvYIu37wV4Wx5azd7e05x9k/dOz9KB4x0plw2QNvs=

+ 7 - 38
src/jfw/modules/publicapply/src/identity/service/service.go

@@ -3,38 +3,25 @@ package service
 import (
 	"encoding/json"
 	"fmt"
-	. "jy/src/jfw/modules/publicapply/src/grpc"
+	. "jy/src/jfw/modules/publicapply/src/config"
 	"log"
-	"strconv"
 
 	. "app.yhyue.com/moapp/jybase/api"
 	util "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
+	. "app.yhyue.com/moapp/jypkg/identity"
 )
 
-type IdentityInfo struct {
-	Name         string //名称
-	PersonId     int64  //自然人id
-	UserName     string //用户昵称
-	AccountId    int64  //账户id
-	EntAccountId int64  //企业账户id
-	PositionId   int64  //职位id
-	PositionType int64  //职位类型
-	EntId        int64  //企业id
-	EntUserId    int64  //企业员工id
-	EntUserName  string //企业员工姓名
-}
-
 //加密
 func encode(i *IdentityInfo) string {
 	b, _ := json.Marshal(i)
-	return encrypt.SE.EncodeString(string(b))
+	return encrypt.SE.Encode2Hex(string(b))
 }
 
 //解密
 func decode(v string) *IdentityInfo {
 	i := &IdentityInfo{}
-	err := json.Unmarshal([]byte(encrypt.SE.DecodeString(v)), &i)
+	err := json.Unmarshal([]byte(encrypt.SE.Decode4Hex(v)), &i)
 	if err != nil {
 		log.Println("身份切换,解密token出错", err)
 		return nil
@@ -46,7 +33,7 @@ func decode(v string) *IdentityInfo {
 func (f *Identity) List() {
 	identitys := []map[string]interface{}{}
 	if base_user_id := util.Int64All(f.GetSession("base_user_id")); base_user_id > 0 {
-		for _, v := range UserCenter.IdentityList(base_user_id) {
+		for _, v := range Middleground.UserCenter.IdentityList(base_user_id) {
 			checked := 0
 			if (util.Int64All(f.GetSession("positionType")) == 0 && v.PositionType == 0) || util.Int64All(f.GetSession("positionId")) == v.PositionId {
 				checked = 1
@@ -81,26 +68,8 @@ func (f *Identity) SwitchIdentity() {
 	token := f.GetString("token")
 	identityInfo := decode(token)
 	status := 0
-	if identityInfo != nil {
-		m := map[string]interface{}{
-			"personId":     identityInfo.PersonId,
-			"userName":     identityInfo.UserName,
-			"accountId":    identityInfo.AccountId,
-			"positionId":   identityInfo.PositionId,
-			"positionType": identityInfo.PositionType,
-		}
-		if identityInfo.PositionType == 0 {
-			if f.Session().Del("entId", "entName", "entUserId", "entUserName", "entAccountId") {
-				status = 1
-				m["userId"] = f.GetSession("mgoUserId")
-				f.Session().SetMultiple(m)
-			}
-		} else if identityInfo.PositionType == 1 {
-			status = 1
-			m["userId"] = strconv.FormatInt(identityInfo.PositionId, 10)
-			m["entAccountId"] = identityInfo.EntAccountId
-			f.Session().SetMultiple(m)
-		}
+	if identityInfo != nil && identityInfo.Switch(f.Session()) {
+		status = 1
 	}
 	f.ServeJson(Result{
 		Data: status,

BIN
src/jfw/modules/publicapply/src/publicapply


+ 16 - 9
src/jfw/modules/publicapply/src/userbase/entity/entity.go

@@ -1,7 +1,6 @@
 package entity
 
 import (
-	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"encoding/json"
 	"fmt"
 	"jy/src/jfw/modules/publicapply/src/config"
@@ -12,6 +11,8 @@ import (
 	"strings"
 	"time"
 
+	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+
 	util "app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/redis"
@@ -284,28 +285,34 @@ func NewTipInfo(userId, doType, tipName string) *TipInfoStruct {
 }
 
 //
-func (this *TipInfoStruct) GetTipInfo() (flag bool) {
+func (this *TipInfoStruct) GetTipInfo() (flag int) {
 	queryMap := map[string]interface{}{
 		"s_userId": this.UserId,
 	}
 	if this.DoType == "know" { //我知道了 更新
-		flag = db.Mgo.Update("tip_info", queryMap, map[string]interface{}{
+		if db.Mgo.Update("tip_info", queryMap, map[string]interface{}{
 			"$set": map[string]interface{}{
-				this.TipName: 1,
 				fmt.Sprintf("l_%s_updatetime", this.TipName): time.Now().Unix(),
 			},
-		}, true, false)
+			"$inc": map[string]interface{}{
+				this.TipName: 1,
+			},
+		}, true, false) {
+			return 1
+		}
 	} else { //查询是否提示弹框
 		//判断是否严重用户注册时间
 		if config.Config.TipInfo[this.TipName] > 0 {
 			userBase := jy.GetBigVipUserBaseMsg("10000", this.Session, config.Config.Etcd.Hosts, config.Config.Etcd.Key)
 			//此时间点后注册的新用户
 			if userBase.Registedate > config.Config.TipInfo[this.TipName] {
-				return true
+				return 999
 			}
 		}
-		queryMap[this.TipName] = 1
-		flag = db.Mgo.Count("tip_info", queryMap) > 0
+		result, ok := db.Mgo.FindOneByField("tip_info", queryMap, map[string]interface{}{this.TipName: 1})
+		if ok && result != nil && len(*result) > 0 {
+			return util.IntAll((*result)[this.TipName])
+		}
 	}
-	return flag
+	return 0
 }

+ 1 - 1
src/jfw/modules/publicapply/src/userbase/service/service.go

@@ -105,7 +105,7 @@ func (this *ServiceStruct) IndustryTag() {
 
 // 用户一次性弹窗标签使用
 func (this *ServiceStruct) TipInfo() {
-	userId, _ := this.GetSession("userId").(string)
+	userId, _ := this.GetSession("mgoUserId").(string)
 	defer qu.Catch()
 	r := func() Result {
 		if this.Method() != "POST" {

+ 19 - 16
src/jfw/modules/subscribepay/src/go.mod

@@ -3,23 +3,22 @@ module jy/src/jfw/modules/subscribepay/src
 go 1.18
 
 require (
-	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
-	app.yhyue.com/moapp/jypkg v0.0.0-20230128092104-d8ae3867d2ab
+	app.yhyue.com/moapp/jybase v0.0.0-20221230025810-b88f2a62c467
+	app.yhyue.com/moapp/jypkg v0.0.0-20230110033535-d6c3e4b755cf
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20221230024250-38ee6578aff5
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/dchest/captcha v1.0.0
+	github.com/go-xweb/xweb v0.2.1
 	github.com/shopspring/decimal v1.3.1
 	github.com/tealeg/xlsx v1.0.5
 	go.mongodb.org/mongo-driver v1.11.1
 	gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
 )
 
-require go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 // indirect
-
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
-	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c // indirect
+	app.yhyue.com/moapp/message v0.0.0-20221202072401-d825fc65512c // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230106052936-bd3ab7edf7a4 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.1.3 // indirect
 	github.com/cespare/xxhash/v2 v2.1.2 // indirect
@@ -35,6 +34,9 @@ require (
 	github.com/go-logr/stdr v1.2.2 // indirect
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
 	github.com/go-sql-driver/mysql v1.7.0 // indirect
+	github.com/go-xweb/httpsession v0.0.0-20141220075701-356d3b4d38d6 // indirect
+	github.com/go-xweb/log v0.0.0-20140701090824-270d183ad77e // indirect
+	github.com/go-xweb/uuid v0.0.0-20140604020037-d7dce341f851 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang-jwt/jwt/v4 v4.4.3 // indirect
 	github.com/golang/mock v1.6.0 // indirect
@@ -51,6 +53,7 @@ require (
 	github.com/jinzhu/now v1.1.1 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
+	github.com/lunny/csession v0.0.0-20130910075847-fe53c5de3dfd // indirect
 	github.com/mattn/go-colorable v0.1.9 // indirect
 	github.com/mattn/go-isatty v0.0.14 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
@@ -72,18 +75,18 @@ require (
 	github.com/xdg-go/scram v1.1.1 // indirect
 	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
-	github.com/zeromicro/go-zero v1.4.4 // indirect
+	github.com/zeromicro/go-zero v1.4.3 // indirect
 	go.etcd.io/etcd/api/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/pkg/v3 v3.5.5 // indirect
 	go.etcd.io/etcd/client/v3 v3.5.5 // indirect
-	go.opentelemetry.io/otel v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/jaeger v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.0 // indirect
-	go.opentelemetry.io/otel/exporters/zipkin v1.11.0 // indirect
-	go.opentelemetry.io/otel/sdk v1.11.0 // indirect
-	go.opentelemetry.io/otel/trace v1.11.0 // indirect
+	go.opentelemetry.io/otel v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/jaeger v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
+	go.opentelemetry.io/otel/exporters/zipkin v1.10.0 // indirect
+	go.opentelemetry.io/otel/sdk v1.10.0 // indirect
+	go.opentelemetry.io/otel/trace v1.10.0 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/automaxprocs v1.5.1 // indirect
@@ -93,7 +96,7 @@ require (
 	golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
 	golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
 	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
+	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
 	golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
 	golang.org/x/text v0.4.0 // indirect
 	golang.org/x/time v0.3.0 // indirect

+ 2 - 13
src/jfw/modules/subscribepay/src/report/report.go

@@ -501,19 +501,8 @@ func getColl(referer, t string, flag bool) string {
 //
 func getQuery(sess *httpsession.Session) (string, string, interface{}) {
 	sessMap := sess.GetMultiple()
-	userId := qutil.ObjToString(sessMap["userId"])
-	user, ok := util.MQFW.FindById("user", userId, `{"s_phone":1,"s_m_phone":1}`)
-	if !ok || user == nil {
-		return "", "", nil
-	}
-	phone := qutil.ObjToString((*user)["s_phone"])
-	if phone == "" {
-		phone = qutil.ObjToString((*user)["s_m_phone"])
-	}
-	if util.Mysql.CountBySql(`SELECT count(1) as count from entniche_user a
-		inner join entniche_power b on (a.phone=? and b.status=1 and a.id=b.ent_user_id)
-		inner join entniche_wait_empower c on (c.end_time>? and (c.product_type like '%VIP订阅%' or c.product_type like '%大会员%') and b.wait_empower_id=c.id)`, phone, NowFormat(Date_Full_Layout)) > 0 {
-		return userId, "ent_userid", qutil.IntAll(sessMap["entUserId"])
+	if util.IntAll(sessMap["positionType"]) == 1 {
+		return userId, "ent_userid", util.IntAll(sessMap["entUserId"])
 	} else {
 		return userId, "userid", userId
 	}

+ 18 - 1
src/web/staticres/common-module/portraitRecord/js/index-wx.js

@@ -341,7 +341,24 @@ var vm = new Vue({
     },
     setBook() {
       if(this.ptype == 1) {
-        this.usedDialog()
+        const _this = this
+        // 当前用户企业信息接口
+        $.ajax({
+          url: '/entbase/ent/entinfo?t=' + Date.now(),
+          type: 'POST',
+          async: false,
+          success: function (res) {
+            if (res) {
+              const data =  res.data || {}
+              // 企业分配的超级订阅,直接进入充值采购单位画像包页面,不再提示选择充值方式。
+              if(data.vip_power === 1){
+                location.href = '/jy_mobile/common/order/create/buyerpack?type=1'
+              } else{
+                _this.usedDialog()
+              }
+            }
+          }
+        })
       } else {
         // location.href = '/front/vipsubscribe/upgradePage'
         location.href = '/jy_mobile/common/order/create/svip?type=upgrade'

+ 18 - 1
src/web/staticres/common-module/portraitRecord/js/index.js

@@ -342,7 +342,24 @@ var vm = new Vue({
     },
     setBook () {
       if (this.ptype == 1) {
-        this.usedDialog()
+        const _this = this
+        // 当前用户企业信息接口
+        $.ajax({
+          url: '/entbase/ent/entinfo?t=' + Date.now(),
+          type: 'POST',
+          async: false,
+          success: function (res) {
+            if (res) {
+              const data =  res.data || {}
+              // 企业分配的超级订阅,直接进入充值采购单位画像包页面,不再提示选择充值方式。
+              if(data.vip_power === 1){
+                location.href = '/jy_mobile/common/order/create/buyerpack?type=1'
+              } else{
+                _this.usedDialog()
+              }
+            }
+          }
+        })
       } else {
         //跳转清除旧套餐缓存,防止计算价格出错
         sessionStorage.removeItem('vipSub_oldBuySet')

+ 3 - 0
src/web/staticres/frontRouter/pc/collection/css/index-pc.css

@@ -363,6 +363,9 @@
   background: #fff;
   cursor: pointer;
 }
+.el-loading-mask {
+    z-index: 3;
+}
 
 .bi-report-inject-button {
   display: inline-block;

+ 224 - 0
src/web/staticres/frontRouter/pc/user/css/set_favorite.css

@@ -0,0 +1,224 @@
+.page-container {
+    background: linear-gradient(167.96deg, #FFFFFF 0%, #EDFEFF 45.31%, rgba(237, 254, 255, 0) 100%);
+}
+.page-container-content {
+    position: relative;
+    width: 680px;
+    min-height: 600px;
+    padding: 80px 0;
+    margin: 0 auto;
+    background: url(/frontRouter/pc/user/img/logo-transparent.png) no-repeat;
+    background-position: 460px 40px;
+    background-size: 104px 132px;
+}
+.page-content-header {
+    letter-spacing: 0.05em;
+}
+.page-content-header .page-title {
+    font-size: 22px;
+    line-height: 32px;
+    color: #171826;
+}
+.page-content-header .tip-text {
+    margin-top: 10px;
+    font-size: 14px;
+    line-height: 24px;
+    color: #5F5E64;
+}
+
+.skip-button {
+    padding: 4px 12px;
+    font-size: 14px;
+    line-height: 18px;
+    color: #171826;
+    background: linear-gradient(180deg, #9EF9FF 0%, rgba(96, 179, 255, 0) 100%);
+    border: 1px solid rgba(0, 0, 0, 0.1);
+    border-radius: 16px;
+}
+.fixed-button {
+    position: absolute;
+    top: 70px;
+    right: 20px;
+}
+
+.question-list-container {
+    padding: 40px 0;
+}
+.question-list-item:not(:first-of-type) {
+    margin-top: 40px;
+}
+.question-list-item .tags {
+    display: inline-block;
+    padding: 8px 12px;
+    font-size: 14px;
+    line-height: 20px;
+    color: #171826;
+    text-align: center;
+    background: linear-gradient(180deg, #E1FDFF 0%, rgba(222, 239, 255, 0) 100%);
+    border: 1px solid rgba(0,0,0,0.1);
+    border-radius: 2px;
+    margin-right: 10px;
+    margin-bottom: 12px;
+    cursor: pointer;
+}
+.question-list-item .tags.active {
+    color: #fff;
+    background: #2abed1!important;
+}
+.question-list-item .tags.colorful {
+    color: #fff;
+    background: #2abed1!important;
+}
+
+.key_title_ct {
+    display: flex;
+}
+.key_tipnums {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 20px;
+    height: 20px;
+    border-radius: 50%;
+    color: #fff;
+    font-size: 14px;
+    line-height: 20px;
+    background: linear-gradient(7.32deg, #1DB5E6 5.69%, #2ABED1 94.31%);
+}
+.key_title {
+    margin-left: 8px;
+    font-weight: bold;
+}
+.key_condition {
+    padding: 20px 0 8px 28px;
+}
+.key_condition.has-more-color .tags:nth-child(3),
+.key_condition.has-more-color .tags:nth-child(4),
+.key_condition.has-more-color .tags:nth-child(5) {
+    background: linear-gradient(180deg, #E1FFE4 0%, rgba(222, 255, 225, 0) 100%);
+}
+.key_condition.has-more-color .tags:nth-child(6),
+.key_condition.has-more-color .tags:nth-child(7),
+.key_condition.has-more-color .tags:nth-child(8) {
+    background: linear-gradient(180deg, #E1E8FF 0%, rgba(222, 241, 255, 0) 100%);
+}
+.key_condition.has-more-color .tags:nth-child(9),
+.key_condition.has-more-color .tags:nth-child(10),
+.key_condition.has-more-color .tags:nth-child(11),
+.key_condition.has-more-color .tags:nth-child(12),
+.key_condition.has-more-color .tags:nth-child(13),
+.key_condition.has-more-color .tags:nth-child(14),
+.key_condition.has-more-color .tags:nth-child(15) {
+    background: linear-gradient(180deg, #FFE8E1 0%, rgba(255, 244, 222, 0) 100%);
+}
+.key_title_substxt {
+    font-size: 11px;
+    line-height: 24px;
+    margin-top: 3px;
+    padding-left: 28px;
+    font-weight: 500;
+    color: #9B9CA3;
+}
+.key_titlenums{
+    width: 45px;
+    height: 22px;
+    display: inline-block;
+    background: #cbf7f7;
+    text-align: center;
+    line-height: 22px;
+    font-size: 14px;
+    border-radius: 10px;
+    color: #2ABED1;
+}
+.question-form-footer {
+    margin-top: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+.footer-button {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 340px;
+    height: 46px;
+    background: #2ABED1;
+    border-radius: 30px;
+    font-size: 16px;
+    line-height: 24px;
+    color: #fff;
+}
+.key_condition .selection-container {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    width: 388px;
+    height: 36px;
+    padding: 0 8px;
+}
+.selection-container .el-select {
+    width: 50%;
+}
+.selection-container .el-input {
+    display: flex;
+    align-items: center;
+}
+.selection-container .el-input__inner {
+    padding: 8px 12px;
+    height: 36px;
+    line-height: 36px;
+    color: #2ABED1;
+    background-color: transparent;
+    text-align: right;
+    border: none;
+}
+.selection-container .el-input__inner::placeholder {
+    color: #2ABED1;
+}
+.selection-container .el-input__suffix {
+    position: relative;
+    color: #C0C4CC;
+    transform: rotateZ(90deg);
+}
+.selection-container .el-input__suffix .el-select__caret {
+    transform: none;
+}
+.selection-container .el-input__suffix .el-select__caret.is-reverse {
+    transform: none;
+}
+.add-input-group .input-container {
+    display: flex;
+    align-items: center;
+}
+.add-input-group .input-container .el-input {
+    width: 310px;
+}
+.add-input-group .input-container .el-input__inner {
+    height: 36px;
+    line-height: 36px;
+}
+.add-input-group .add-input--button {
+    margin-left: 18px;
+    color: #2ABED1;
+}
+.add-input-group .add-input--button[disabled] {
+    opacity: 0.6;
+}
+.add-input-group .add-input--button:hover {
+    color: #2ABED1;
+}
+.add-input-group .add-input--tags {
+    height: unset;
+    color: #5F5E64;
+}
+.add-input-group .el-tag__close {
+    color: #fff;
+    background-color: #2ABED1;
+}
+.add-input-group .el-tag__close:hover {
+    background-color: #2abed1;
+}
+.key_error_txt {
+    margin-top: 8px;
+    color: #FF9F40;
+}

BIN
src/web/staticres/frontRouter/pc/user/img/logo-transparent.png


+ 222 - 0
src/web/staticres/frontRouter/pc/user/js/set_favorite.js

@@ -0,0 +1,222 @@
+const postUserSaleDataExample = {
+    demand: '销售管理,数据导出分析',
+    flatType: '代理商,服务商,工程施工企业',
+    scale: '20-99人',
+    position: '总经理',
+    department: '产品',
+    keyword: '自行车,手机,摩托,工程,医疗,app'
+}
+var favorite = new Vue({
+    el: '#main-app',
+    delimiters: ['${', '}'],
+    data: function () {
+        return {
+            codesArr: {
+                demand: '',
+                flatType: '',
+                scale: '',
+                position: '',
+                department: '',
+                keyword: ''
+            },
+            newUserSaleData: [],
+            // 关键词示范
+            inputKewArr: [],
+            // 关键词输入框
+            kewmodeldata: '',
+            // 用户选中信息
+            selectInfo: {},
+            selectPopInfo: {}
+        }
+    },
+    computed: {
+        inputKewLength: function () {
+            return this.inputKewArr.length >= 10
+        }
+    },
+    created: function () {
+        this.getNewUerSales()
+    },
+    methods: {
+        showToast: function (text) {
+            EasyAlert.show(text, '', 2000)
+        },
+        inputformatter () {
+            this.kewmodeldata = this.kewmodeldata.replace(/\s+/g, '')
+        },
+        positionShow: function (item, index, data) {
+            if (index === 0) return true
+            if (index === 1) {
+                // 如果职位是总裁或者总经理,不显示部门
+                try {
+                    var prevKey = data[index - 1].key
+                    if (this.selectPopInfo && this.selectPopInfo[prevKey]) {
+                        var select = this.selectPopInfo[prevKey].select
+                        if (select === '' || select === '总裁' || select === '总经理') {
+                            return false
+                        } else {
+                            return true
+                        }
+                    } else {
+                        return false
+                    }
+                } catch (error) {
+                    console.error(error)
+                    return false
+                }
+            } else {
+                return false
+            }
+            
+        },
+        // 添加关键词
+        kewsureBtn: function (index) {
+            this.setPageTrack(`添加-${this.kewmodeldata}`, index)
+            var item = this.kewmodeldata
+            // 验证关键词 重复否
+            var isinputKew = this.inputKewArr.some(function (v) {
+                return v === item
+            })
+      
+            if (isinputKew) {
+                this.showToast('关键词重复')
+                return false
+            }
+            if (this.kewmodeldata.length > 15) {
+                this.showToast('关键词超15个字')
+                return false
+            }
+            if (this.kewmodeldata === '') {
+              return false
+            }
+      
+            this.inputKewArr.push(this.kewmodeldata)
+            this.kewmodeldata = ''
+        },
+        // 取消关键字
+        canlekewBtn (item) {
+            this.inputKewArr = this.inputKewArr.filter(function (v) {
+                return v !== item
+            })
+        },
+        /**
+         * 标签选中事件
+         * @param selectItem - 选择的标签
+         * @param key - 问题 key
+         * @param choose - 问题选择类型
+         * @param choose - 问题 顶级index
+         */
+        chooseclickBtn (selectItem, { key, choose }, index) {
+            this.setPageTrack(`点击-${selectItem}`, index)
+            // 默认值初始化
+            if (!$.isArray(this.selectInfo[key])) {
+                this.$set(this.selectInfo, key, [])
+            }
+            // 多选逻辑处理
+            const isMultiple = choose === 2
+            if (isMultiple) {
+                if (this.selectInfo[key].includes(selectItem)) {
+                    const filterList = this.selectInfo[key].filter(function (v) {
+                        return v !== selectItem
+                    })
+                    this.$set(this.selectInfo, key, filterList)
+                } else {
+                    this.selectInfo[key].push(selectItem)
+                }
+            } else {
+                // 单选逻辑处理
+                this.$set(this.selectInfo, key, [])
+                this.selectInfo[key].push(selectItem)
+            }
+        },
+        /**
+         * 获取新用户数据
+         */
+        getNewUerSales: function () {
+            var _this = this
+            $.ajax({
+                url: '/salesLeads/appIsNewUerSales',
+                type: 'POST',
+                success: function(res) {
+                    if (res && res.error_code === 0 && $.isArray(res.data)) {
+                        const result = res.data
+                        result.forEach(function (v) {
+                            if (v.type === 3 && $.isArray(v.data)) {
+                                v.data.forEach(function (popInfo) {
+                                    popInfo.selectIndex = -1
+                                    popInfo.select = -1
+                                    _this.$set(_this.selectPopInfo, popInfo.key, {
+                                        show: false,
+                                        select: ''
+                                    })
+                                })
+                            }
+                        })
+                        _this.$set(_this, 'newUserSaleData', result)
+                    }
+                }
+            })
+        },
+        // 跳过
+        skip: function () {
+            this.postNewUerData(false)
+        },
+        // 提交跳过
+        postNewUerData (type, callback) {
+            var _this = this
+            this.setPageTrack(`点击-${type ? '开启剑鱼之旅' : '跳过'}`)
+            const codesArr = {
+                keyword: _this.inputKewArr.join(',') || ''
+            }
+            // 设置单选、多选选择参数
+            Object.keys(_this.selectInfo).forEach(function (v) {
+                codesArr[v] = _this.selectInfo[v].join(',')
+            })
+            // 设置 popup 参数
+            Object.keys(_this.selectPopInfo).forEach(function (v) {
+                codesArr[v] = _this.selectPopInfo[v].select
+            })
+            const params = codesArr
+            var platform = 'pc'
+            $.ajax({
+                url: '/salesLeads/appNewUerSales',
+                type: 'POST',
+                contentType: 'application/json',
+                data: JSON.stringify(params),
+                success: function(res) {
+                    if(res && res.error_code === 0) {
+                        if (res.error_msg === '保存成功') {}
+                        if (typeof callback === 'function') {
+                            callback && callback()
+                        } else {
+                            _this.goHomePage()
+                        }
+                    }
+                }
+            })
+        },
+        // 上报埋点数据
+        setPageTrack (desc = '', index = -1) {
+            var data = {
+                c_desc: desc,
+                c_index: index
+            }
+            try {
+                clab_tracker.track('c_newuser_interest', Object.assign({}, {
+                  c_platform: 'pc',
+                  date: new Date()
+                }, data))
+            } catch (e) {
+                console.warn(e)
+            }
+        },
+        goHomePage: function () {
+            // 是否window.open打开
+            if (window.opener && window.opener !== window) {
+                window.close()
+            } else {
+                location.href = '/?from=set_favorite'
+            }
+        }
+    }
+})

+ 63 - 0
src/web/staticres/js/guide-intro-dialog.js

@@ -0,0 +1,63 @@
+function GuideIntroDialog () {
+    this.iframeUrl = '/swordfish/frontPage/pure/sess/guide-intro-dialog-content'
+    this.storageKey = 'READ_GUIDE-login-clear'
+    this.needRecord = true
+    this.$dialog = $('#guide-intro-dialog-mask')
+
+    this.showDialog = function (f) {
+        if (f) {
+            this.$dialog.find('.content-iframe').attr('src', this.iframeUrl)
+            this.$dialog.modal('show')
+        } else {
+            this.$dialog.modal('hide')
+            this.onDialogClose()
+        }
+    }
+
+    this.initEvents = function () {
+        var _this = this
+        $('.guide-intro-dialog')
+            .on('click', '.skip-button', function () {
+                _this.showDialog(false)
+            })
+            .on('click', '.close-icon', function () {
+                _this.showDialog(false)
+            })
+    }
+
+    // 判断是否存在访问记录
+    this.checkHasStorage = function () {
+        var hasRecord = this.checkHasGuideRecord()
+        if (hasRecord) {
+            this.showDialog(false)
+        } else {
+            this.showDialog(true)
+        }
+    }
+
+    /**
+     * 保存引导页访问记录,是否需要持久化存储
+     * @param long
+     */
+    this.saveStorage = function (long) {
+        var GUIDE_CACHE_KEY = this.storageKey
+        var now = Date.now()
+        if (long) {
+            localStorage.setItem(GUIDE_CACHE_KEY, now)
+        } else {
+            sessionStorage.setItem(GUIDE_CACHE_KEY, now)
+        }
+    }
+
+    this.checkHasGuideRecord = function () {
+        var GUIDE_CACHE_KEY = this.storageKey
+        return sessionStorage.getItem(GUIDE_CACHE_KEY) || localStorage.getItem(GUIDE_CACHE_KEY) || false
+    }
+
+    this.onDialogClose = function () {
+        this.saveStorage(this.needRecord)
+    }
+
+    this.checkHasStorage()
+    this.initEvents()
+}

+ 49 - 15
src/web/staticres/js/login.js

@@ -493,13 +493,16 @@ var logic = function(data,num){
       phone: '',
       avatar: data.s_headimage || ''
     })
-		try{
+    try{
       checkBigStatus()
-			infoListCss();
-            message.init()
-            checkCounts()
-            initIndexMsgList()
-		}catch(e){ console.log(e) }
+      infoListCss();
+      message.init()
+      checkCounts()
+      initIndexMsgList()
+      window.guideIntroDialog = new GuideIntroDialog()
+		} catch (e) {
+      console.error(e)
+    }
 	}
 }
 
@@ -667,6 +670,30 @@ var processpage = function(shareid,num){
 	}
 }
 
+/**
+ * 检查是否需要前往新用户兴趣设置
+ * @returns {boolean}
+ */
+function checkNeedGoNewUserSettingPage () {
+  // 同步请求判断是否新用户,需要跳转兴趣设置页面
+  var goPage
+  $.ajax({
+    type: 'post',
+    async: false,
+    url: '/salesLeads/appIsNewUerSales',
+    success: function (res) {
+      if (res && res.data) {
+        goPage = '/swordfish/frontPage/user/sess/set_favorite'
+      }
+    }
+  })
+  if (goPage) {
+    window.open(goPage)
+    return true
+  }
+  return false
+}
+
 function clearObjKeyForRegFn (obj, reg) {
   if (obj) {
     for(var k in obj) {
@@ -756,13 +783,15 @@ var haslogin = function(num,kyorpn,url){
         phone: '',
         avatar: data.s_headimage || ''
       })
-			try{
-				checkBigStatus()
-				infoListCss();
-                message.init()
-                checkCounts()
-                initIndexMsgList()
-			}catch(e){}
+      try{
+        checkBigStatus()
+        infoListCss();
+        message.init()
+        checkCounts()
+        initIndexMsgList()
+			} catch (e) {
+        console.error(e)
+      }
 		}
 		else{
       toggleLoginDom(false)
@@ -1800,8 +1829,13 @@ function openLoginDig(type) {
     try {
       var injectLogic = logic
       logic = function (data, num) {
-        if (data.result === 'ok' && needToWork) {
-          return location.href = '/page_workDesktop/'
+        if (data.result === 'ok') {
+          // 检查是否需要新窗口打开<新用户兴趣偏好设置页面>
+          checkNeedGoNewUserSettingPage()
+          if (needToWork) {
+            location.href = '/page_workDesktop/'
+            return
+          }
         }
         injectLogic(data, num)
       }

+ 1 - 1
src/web/staticres/public-pc/js/header-nav.js

@@ -133,7 +133,7 @@ function trySelectNav (name) {
 })();
 function docScroll(e){
   var $href = window.location.href;
-  var opa = $(document).scrollTop() / 120
+  var opa = $(document).scrollTop() / 20
   var curTheme =$("#public-nav").attr('data-theme')
   if(opa >= 1){
     $("#public-nav").removeClass('light-bg-dark-color').removeClass('light-bg-light-color')

+ 20 - 1
src/web/staticres/vipsubscribe/js/vip_index_new.js

@@ -48,7 +48,6 @@ var subNode = new Vue({
             type: 'POST',
             async: false,
             success: function (res) {
-              console.log(res)
               if (res) {
                 _this.infoRoot = res.data
                 // 多个身份才显示切换按钮
@@ -141,6 +140,8 @@ var subNode = new Vue({
                           getDataWitXHR(sum)
                         }
                       })
+                      // 获取用户企业信息
+                      _this.getEntInfo()
                       // try {
                       //   window.getDataWitXHR()
                       // } catch (error) {
@@ -210,6 +211,24 @@ var subNode = new Vue({
                   }
                 }
             })
+        },
+        // 获取当前账户所属的企业信息
+        getEntInfo: function () {
+          var _this = this
+          $.ajax({
+            url: '/entbase/ent/entinfo?t=' + Date.now(),
+            type: 'POST',
+            async: false,
+            success: function (res) {
+              if (res) {
+                const data =  res.data || {}
+                // 企业分配的超级订阅不展示“续费”、“升级”入口
+                if(data.vip_power === 1){
+                  $('.update_renew').hide()
+                }
+              }
+            }
+          })
         }
     }
 })

+ 60 - 0
src/web/templates/common/guide-intro-dialog.html

@@ -0,0 +1,60 @@
+<!-- 产品介绍-弹窗-依赖与bootstrap -->
+<!-- 引入此模板前,保证引入/common/pnc.html模板 -->
+<style>
+.pointer {
+  cursor: pointer;
+}
+.guide-intro-dialog {
+  position: relative;
+  margin-top: 120px;
+  display: flex;
+  width: 440px;
+  height: 520px;
+  border-radius: 8px;
+  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.08);
+  z-index: 3000;
+}
+.guide-intro-dialog .skip-button {
+  position: absolute;
+  top: 10px;
+  right: 10px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 50px;
+  height: 24px;
+  font-size: 15px;
+  color: #fff;
+  background-color: rgba(0, 0, 0, 0.4);
+  border-radius: 4px;
+  z-index: 2;
+}
+.guide-intro-dialog .close-icon {
+  position: absolute;
+  left: 50%;
+  bottom: -54px;
+  font-size: 36px;
+  width: 28px;
+  height: 28px;
+  transform: translate(-50%, 0);
+  z-index: 2;
+}
+.guide-intro-dialog .close-icon img {
+  width: 100%;
+  height: 100%;
+}
+.guide-intro-dialog .content-iframe {
+  width: 100%;
+  height: 100%;
+}
+</style>
+<div class="modal fade guide-intro-dialog-mask" id="guide-intro-dialog-mask" data-backdrop="static">
+  <div class="modal-dialog guide-intro-dialog is-show">
+    <iframe class="content-iframe" src="" frameborder="0"></iframe>
+    <button class="skip-button">跳过</button>
+    <div class="close-icon pointer">
+      <img src="/images/pc/closeIcon2x.png" alt="关闭" />
+    </div>
+  </div>
+</div>
+<script src="/js/guide-intro-dialog.js"></script>

+ 4 - 0
src/web/templates/common/pchead.html

@@ -299,6 +299,10 @@
 <script src='{{Msg "seo" "cdn"}}/js/message.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/public-pc/js/header-nav.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/ad/js/index.js?v={{Msg "seo" "version"}}'></script>
+
+<!-- 产品介绍弹窗 -->
+{{include "/common/guide-intro-dialog.html"}}
+
 <!-- 浮漂消息公共js方法 -->
 <!-- defer表示最后执行 -->
 <script defer src='{{Msg "seo" "cdn"}}/common-module/ad/js/msgbuoy.js?v={{Msg "seo" "version"}}'></script>

+ 12 - 12
src/web/templates/frontRouter/pc/enterpriseCertificatio/free/index.html

@@ -486,9 +486,9 @@
         judgeTop();
         docScroll();
       });
-      
+
     })();
-    
+
     $.ajax({
                 type:'GET',
                 url:'/commercial/customer/info',
@@ -498,21 +498,21 @@
                 success:function(res) {
                   $('.phone_box').html(res.data.phone)
                   $('.wchat_box').html('<img src='+res.data.wxCodeImg+' alt="">')
-                  
-                
+
+
                 },
                 error:function(err) {
                     console.log(err)
                 }
             })
-     
+
      function docScroll(e){
       var $href = window.location.href;
-      var opa = $(document).scrollTop() / 120
+      var opa = $(document).scrollTop() / 20
       var curTheme =$("#public-nav").attr('data-theme')
       if(opa >= 1){
         $('.loginBtn').removeClass('loginBtnnew')
-      
+
       }else {
         if(firstTheme === 'dark'){
           setNavTheme('dark')
@@ -523,7 +523,7 @@
     }
     $("#public-nav .iner .jynav li").bind("mouseenter",function(){
       $('.loginBtn').removeClass('loginBtnnew')
-   
+
   })
   // $("#public-nav .iner .jynav li").bind("mouseleave",function(){
   //   $('.loginBtn').addClass('loginBtnnew')
@@ -531,7 +531,7 @@
   // })
   // $('.loginBtn').bind("mouseenter",function(){
   //     $('.loginBtn').removeClass('loginBtnnew')
-   
+
   // })
   // $('.loginBtn').bind("mouseleave",function(){
   //   $('.loginBtn').addClass('loginBtnnew')
@@ -540,7 +540,7 @@
     function getUrlKey(name) {
       return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null
     }
-  }) 
+  })
   function cooperativePartner(source) { //成为合作商
             checkLogin()
             vmPartner.isNeedSubmit(source, function () {
@@ -561,10 +561,10 @@
             if (!loginflag) {
                 $("#bidLogin").modal("show");
             }
-        } 
+        }
   function onlinekf () {
       $('.help-slide-zx.open-customer').trigger('click')
-    } 
+    }
 </script>
 {{include "/common/bidLeaveInfo.html"}}
 <!--S-百度统计-->

+ 139 - 0
src/web/templates/frontRouter/pc/pure/sess/guide-intro-dialog-content.html

@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>产品介绍</title>
+    <link href="//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css" rel="stylesheet" />
+    <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.13-rc/lib/theme-chalk/index.css" rel="stylesheet" />
+    <style>
+        div,span {
+            box-sizing: border-box;
+        }
+        .guide-intro-dialog-container {
+            width: 440px;
+            height: 520px;
+            background: linear-gradient(167.96deg, #fff 0%, #E2FDFF 48.02%, #EFFEFF 100%);
+            border-radius: 8px;
+        }
+        .carousel-list,
+        .carousel-item {
+            width: 100%;
+            height: 100%;
+        }
+        .guide-intro-dialog-content {
+            height: 100%;
+            background: url(/frontRouter/pc/user/img/logo-transparent.png) no-repeat;
+            background-position: 90% 20px;
+            background-size: 102px 132px;
+        }
+        .guide-intro-dialog-content .el-carousel__item {
+            padding: 50px 60px;
+        }
+        .guide-intro-dialog-content .el-carousel__arrow {
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            width: 26px;
+            height: 38px;
+            font-size: 18px;
+            background-color: rgba(0, 0, 0, 0.3);
+        }
+        .guide-intro-dialog-content .el-carousel__arrow--left {
+            left: 0;
+            border-radius: 0 20px 20px 0;
+        }
+        .guide-intro-dialog-content .el-carousel__arrow--right {
+            right: 0;
+            border-radius: 20px 0 0 20px;
+        }
+
+        .guide-intro-dialog-content .el-carousel__indicators--horizontal {
+            bottom: 164px;
+        }
+        .guide-intro-dialog-content .el-carousel__indicator--horizontal {
+            padding: 0;
+        }
+        .guide-intro-dialog-content .el-carousel__indicator {
+            margin-right: 12px;
+            width: 10px;
+            height: 10px;
+        }
+        .guide-intro-dialog-content .el-carousel__indicator .el-carousel__button {
+            width: 100%;
+            height: 100%;
+            border-radius: 5px;
+            background: rgba(42, 190, 209, 0.3);
+        }
+        .guide-intro-dialog-content .el-carousel__indicator.is-active {
+            width: 20px;
+        }
+        .guide-intro-dialog-content .el-carousel__indicator.is-active .el-carousel__button {
+            background: #2ABED1;
+        }
+        .guide-intro-dialog-content img {
+            display: block;
+            width: 100%;
+        }
+    </style>
+</head>
+<body>
+    <div class="guide-intro-dialog-container" id="app">
+        <div class="guide-intro-dialog-content">
+            <el-carousel class="carousel-list" height="100%" arrow="always" :interval="2000">
+                <el-carousel-item v-for="(item, index) in imageList" :key="index">
+                    <img :src="item.s_pic" alt="" />
+                </el-carousel-item>
+            </el-carousel>
+        </div>
+    </div>
+    <script src="//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js"></script>
+    <script src="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.13-rc/lib/index.js"></script>
+    <script src="//cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
+    <script src='{{Msg "seo" "cdn"}}/common-module/public/js/utils.js?v={{Msg "seo" "version"}}'></script>
+    <script>
+        var guideContent = new Vue({
+            el: '#app',
+            delimiters: ['${', '}'],
+            data: function () {
+                return {
+                    conf: {
+                        ad: 'pc-guide'
+                    },
+                    imageList: []
+                }
+            },
+            computed: {
+                ad: function () {
+                    return this.conf.ad
+                }
+            },
+            created: function () {
+                this.getActivityInfo()
+            },
+            methods: {
+                getActivityInfo: function () {
+                    var _this = this
+                    var codes = [this.ad]
+                    var params = {
+                        codes: codes
+                    }
+                    $.ajax({
+                        type: 'post',
+                        url: '/publicapply/free/getJyAdList',
+                        contentType: 'application/json',
+                        data: JSON.stringify(params),
+                        success: function (r) {
+                            if (r.error_code === 0 && r.data && $.isArray(r.data[_this.ad])) {
+                                var adList = r.data[_this.ad]
+                                _this.imageList = adList
+                            }
+                        }
+                    })
+                }
+            }
+        })
+    </script>
+</body>
+</html>

+ 134 - 0
src/web/templates/frontRouter/pc/user/sess/set_favorite.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>设置兴趣偏好</title>
+    <meta content="IE=edge,Chrome=1" http-equiv="X-UA-Compatible"/>
+    <meta content="招标订阅,招标项目,中标项目,招标信息,剑鱼标讯,设置兴趣偏好" name="keywords"/>
+    <meta content="使用剑鱼标讯,可以精准匹配招标信息,只需要微信关注剑鱼标讯公众号,然后自行设定所关注的招标关键词和地区,满足订阅需求的招标信息就会在两个小时内自动推送。" name="description"/>
+    <meta content="webkit" name="renderer">
+    <meta content="telephone=no" name="format-detection"/>
+    <meta content="" theme="light" name="enable-header">
+    {{include "/common/pnc.html"}}
+    <link href='{{Msg "seo" "cdn"}}/css/reset.css?v={{Msg "seo" "version"}}' rel="stylesheet" type="text/css"/>
+    <link href='{{Msg "seo" "cdn"}}/pccss/reset_pc.css' rel="stylesheet" type="text/css"/>
+    <link href='{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}' rel="stylesheet"/>
+    <link href='{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}' rel="stylesheet" type="text/css"/>
+    <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/theme-chalk/index.css" rel="stylesheet" />
+    <link href='{{Msg "seo" "cdn"}}/css/ele-reset.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+    <link href='{{Msg "seo" "cdn"}}/frontRouter/pc/user/css/set_favorite.css?v={{Msg "seo" "version"}}' rel="stylesheet" />
+    <style>
+        .page--web--index .page-container {
+            padding-top: 64px;
+            min-height: calc(100vh - 364px);
+            box-sizing: border-box;
+        }
+    </style>
+</head>
+<body class="page--web--index">
+{{include "/common/pchead.html"}}
+<div class="w-box page-container" id="main-app" v-cloak>
+    <section class="page-container-content">
+        <button class="fixed-button skip-button" @click="skip">跳过</button>
+        <header class="page-content-header">
+            <h1 class="page-title">选择您的业务标签</h1>
+            <div class="tip-text">剑鱼将为您提供精准的商机服务</div>
+        </header>
+        <main class="page-content-main">
+            <div class="question-list-container" v-if="newUserSaleData">
+                <div v-for="(item, index) in newUserSaleData" :key="index" class="question-form-list question-list-item">
+                    <!-- 角标 -->
+                    <div class="key_title_ct" v-if="item.title">
+                      <span class="key_tipnums" v-text="index + 1"></span>
+                      <!-- title标题 + 是否多选 -->
+                      <span class="key_title">
+                        ${item.title}
+                        <!-- 你想从剑鱼标讯得到?[多选] -->
+                        ${item.choose ? (item.choose === 2 ? '[多选]' : '[单选]') : ''}
+                      </span>
+                      <!-- 输入框类型角标 -->
+                      <span class="key_titlenums" v-if="item.type === 4">
+                        ${inputKewArr.length}/${item.maximum}
+                      </span>
+                    </div>
+                    <!-- 单选、多选选项 -->
+                    <div class="key_condition" :class="{'has-more-color': item.type === 2}" v-if="item.choose">
+                      <span
+                        v-for="(itemspan, selectIndex) in item.condition"
+                        :key="selectIndex"
+                        class="tags"
+                        :class="{ active: (selectInfo[item.key] && selectInfo[item.key].includes(itemspan)) }"
+                        @click="chooseclickBtn(itemspan, item, index)"
+                      >${itemspan}</span>
+                    </div>
+                    <!-- 弹窗选择popup -->
+                    <div class="key_condition" v-if="item.type === 3">
+                      <div v-for="(popItem, popIndex) in item.data" :key="popIndex" class="selection-container tags"
+                        v-show="positionShow(popItem, popIndex, item.data)"
+                      >
+                        <span class="section-label" v-text="popItem.name"></span>
+                        <el-select v-model="selectPopInfo[popItem.key].select" placeholder="请选择">
+                            <el-option
+                                v-for="item in popItem.condition"
+                                :key="item"
+                                :label="item"
+                                :value="item">
+                            </el-option>
+                        </el-select>
+                      </div>
+                    </div>
+                    <!-- 输入框 -->
+                    <div class="key_title_substxt" v-if="item.type === 4">
+                      ${ item.describe }
+                    </div>
+                    <!-- 选 项 -->
+                    <div class="key_condition add-input-group" v-if="item.type === 4">
+                        <div class="tags-list" v-if="inputKewArr.length">
+                            <el-tag
+                                v-for="(kew, index) in inputKewArr"
+                                :key="index"
+                                class="tags add-input--tags"
+                                @close="canlekewBtn(kew)"
+                                disable-transitions
+                                closable>
+                                ${kew}
+                            </el-tag>
+                        </div>
+                        <div class="input-container">
+                            <el-input
+                                v-model="kewmodeldata"
+                                :disabled="inputKewLength"
+                                :class="!inputKewLength || 'kewmodel_disabled'"
+                                @blur="inputformatter"
+                                placeholder="输入关键词"></el-input>
+                            <el-button type="text" class="add-input--button" :disabled="inputKewLength" @click.stop="kewsureBtn(index)">确认添加</el-button>
+                        </div>
+                        <div class="key_error_txt" v-if="inputKewLength">
+                            业务关键词填满了,请删除后再继续添加
+                        </div>
+                    </div>
+                </div>
+                <div class="question-form-footer">
+                    <button class="footer-button" @click.stop="postNewUerData(true)">开启剑鱼之旅</button>
+                </div>
+            </div>
+        </main>
+    </section>
+</div>
+<script src='{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
+<script src='{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
+<script>
+  $(function () {
+    haslogin({{.T.logid}});
+  })
+</script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/vue/2.6.14/vue.min.js"></script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js"></script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/moment/2.29.1/min/moment.min.js"></script>
+<script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/frontRouter/pc/user/js/set_favorite.js?v={{Msg "seo" "version"}}'></script>
+<!--S-百度统计-->
+{{include "/common/pcbottom.html"}}
+{{include "/common/baiducc.html"}}
+<!--E-百度统计-->
+</body>
+</html>

+ 21 - 21
src/web/templates/pc/index.html

@@ -506,7 +506,7 @@
             slideChangeTransitionStart: function() {
               var img = document.getElementsByClassName('swiper-slide-active')[0].children[0];
               var theme = $(img).attr('data-theme')
-              var opa = $(document).scrollTop() / 120
+              var opa = $(document).scrollTop() / 20
               if (opa < 1) {
                 if (theme === 'light') {
                   setTimeout(function(){
@@ -718,7 +718,7 @@
     window.addEventListener('scroll', function() {
       var img = document.getElementsByClassName('swiper-slide-active')[0].children[0];
       var theme = $(img).attr('data-theme')
-      var opa = $(document).scrollTop() / 120
+      var opa = $(document).scrollTop() / 20
       if (opa < 1) {
         if (theme === 'light') {
           $('.public-nav').addClass('light-bg-dark-color').removeClass('light-bg-light-color')
@@ -833,28 +833,28 @@
   }
   {{end}}
 
-  var showDay = localStorage.tc;
-  if(adv_img!=""){
-    if(localStorage.tc === undefined){
-      $("#index_tc").css("display","block");
-      $("#close2x").css("display","block");
-      $(".tans").css("display","block");
-    }else{
-      if(showDay != day){
-        $("#index_tc").css("display","block");
-        $("#close2x").css("display","block");
-        $(".tans").css("display","block");
-      }else{
-        $("#index_tc").css("display","none");
-        $("#close2x").css("display","none");
-        $(".tans").css("display","none");
-      }
-    }
-  }
+  // 首页活动弹窗迁移至工作桌面首页,此处活动弹窗不再展示
+  // var showDay = localStorage.tc;
+  // if(adv_img!=""){
+  //   if(localStorage.tc === undefined){
+  //     $("#index_tc").css("display","block");
+  //     $("#close2x").css("display","block");
+  //     $(".tans").css("display","block");
+  //   }else{
+  //     if(showDay != day){
+  //       $("#index_tc").css("display","block");
+  //       $("#close2x").css("display","block");
+  //       $(".tans").css("display","block");
+  //     }else{
+  //       $("#index_tc").css("display","none");
+  //       $("#close2x").css("display","none");
+  //       $(".tans").css("display","none");
+  //     }
+  //   }
+  // }
 
   // 首页底部广告位
   {{$bottom:=(Ad "jy_pc_index_bottom" -1 .Host)}}
-  // console.log({{$bottom}})
   var bottom_img = ({{$bottom}})
 
   // 首页底部样式调整,适配广告位

Some files were not shown because too many files changed in this diff