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
7033d5ca
authored
Jul 27, 2020
by
huangchengyi
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
1.0
parent
fb447380
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
31 additions
and
26 deletions
controller/get_data_controller.go
controller/ly_mouser_controller.go
controller/quote_controller.go
middleware/context_vars.go
model/ly.go
pkg/common/function.go
routes/router.go
service/ly/mouser.go
controller/get_data_controller.go
View file @
7033d5ca
...
...
@@ -96,7 +96,7 @@ func outLinkDiv(supplierId *string,supplierName *string,keyWord * string){
var
apiData
map
[
string
]
*
model
.
LyClearGoodsList
=
nil
switch
*
supplierName
{
case
"mouser"
:
//调外链拿数据mouser外链请求更新修改
apiData
=
ly
.
OutLinkMouser
(
keyWord
,
"1"
)
apiData
=
ly
.
OutLinkMouser
(
keyWord
)
break
;
}
...
...
controller/ly_mouser_controller.go
View file @
7033d5ca
...
...
@@ -2,25 +2,18 @@ package controller
import
(
"github.com/gin-gonic/gin"
"search_server/middleware"
"search_server/model"
"search_server/pkg/common"
"search_server/service/ly"
"strings"
)
//搜索型号
func
GetMouserData
(
c
*
gin
.
Context
)
{
_REQUEST
:=
make
(
map
[
string
]
string
,
0
);
c
.
MultipartForm
()
for
requestName
,
requstValue
:=
range
c
.
Request
.
Form
{
if
requstValue
[
0
]
!=
""
{
_REQUEST
[
requestName
]
=
strings
.
TrimSpace
(
requstValue
[
0
])
}
}
goodsName
:=
middleware
.
REQUEST
[
"goods_name"
]
flag
:=
middleware
.
REQUEST
[
"flag"
]
goodsName
:=
_REQUEST
[
"goods_name"
]
flag
:=
_REQUEST
[
"flag"
]
common
.
PrintDebugHeader
(
c
,
&
flag
)
if
goodsName
==
""
{
...
...
@@ -29,7 +22,7 @@ func GetMouserData(c *gin.Context) {
}
//调外链拿数据
apiData
:=
ly
.
OutLinkMouser
(
&
goodsName
,
"-1"
)
apiData
:=
ly
.
OutLinkMouser
(
&
goodsName
)
//供应商详情
lycon
:=
new
(
ly
.
CommonLyService
)
...
...
controller/quote_controller.go
View file @
7033d5ca
...
...
@@ -65,7 +65,7 @@ func QuoteIndex(c *gin.Context) {
}
func
mouserOrg
(
keyword
,
suppliedId
string
)
(
result
map
[
string
]
interface
{},
err
error
)
{
mouserRes
:=
ly
.
OutLinkMouser
(
&
keyword
,
"1"
)
mouserRes
:=
ly
.
OutLinkMouser
(
&
keyword
)
redisCon
:=
gredis
.
Conn
(
"search_r"
)
defer
redisCon
.
Close
()
skuMouser
:=
make
(
map
[
string
]
string
)
...
...
middleware/context_vars.go
View file @
7033d5ca
...
...
@@ -2,13 +2,22 @@ package middleware
import
(
"github.com/gin-gonic/gin"
"strings"
)
var
Context
*
gin
.
Context
var
REQUEST
map
[
string
]
string
//等同于php 的$_REQUEST
//将gin的上下文放到全局变量
func
ContextVars
()
gin
.
HandlerFunc
{
return
func
(
c
*
gin
.
Context
)
{
//接收所有的变量+值
REQUEST
=
make
(
map
[
string
]
string
,
0
);
c
.
MultipartForm
()
for
requestName
,
requstValue
:=
range
c
.
Request
.
Form
{
REQUEST
[
requestName
]
=
strings
.
TrimSpace
(
requstValue
[
0
])
}
//将gin的上下文放到全局变量
Context
=
c
c
.
Next
()
...
...
model/ly.go
View file @
7033d5ca
...
...
@@ -2,9 +2,9 @@ package model
//联营请求外链后格式化数据
type
LyClearGoodsList
struct
{
SkuId
string
`json:"sku_id"`
//平台型号id (非必填)
SpuId
string
`json:"spu_id"`
//平台spuId (非必填)
BrandId
string
`json:"brand_id"`
//平台品牌id (非必填)
SkuId
string
`json:"sku_id"`
//平台型号id (非必填)
SpuId
string
`json:"spu_id"`
//平台spuId (非必填)
BrandId
string
`json:"brand_id"`
//平台品牌id (非必填)
GoodsName
string
`json:"goods_name"`
//型号名称
BrandName
string
`json:"brand_name"`
//品牌名称
Desc
string
`json:"desc"`
//描述
...
...
@@ -20,12 +20,12 @@ type LyClearGoodsList struct {
RestrictionMessage
string
`json:"RestrictionMessage"`
//额外购买限制内容,如 ‘当前商品不在本地区销售’
Increment
int64
`json:"increment"`
//最小包装量、倍数 =Mpq
SinglePrice
float64
`json:"single_price"`
//最小单价
Stock
int64
`json:"stock"`
//库存
Stock
int64
`json:"stock"`
//库存
Moq
int64
`json:"moq"`
//最小起订量、起订量
RawGoodsId
string
`json:"raw_goods_id"`
//外链原始goods_sn,如digikey:{'raw_goods_id': 'AT28C64X-25PC-ND', 'raw_brand_name': 'Microchip Technology'}
RawBrandName
string
`json:"raw_brand_name"`
//外链原始品牌名称,如digikey:{'raw_goods_id': 'AT28C64X-25PC-ND', 'raw_brand_name': 'Microchip Technology'}
Tiered
[]
*
TierItem
`json:"tiered"`
//价格梯度数量
PriceTemp
[]
interface
{}
`json:"price_temp"`
//拼接梯度,目前只有联营推送队列用
Tiered
[]
*
TierItem
`json:"tiered"`
//价格梯度数量
PriceTemp
[]
interface
{}
`json:"price_temp"`
//拼接梯度,目前只有联营推送队列用
}
type
TierItem
struct
{
Purchases
uint64
`json:"purchases"`
//购买数量
...
...
pkg/common/function.go
View file @
7033d5ca
...
...
@@ -25,7 +25,7 @@ import (
输出header
*/
func
PrintDebugHeader
(
ctx
*
gin
.
Context
,
flag
*
string
)
{
if
*
flag
!=
"
"
{
if
*
flag
==
"101
"
{
ctx
.
Header
(
"Content-Type"
,
"text/html; charset=utf-8"
)
}
}
...
...
@@ -37,7 +37,7 @@ func PrintDebugHeader(ctx *gin.Context,flag *string) {
@parm jsondata 需要json输出的内容
*/
func
PrintDebugHtml
(
ctx
*
gin
.
Context
,
flag
*
string
,
jsonStr
interface
{})
{
if
*
flag
==
"
"
||
jsonStr
==
""
{
if
*
flag
!=
"101
"
||
jsonStr
==
""
{
return
}
if
v
,
p
:=
jsonStr
.
(
string
);
p
{
...
...
routes/router.go
View file @
7033d5ca
...
...
@@ -21,8 +21,8 @@ func InitRouter() *gin.Engine {
r
.
GET
(
"search/ZiYing/zyh"
,
controller
.
Zyh
)
r
.
GET
(
"search/ZiYing/index"
,
controller
.
Index
)
r
.
POST
(
"search/ZiYing/index"
,
controller
.
Index
)
r
.
POST
(
"search/mouser/
GetMouserDat
a"
,
controller
.
GetMouserData
)
r
.
GET
(
"search/mouser/
GetMouserDat
a"
,
controller
.
GetMouserData
)
r
.
POST
(
"search/mouser/a"
,
controller
.
GetMouserData
)
r
.
GET
(
"search/mouser/a"
,
controller
.
GetMouserData
)
//快手平台相关
r
.
GET
(
"/search/quote"
,
controller
.
QuoteIndex
)
...
...
service/ly/mouser.go
View file @
7033d5ca
...
...
@@ -3,6 +3,7 @@ package ly
import
(
"github.com/imroc/req"
"github.com/tidwall/gjson"
"search_server/middleware"
"search_server/model"
"search_server/pkg/common"
"strconv"
...
...
@@ -13,13 +14,14 @@ import (
const
Mouser_api_url
string
=
"https://api.mouser.com/api/v1/search/partnumber?apiKey=0a11fa6f-ddcb-4ddf-9947-e42b2f3b4723"
//mouser请求外链
func
OutLinkMouser
(
goodsName
*
string
,
flag
string
)
map
[
string
]
*
model
.
LyClearGoodsList
{
func
OutLinkMouser
(
goodsName
*
string
)
map
[
string
]
*
model
.
LyClearGoodsList
{
if
*
goodsName
==
""
{
return
nil
}
var
result
string
;
var
flag
=
middleware
.
REQUEST
[
"flag"
]
if
flag
==
"-1"
{
//
调试
if
middleware
.
REQUEST
[
"flags"
]
==
"-1"
{
//原始数据
调试
result
=
`{"Errors":[],"SearchResults":{"NumberOfResult":80,"Parts":[{"Availability":"15242 有庫存","DataSheetUrl":"","Description":"運算放大器 - 運放器 1.2 MHz industry standard dual-channel amplifier with -40C to 85C operation 8-SOIC -40 to 85","FactoryStock":"0","ImagePath":"https://www.mouser.com/images/texasinstruments/images/ITP_TI_SOIC-8_D_t.jpg","Category":"運算放大器 - 運放器","LeadTime":"42 日數","LifecycleStatus":"New Product","Manufacturer":"Texas Instruments","ManufacturerPartNumber":"LM358BIDR","Min":"1","Mult":"1","MouserPartNumber":"595-LM358BIDR","ProductAttributes":[{"AttributeName":"封裝","AttributeValue":"Cut Tape"},{"AttributeName":"封裝","AttributeValue":"MouseReel"},{"AttributeName":"封裝","AttributeValue":"Reel"},{"AttributeName":"標準包裝數量","AttributeValue":"2500"}],"PriceBreaks":[{"Quantity":1,"Price":"$0.44","Currency":"USD"},{"Quantity":10,"Price":"$0.287","Currency":"USD"},{"Quantity":100,"Price":"$0.154","Currency":"USD"}],"AlternatePackagings":null,"ProductDetailUrl":"https://www.mouser.hk/ProductDetail/Texas-Instruments/LM358BIDR?qs=byeeYqUIh0MUqg09TCRNgA%3D%3D","Reeling":true,"ROHSStatus":"RoHS Compliant","SuggestedReplacement":"","MultiSimBlue":0,"ProductCompliance":[{"ComplianceName":"CNHTS","ComplianceValue":"8542339000"},{"ComplianceName":"USHTS","ComplianceValue":"8542330001"},{"ComplianceName":"TARIC","ComplianceValue":"8542330000"},{"ComplianceName":"ECCN","ComplianceValue":"EAR99"}]}]}}`
;
}
else
{
req
.
SetTimeout
(
10
*
time
.
Second
)
...
...
@@ -29,6 +31,7 @@ func OutLinkMouser(goodsName *string,flag string) map[string]*model.LyClearGoods
print
(
err
)
}
result
=
resp
.
String
();
//请求外链拿到结果
common
.
PrintDebugHtml
(
middleware
.
Context
,
&
flag
,
result
)
}
productList
:=
make
(
map
[
string
]
*
model
.
LyClearGoodsList
,
0
)
...
...
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