Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
search_server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ad64d4ec
authored
Jul 16, 2020
by
mushishixian
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
添加队列推送和钉钉发送消息
parent
b47b2d33
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
67 additions
and
45 deletions
conf/message.ini
conf/rabmq_key.ini
conf/search.ini
go.mod
model/brand.go
pkg/config/config.go
pkg/message/dingding.go
pkg/mq/mq.go
service/sku_service.go
service/transformer/goods_transformer.go
test/test.go
conf/message.ini
0 → 100644
View file @
ad64d4ec
[DINGDING]
SEARCH_API_MONITOR
=
6d0fa85e01a02c39347d011ae973fd21b76c6c7ce582d3ea470c6b65a318848d
\ No newline at end of file
conf/rabmq_key.ini
View file @
ad64d4ec
[rabmq]
url
=
amqp://guest:guest@192.168.2.232:5672/
;存放本系统所有的队列名称
[rabmq_all]
;联营数据推送入队列-》go后台任务消费(斌哥脚本)
...
...
conf/search.ini
View file @
ad64d4ec
...
...
@@ -42,7 +42,7 @@
MOUSER_API
=
'http://footstone.liexin.net/webapi/handle_mouser'
[
brand
]
[
BRAND
]
IS_NOT_TI
=
0
TI_LY_BRAND_IDS
=
23,45069,7754,17484,43215,13421,5220,7636,44534,43556,44543,9429,758,9470,10430,10653,10707,11227,11276,11819,12608,12965,12997,13327,13675,13680,13752
TI_ZY_BRAND_IDS
=
23
...
...
@@ -120,7 +120,7 @@ Index = liexin_ziying
8
=
kw
[
official_website
]
[
OFFICIAL_WEBSITE
]
1
=
https://www.futureelectronics.cn/search/?text=liexin
2
=
http://www.powerandsignal.com/Products/Search?searchBox=liexin
3
=
https://www.rocelec.com/search?q=liexin
...
...
go.mod
View file @
ad64d4ec
...
...
@@ -3,12 +3,10 @@ module search_server
go 1.14
require (
github.com/basgys/goxml2json v1.1.0
github.com/coreos/etcd v3.3.18+incompatible
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd // indirect
github.com/gin-contrib/cors v1.3.1
github.com/gin-gonic/gin v1.6.3
github.com/go-ini/ini v1.57.0
github.com/go-playground/locales v0.13.0
github.com/go-sql-driver/mysql v1.5.0
github.com/go-xorm/xorm v0.7.9
github.com/gogo/protobuf v1.3.1 // indirect
...
...
@@ -18,39 +16,28 @@ require (
github.com/gorilla/websocket v1.4.2 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.14.3 // indirect
github.com/ichunt2019/go-rabbitmq v1.0.1
github.com/ichunt2019/logger v1.0.5
github.com/idoubi/goz v1.0.0
github.com/imroc/req v0.3.0
github.com/jinzhu/gorm v1.9.12
github.com/joncalhoun/qson v0.0.0-20170526102502-8a9cab3a62b1 // indirect
github.com/mholt/certmagic v0.9.3 // indirect
github.com/mattn/go-sqlite3 v2.0.1+incompatible // indirect
github.com/micro/go-micro v1.16.0
github.com/micro/go-micro/v2 v2.9.0
github.com/micro/micro/v2 v2.9.1 // indirect
github.com/micro/protoc-gen-micro v1.0.0 // indirect
github.com/prometheus/client_golang v1.5.1 // indirect
github.com/prometheus/common v0.10.0
github.com/prometheus/procfs v0.0.11 // indirect
github.com/silenceper/gowatch v0.0.0-20200624073703-8e473a9db258 // indirect
github.com/sirupsen/logrus v1.5.0 // indirect
github.com/smartystreets/goconvey v1.6.4 // indirect
github.com/stretchr/testify v1.5.1 // indirect
github.com/syyongx/php2go v0.9.4
github.com/tidwall/gjson v1.6.0
github.com/uniplaces/carbon v0.1.6
github.com/urfave/cli v1.22.4 // indirect
go.etcd.io/bbolt v1.3.4
go.uber.org/zap v1.14.1 // indirect
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2 // indirect
golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361
google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece // indirect
google.golang.org/grpc v1.29.1 // indirect
google.golang.org/protobuf v1.24.0
gopkg.in/ini.v1 v1.51.0 // indirect
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
gopkg.in/olivere/elastic.v5 v5.0.85
gopkg.in/src-d/go-git.v4 v4.13.1 // indirect
sigs.k8s.io/yaml v1.2.0 // indirect
)
...
...
model/brand.go
View file @
ad64d4ec
...
...
@@ -7,20 +7,20 @@ import (
//获取需要排除的品牌id
//branType = 1 : 联营 2 : 自营
func
GetExcludeBrandIds
(
brandType
int
)
(
excludeBrandIds
[]
int
)
{
isNoTi
:=
config
.
Get
(
"
brand
.IS_NOT_TI"
)
.
String
()
isNoTi
:=
config
.
Get
(
"
BRAND
.IS_NOT_TI"
)
.
String
()
//如果关闭,直接返回空数据
if
isNoTi
==
"0"
{
return
}
//返回联营的brand_id切片
if
brandType
==
1
{
tiLyBrandIds
:=
config
.
Get
(
"
brand
.TI_LY_BRAND_IDS"
)
.
Ints
(
","
)
tiLyBrandIds
:=
config
.
Get
(
"
BRAND
.TI_LY_BRAND_IDS"
)
.
Ints
(
","
)
excludeBrandIds
=
tiLyBrandIds
//获取的是字符串
return
}
//返回自营的ti的brand_id切片
tiZyBrandId
:=
config
.
Get
(
"
brand
.TI_ZY_BRAND_IDS"
)
.
Ints
(
","
)
tiZyBrandId
:=
config
.
Get
(
"
BRAND
.TI_ZY_BRAND_IDS"
)
.
Ints
(
","
)
excludeBrandIds
=
tiZyBrandId
return
...
...
pkg/config/config.go
View file @
ad64d4ec
...
...
@@ -12,7 +12,7 @@ var (
func
SetUp
(
path
string
)
(
err
error
)
{
//引入多个文件
Cfg
,
err
=
ini
.
LooseLoad
(
path
+
"/config.ini"
,
path
+
"/search.ini"
,
path
+
"/redis_key.ini"
,
path
+
"/rabmq_key.ini"
,
path
+
"/database.ini"
,
path
+
"/redis_config.ini"
)
path
+
"/redis_config.ini"
,
path
+
"/message.ini"
)
return
}
...
...
pkg/message/dingding.go
View file @
ad64d4ec
package
message
import
(
"encoding/json"
"fmt"
"github.com/imroc/req"
"github.com/prometheus/common/log"
"github.com/tidwall/gjson"
"search_server/pkg/config"
"strings"
)
//发送钉钉消息的包
...
...
@@ -12,26 +16,33 @@ type DingDingRequest struct {
IsAtAll
bool
`json:"isAtAll"`
}
func
SendDingdingMessage
(
content
string
)
{
var
(
requestData
DingDingRequest
apiUrl
,
token
string
//resp *req.Resp
err
error
)
//todo: 需要配置一个搜索服务的专属警告
content
=
"仓储同步告警 : "
+
content
requestData
.
MsgType
=
"text"
requestData
.
Text
=
map
[
string
]
string
{
type
DingDingResponse
struct
{
Errcode
int
`json:"errcode"`
Errmsg
string
`json:"errmsg"`
}
func
DingDingPush
(
content
string
)
(
result
DingDingResponse
,
err
error
)
{
accessToken
:=
config
.
Get
(
"DINGDING.SEARCH_API_MONITOR"
)
.
String
(
)
webhook
:=
"https://oapi.dingtalk.com/robot/send?access_token="
+
accessToken
data
:=
make
(
map
[
string
]
interface
{})
data
[
"msgtype"
]
=
"text"
data
[
"text"
]
=
map
[
string
]
string
{
"content"
:
content
,
}
req
.
Debug
=
false
requestData
.
IsAtAll
=
false
token
=
"3c048caba514a5252aa8bdbb3e10994def6409a2f0d5212e5626c1a071152ec3"
apiUrl
=
"https://api.ichunt.com/public/dingtalkrobot?access_token="
+
token
params
:=
req
.
BodyJSON
(
requestData
)
_
,
err
=
req
.
Post
(
apiUrl
,
params
)
if
err
!=
nil
{
log
.
Error
(
err
)
dataStrByte
,
_
:=
json
.
Marshal
(
data
)
dataStr
:=
string
(
dataStrByte
)
fmt
.
Println
(
dataStr
)
dataStr
=
strings
.
Replace
(
dataStr
,
"
\\
"
,
"
\\\\
"
,
-
1
)
params
:=
req
.
BodyJSON
(
dataStr
)
resp
,
err
:=
req
.
Post
(
webhook
,
params
,
req
.
Header
{
"Content-Type"
:
"application/json"
,
"charset"
:
"UTF-8"
,
})
if
resp
==
nil
{
return
}
result
.
Errcode
=
int
(
gjson
.
Get
(
resp
.
String
(),
"errcode"
)
.
Int
())
result
.
Errmsg
=
gjson
.
Get
(
resp
.
String
(),
"errmsg"
)
.
String
()
return
}
pkg/mq/mq.go
0 → 100644
View file @
ad64d4ec
package
mq
import
(
"github.com/ichunt2019/go-rabbitmq/utils/rabbitmq"
"search_server/pkg/config"
)
func
PushMsg
(
listName
string
,
data
string
)
{
queueExchange
:=
rabbitmq
.
QueueExchange
{
listName
,
listName
,
""
,
"direct"
,
config
.
Get
(
"rabmq.url"
)
.
String
(),
}
rabbitmq
.
Send
(
queueExchange
,
data
)
}
service/sku_service.go
View file @
ad64d4ec
...
...
@@ -8,7 +8,7 @@ import (
//推送搜索关键词
func
ShowSku
(
goods
model
.
DullGoodsData
)
{
l
en
:=
len
(
goods
.
GoodsId
)
goodsIdL
en
:=
len
(
goods
.
GoodsId
)
if
goods
.
GoodsId
==
""
||
goods
.
BrandName
==
""
||
goods
.
SupplierName
==
""
{
return
}
...
...
@@ -36,11 +36,11 @@ func ShowSku(goods model.DullGoodsData) {
}
//todo : goods_name正则替换
result
[
"goods_name"
]
=
goods
.
GoodsName
if
(
l
en
<
19
||
goods
.
SupplierId
==
10000
)
&&
result
[
"supplier_type"
]
!=
"撮合"
{
if
(
goodsIdL
en
<
19
||
goods
.
SupplierId
==
10000
)
&&
result
[
"supplier_type"
]
!=
"撮合"
{
result
[
"keyword"
]
=
strings
.
TrimSpace
(
"keyword"
)
}
result
[
"adtag"
],
_
=
middleware
.
Context
.
Cookie
(
"adtag"
)
if
l
en
<
19
{
if
goodsIdL
en
<
19
{
result
[
"status"
]
=
"1"
}
...
...
service/transformer/goods_transformer.go
View file @
ad64d4ec
...
...
@@ -123,7 +123,7 @@ func getSupplierInfo(goods model.DullGoodsData) (model.DullGoodsData, error) {
}
goods
.
PageFlag
=
2
//获取官网信息
officialWebsites
:=
config
.
Cfg
.
Section
(
"
official_website
"
)
.
KeysHash
()
officialWebsites
:=
config
.
Cfg
.
Section
(
"
OFFICIAL_WEBSITE
"
)
.
KeysHash
()
if
website
,
exist
:=
officialWebsites
[
common
.
ToString
(
goods
.
SupplierId
)];
exist
{
goods
.
SupplierWebsite
=
strings
.
Replace
(
website
,
"liexin"
,
goods
.
SupplierName
,
-
1
)
}
else
{
...
...
test/test.go
View file @
ad64d4ec
...
...
@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/syyongx/php2go"
"search_server/boot"
"search_server/pkg/mq"
)
func
StrRandom
(
lenNum
int
)
string
{
...
...
@@ -28,4 +29,5 @@ func main() {
if
err
:=
boot
.
Boot
(
path
);
err
!=
nil
{
fmt
.
Println
(
err
)
}
mq
.
PushMsg
(
"xian_test"
,
"test"
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment