Răsfoiți Sursa

feat:redis有序集合

wangshan 1 an în urmă
părinte
comite
eaac45e21a
9 a modificat fișierele cu 315 adăugiri și 1034 ștergeri
  1. BIN
      analyze.exe
  2. 6 9
      go.mod
  3. 12 9
      go.sum
  4. 208 614
      internal/dao/internal/userTask.go
  5. 12 5
      internal/model/entity/result.go
  6. 0 5
      logs/2023-12-20.log
  7. 0 375
      logs/2023-12-23.log
  8. 1 0
      main.go
  9. 76 17
      utility/userTask.go

BIN
analyze.exe


+ 6 - 9
go.mod

@@ -5,26 +5,25 @@ go 1.18
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20231120053339-0b7406056861
 	bp.jydev.jianyu360.cn/BaseService/pushpkg v0.0.0-20231219023159-706ee090fb7c
-	github.com/gogf/gf/v2 v2.5.2
+	github.com/gogf/gf/contrib/nosql/redis/v2 v2.6.1
+	github.com/gogf/gf/v2 v2.6.1
+	github.com/olivere/elastic/v7 v7.0.22
 )
 
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
 	github.com/BurntSushi/toml v1.2.0 // indirect
+	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/clbanning/mxj/v2 v2.7.0 // indirect
+	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
 	github.com/fatih/color v1.15.0 // indirect
 	github.com/fsnotify/fsnotify v1.7.0 // indirect
-	github.com/garyburd/redigo v1.6.2 // indirect
 	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
-	github.com/go-sql-driver/mysql v1.6.0 // indirect
 	github.com/go-stack/stack v1.8.0 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
-	github.com/gomodule/redigo v1.8.9 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
-	github.com/jinzhu/inflection v1.0.0 // indirect
-	github.com/jinzhu/now v1.1.1 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
 	github.com/magiconair/properties v1.8.6 // indirect
@@ -34,8 +33,8 @@ require (
 	github.com/mattn/go-runewidth v0.0.15 // indirect
 	github.com/olekukonko/tablewriter v0.0.5 // indirect
 	github.com/olivere/elastic v6.2.37+incompatible // indirect
-	github.com/olivere/elastic/v7 v7.0.22 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
+	github.com/redis/go-redis/v9 v9.2.1 // indirect
 	github.com/rivo/uniseg v0.4.4 // indirect
 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
 	github.com/xdg-go/scram v1.0.2 // indirect
@@ -51,6 +50,4 @@ require (
 	golang.org/x/sys v0.13.0 // indirect
 	golang.org/x/text v0.13.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
-	gorm.io/driver/mysql v1.0.5 // indirect
-	gorm.io/gorm v1.21.3 // indirect
 )

+ 12 - 9
go.sum

@@ -22,8 +22,12 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24
 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
+github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
+github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
+github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
 github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
@@ -40,6 +44,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
 github.com/donnie4w/go-logger v0.0.0-20170827050443-4740c51383f4/go.mod h1:L7S4x0R7vv3xoOhGuyAJyCO2MYzWOpccM4Isn8jIUgY=
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -56,7 +62,6 @@ github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHqu
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
 github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
 github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
-github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM=
 github.com/garyburd/redigo v1.6.2/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
@@ -71,13 +76,14 @@ github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
 github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
 github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
-github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
 github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gogf/gf/v2 v2.5.2 h1:fACJE7DJH6iTGHGhgiNY1uuZIZtr2IqQkJ52E+wBnt8=
-github.com/gogf/gf/v2 v2.5.2/go.mod h1:7yf5qp0BznfsYx7Sw49m3mQvBsHpwAjJk3Q9ZnKoUEc=
+github.com/gogf/gf/contrib/nosql/redis/v2 v2.6.1 h1:5NWx7rZa8CbPNw1vbLzIXQFEMbKvoJVQM0GyReBRvJ8=
+github.com/gogf/gf/contrib/nosql/redis/v2 v2.6.1/go.mod h1:iy1Dwp5xWfGfuWixCgGQ06ZX6lp+d9onbmSWWzi111A=
+github.com/gogf/gf/v2 v2.6.1 h1:n/cfXM506WjhPa6Z1CEDuHNM1XZ7C8JzSDPn2AfuxgQ=
+github.com/gogf/gf/v2 v2.6.1/go.mod h1:x2XONYcI4hRQ/4gMNbWHmZrNzSEIg20s2NULbzom5k0=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
@@ -101,7 +107,6 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
 github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
 github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -124,9 +129,7 @@ github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/howeyc/fsnotify v0.9.0/go.mod h1:41HzSPxBGeFRQKEEwgh49TRw/nKBsYZ2cF1OzPjSJsA=
-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=
 github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
@@ -202,6 +205,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/redis/go-redis/v9 v9.2.1 h1:WlYJg71ODF0dVspZZCpYmoF1+U1Jjk9Rwd7pq6QmlCg=
+github.com/redis/go-redis/v9 v9.2.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
 github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -414,9 +419,7 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gorm.io/driver/mysql v1.0.5 h1:WAAmvLK2rG0tCOqrf5XcLi2QUwugd4rcVJ/W3aoon9o=
 gorm.io/driver/mysql v1.0.5/go.mod h1:N1OIhHAIhx5SunkMGqWbGFVeh4yTNWKmMo1GOAsohLI=
-gorm.io/gorm v1.21.3 h1:qDFi55ZOsjZTwk5eN+uhAmHi8GysJ/qCTichM/yO7ME=
 gorm.io/gorm v1.21.3/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

Fișier diff suprimat deoarece este prea mare
+ 208 - 614
internal/dao/internal/userTask.go


+ 12 - 5
internal/model/entity/result.go

@@ -111,7 +111,7 @@ type ScaleAreaAmountTopS struct {
 type WinnerTotalS struct {
 	Id          string `json:"id"`           //中标企业id
 	Winner      string `json:"winner"`       //中标企业名称
-	WinnerTotal int    `json:"winner_total"` //中标项目数量
+	WinnerTotal int64  `json:"winner_total"` //中标项目数量
 }
 
 // 项目数量TOP3地区的重点中标单位
@@ -215,13 +215,13 @@ type BuyerAmountTop3S struct {
 type Winnertop3Number struct {
 	Id     string `json:"id"`     //中标企业id
 	Name   string `json:"name"`   //中标企业名称
-	Number int    `json:"number"` //合作项目数量
+	Number int64  `json:"number"` //合作项目数量
 }
 
 // 项目数量TOP30采购单位及其重点合作中标单位
 type BuyerCountTop3S struct {
 	Name       string              `json:"name"`       //采购单位名称
-	Number     int                 `json:"number"`     //采购单位项目数量
+	Number     int64               `json:"number"`     //采购单位项目数量
 	Winnertop3 []*Winnertop3Number `json:"winnertop3"` //合作中标企业结婚  项目数量 倒叙 前三
 }
 
@@ -251,14 +251,14 @@ type WinnerAmountTop3S struct {
 // 合作采购单位 项目数量 前三
 type Buyertop3Number struct {
 	Name   string `json:"name"`   //采购单位名称
-	Number int    `json:"number"` //项目数量
+	Number int64  `json:"number"` //项目数量
 }
 
 // 项目数量TOP30中标单位及其重点合作采购单位
 type WinnerCountTop3S struct {
 	Id        string             `json:"id"`        //中标企业id
 	Name      string             `json:"name"`      //中标企业名称
-	Number    int                `json:"number"`    //项目数量
+	Number    int64              `json:"number"`    //项目数量
 	Buyertop3 []*Buyertop3Number `json:"buyertop3"` //合作采购单位 前三
 }
 
@@ -276,3 +276,10 @@ type MarketBuyerAndWinner struct {
 	//中标规模分布
 	WinnerTimeDistribution []*BuyerAndWinnerTimeDistributionS `json:"winner_time_distribution"`
 }
+
+// redis
+type MemberScore struct {
+	Member string
+	Id     string
+	Score  float64
+}

+ 0 - 5
logs/2023-12-20.log

@@ -1,5 +0,0 @@
-2023-12-20T17:39:53 [INFO] {a0ab4e1ac580a2170ac00903a84567e3} --------- --数据库信息初始化 start
-2023-12-20T17:39:53 [INFO] {a0ab4e1ac580a2170ac00903a84567e3} --------- 初始化 elasticsearch
-2023-12-20T17:39:53 [INFO] {a0ab4e1ac580a2170ac00903a84567e3} --------- 初始化 mongodb main
-2023-12-20T17:39:53 [INFO] {a0ab4e1ac580a2170ac00903a84567e3} --------- --数据库信息初始化 end
-2023-12-20T17:39:56 [INFO] {a0ab4e1ac580a2170ac00903a84567e3} --------- --定时任务配置初始化--开始--

Fișier diff suprimat deoarece este prea mare
+ 0 - 375
logs/2023-12-23.log


+ 1 - 0
main.go

@@ -4,6 +4,7 @@ import (
 	"analyze/internal/model/do"
 	_ "analyze/internal/model/do"
 	"analyze/internal/task"
+	_ "github.com/gogf/gf/contrib/nosql/redis/v2"
 	"github.com/gogf/gf/v2/os/gctx"
 )
 

+ 76 - 17
utility/userTask.go

@@ -1,11 +1,16 @@
 package utility
 
 import (
+	"analyze/internal/consts"
+	"analyze/internal/model"
 	"analyze/internal/model/entity"
 	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"fmt"
+	"github.com/gogf/gf/v2/database/gredis"
+	"github.com/gogf/gf/v2/frame/g"
 	"math"
+	"strconv"
 	"strings"
 	"time"
 )
@@ -185,34 +190,41 @@ func EncodeId(sid string) string {
 	return encrypt.EncodeArticleId2ByCheck(sid)
 }
 
+// xxxx重点中标单位 更新分数值
+func UpdateWinnerInfoOfScore(key string, pt *entity.ProjectInfo, score float64) {
+	if pt.Winners != "" {
+		for k, w := range strings.Split(pt.Winners, ",") {
+			id := common.If(len(pt.Entidlist) > k, encrypt.EncodeArticleId2ByCheck(pt.Entidlist[k]), "").(string)
+			UpdateIncrementRedis(key, fmt.Sprintf("%s##%s", w, id), score)
+		}
+	}
+}
+
+// xxxx重点采购单位 更新分数值
+func UpdateBuyerInfoOfScore(key string, pt *entity.ProjectInfo, score float64) {
+	if pt.Buyer != "" {
+		UpdateIncrementRedis(key, fmt.Sprintf("%s##%s", pt.Buyer, pt.Id), score)
+	}
+}
+
 // 项目金额---TOP3地区的重点中标单位
-func GetWinnerInfoOfAmount(pt *entity.ProjectInfo) []*entity.WinnerAmountS {
-	var winnerAmount []*entity.WinnerAmountS
+func SetWinnerInfoOfAmount(key string, pt *entity.ProjectInfo) {
 	if pt.Winners != "" {
 		for k, w := range strings.Split(pt.Winners, ",") {
-			winnerAmount = append(winnerAmount, &entity.WinnerAmountS{
-				Id:           common.If(len(pt.Entidlist) > k, encrypt.EncodeArticleId2ByCheck(pt.Entidlist[k]), "").(string),
-				Winner:       w,
-				WinnerAmount: pt.Sortprice,
-			})
+			id := common.If(len(pt.Entidlist) > k, encrypt.EncodeArticleId2ByCheck(pt.Entidlist[k]), "").(string)
+			UpdateIncrementRedis(key, fmt.Sprintf("%s##%s", w, id), pt.Sortprice)
 		}
 	}
-	return winnerAmount
 }
 
 // 项目数量---TOP3地区的重点中标单位
-func GetWinnerInfoOfCount(pt *entity.ProjectInfo) []*entity.WinnerTotalS {
-	var winnerCount []*entity.WinnerTotalS
+func SetWinnerInfoOfCount(key string, pt *entity.ProjectInfo) {
 	if pt.Winners != "" {
 		for k, w := range strings.Split(pt.Winners, ",") {
-			winnerCount = append(winnerCount, &entity.WinnerTotalS{
-				Id:          common.If(len(pt.Entidlist) > k, encrypt.EncodeArticleId2ByCheck(pt.Entidlist[k]), "").(string),
-				Winner:      w,
-				WinnerTotal: 1,
-			})
+			id := common.If(len(pt.Entidlist) > k, encrypt.EncodeArticleId2ByCheck(pt.Entidlist[k]), "").(string)
+			UpdateIncrementRedis(key, fmt.Sprintf("%s##%s", w, id), 1)
 		}
 	}
-	return winnerCount
 }
 
 // 细化市场重点中标单位-项目数量|金额
@@ -285,5 +297,52 @@ func GetWinnerInfoOfWinnerAmount(pt *entity.ProjectInfo) []*entity.Buyertop3Amou
 	return buyertop3Amount
 }
 func GetJudgmentPrevKey(first int, next string) (key string) {
-	return fmt.Sprintf("%d-%s", first, next)
+	return fmt.Sprintf("mk_%d_%s", first, next)
+}
+
+// redis update|| expire
+func UpdateIncrementRedis(key, member string, increment float64) {
+	_, err := g.Redis().ZIncrBy(model.Ctx, key, increment, member)
+	if err != nil {
+		g.Log().Info(model.Ctx, "---update---err:", err.Error())
+	} else {
+		_, err = g.Redis().Expire(model.Ctx, key, consts.Top30) //缓存三十秒
+		if err != nil {
+			g.Log().Info(model.Ctx, "---expire---err:", err.Error())
+		}
+	}
+}
+
+// -- score
+func GetZrevRangeByScore(key string, max, min int64) (res []entity.MemberScore, err error) {
+	gvar, _err := g.Redis().ZRevRange(model.Ctx, key, min, max, gredis.ZRevRangeOption{WithScores: true})
+	if _err != nil {
+		err = _err
+		g.Log().Info(model.Ctx, "err:", err.Error())
+		return
+	}
+	// 遍历返回结果
+	for k, v := range gvar.Slice() {
+		if k%2 == 0 {
+			ms := entity.MemberScore{}
+			ms.Member = strings.Split(fmt.Sprintf("%s", v), "##")[0]
+			ms.Id = strings.Split(fmt.Sprintf("%s", v), "##")[1]
+			res = append(res, ms)
+		} else {
+			res[k/2].Score, _ = strconv.ParseFloat(fmt.Sprintf("%s", v), 64)
+		}
+	}
+	return
+}
+
+// --Del
+func DelRedisInfo(key string) {
+	if _, err := g.Redis().Del(model.Ctx, key); err != nil {
+		g.Log().Info(model.Ctx, "redis del err :", err.Error())
+	}
+}
+
+// --key
+func GetSortedKeyOfRedis(prev int, key, id, suffix string) string {
+	return fmt.Sprintf("sorted_%d_%s_%s_%s", prev, key, id, suffix)
 }

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff