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
06f5ef40
authored
Nov 25, 2020
by
huangchengyi
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
添加 source
parent
fb1489f8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
269 additions
and
6 deletions
controller/ly_sourcengine_controller.go
routes/router.go
service/ly/sourcengine.go
controller/ly_sourcengine_controller.go
0 → 100644
View file @
06f5ef40
package
controller
import
(
"github.com/gin-gonic/gin"
"search_server/pkg/common"
"search_server/service/ly"
)
//搜索 sourcegine 型号,返回格式化后的原始数据
func
GetSourcengineData
(
ctx
*
gin
.
Context
)
{
goodsName
:=
ctx
.
Request
.
FormValue
(
"k"
)
//关键词
common
.
PrintDebugHeader
(
ctx
)
//debug
if
goodsName
==
""
{
common
.
Output
(
ctx
,
1001
,
"查询关键词不得为空"
,
""
)
return
}
//调外链拿数据
apiData
:=
ly
.
OutLinkSource
(
ctx
,
&
goodsName
)
common
.
Output
(
ctx
,
0
,
""
,
apiData
)
}
\ No newline at end of file
routes/router.go
View file @
06f5ef40
...
...
@@ -36,6 +36,19 @@ func InitRouter() *gin.Engine {
v3
.
GET
(
"goods"
,
controller
.
OptimumGoods
)
}
//搜索相关接口
v4
:=
r
.
Group
(
"/search/"
)
{
v4
.
POST
(
"mouser/a"
,
controller
.
GetMouserData
)
v4
.
GET
(
"mouser/a"
,
controller
.
GetMouserData
)
v4
.
POST
(
"digikey/a"
,
controller
.
GetDigikeyData
)
v4
.
GET
(
"digikey/a"
,
controller
.
GetDigikeyData
)
v4
.
POST
(
"tme/a"
,
controller
.
GetTmeData
)
v4
.
GET
(
"tme/a"
,
controller
.
GetTmeData
)
v4
.
POST
(
"sourcengine/raw"
,
controller
.
GetSourcengineData
)
v4
.
GET
(
"sourcengine/raw"
,
controller
.
GetSourcengineData
)
}
//路由
r
.
POST
(
"search/ZiYing/zyh"
,
controller
.
Zyh
)
r
.
GET
(
"search/ZiYing/zyh"
,
controller
.
Zyh
)
...
...
@@ -45,12 +58,7 @@ func InitRouter() *gin.Engine {
r
.
POST
(
"search/ZiYing/aggs"
,
controller
.
Aggs
)
r
.
GET
(
"search/ZiYing/aggSample"
,
controller
.
AggSample
)
r
.
POST
(
"search/ZiYing/aggSample"
,
controller
.
AggSample
)
r
.
POST
(
"search/mouser/a"
,
controller
.
GetMouserData
)
r
.
GET
(
"search/mouser/a"
,
controller
.
GetMouserData
)
r
.
POST
(
"search/digikey/a"
,
controller
.
GetDigikeyData
)
r
.
GET
(
"search/digikey/a"
,
controller
.
GetDigikeyData
)
r
.
POST
(
"search/tme/a"
,
controller
.
GetTmeData
)
r
.
GET
(
"search/tme/a"
,
controller
.
GetTmeData
)
//bom相关
r
.
POST
(
"/search/bom/autospu"
,
controller
.
AutoSpu
)
...
...
service/ly/sourcengine.go
0 → 100644
View file @
06f5ef40
package
ly
import
(
"fmt"
"github.com/gin-gonic/gin"
"github.com/gogf/gf/util/gconv"
"github.com/iancoleman/orderedmap"
"github.com/imroc/req"
"github.com/syyongx/php2go"
"github.com/tidwall/gjson"
"search_server/model"
"search_server/pkg/common"
"time"
)
//搜索
const
SourceSkuIdUrl
=
"https://catalog.sourcengine.com/api/parts/search?query=%s&queryType=mpn&page=1&size=20&filters[hidePartsWithNoOffers]=false&filters[hidePartsWithNoDatasheet]=false&filters[categoriesFacets]=false&filters[manufacturersFacets]=true&filters[parameterSetsFacets]=false&filters[rohsComplianceFacets]=true&filters[statusesFacets]=true"
;
//通过sku_id 查询价格库存
const
SourceSkuPriceUrl
=
"https://catalog.sourcengine.com/api/parts/%s/offers/search?includeLiveResults=false&filters[hideDateCodeOlderThan2Years]=false"
;
/*
[821-SK26A-TR3G] => Array
(
[goods_name] => SK26A-T R3G
[goods_name_temp] => SK26A-T R3G
[brand_name] => Taiwan Semiconductor
[desc] => 肖特基二極體及整流器 2A 60V Schottky Rect ifier
[goods_sn] => 821-SK26A-TR3G
[docurl] => https://www.mouser.com/datasheet/2/395/SK24A_T_SERIES_B1702-1918352.pdf
[url] => https://www.mouser.hk/ProductDetail/Taiwan-Semiconductor/SK26A-T-R3G?qs=mAH9sUMRCtv5aiVykpByHQ%3D%3D
[goods_img] => https://www.mouser.com/images/taiwansemiconductor/images/SMA_DO-214AC_2_SPL.jpg
[cat] => 肖特基二極體及整流器
[RestrictionMessage] =>
[stock] => Array
(
[0] => 1
[1] => 0
)
[increment] => 1
[price_temp] => Array
(
[0] => Array
(
[0] => 1
[1] => 0.57
)
)
[tiered] => Array
(
[0] => Array
(
[purchases] => 1
[price_us] => 0.57
[price_cn] => 0
)
)
[single_price] => 0.057
)
请求外链
但是价格和库存有很多条记录,我们过滤掉交期大于14天的期货之后,找一条库存大于0,价格最便宜的一条记录作为这个SKU的价格和库存
*/
func
OutLinkSource
(
ctx
*
gin
.
Context
,
goodsName
*
string
)
*
orderedmap
.
OrderedMap
{
if
*
goodsName
==
""
{
return
nil
}
skuIdRes
:=
""
;
if
ctx
.
Request
.
FormValue
(
"flags"
)
==
"-1"
{
//原始数据调试
skuIdRes
=
`{"page":1,"size":20,"pages":2,"total":26,"results":[{"sku":"LM358P-1503747557","mpn":"LM358P","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDIP8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":8,"alternateRiskScore":3,"supplyChainScore":9},{"sku":"LM358PT-1456421550","mpn":"LM358PT","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"STMICROELECTRONICS","manufacturerId":"e-4591","description":"Low-power dual op-amps with low input bias current","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":10,"alternateRiskScore":5,"supplyChainScore":10},{"sku":"LM358PW-1503747554","mpn":"LM358PW","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":7,"alternateRiskScore":5,"supplyChainScore":9},{"sku":"LM358PWR-1512811931","mpn":"LM358PWR","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":8,"alternateRiskScore":5,"supplyChainScore":9},{"sku":"LM358PSR-1512811930","mpn":"LM358PSR","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":9,"alternateRiskScore":3,"supplyChainScore":10},{"sku":"LM358PE4-2094441957","mpn":"LM358PE4","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDIP8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":8,"alternateRiskScore":3,"supplyChainScore":9},{"sku":"LM358PE3-1047246090","mpn":"LM358PE3","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDIP8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":8,"alternateRiskScore":3,"supplyChainScore":9},{"sku":"LM358PWRG3-1047246091","mpn":"LM358PWRG3","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":6,"alternateRiskScore":5,"supplyChainScore":8},{"sku":"LM358PWRG4-JF-8096269880","mpn":"LM358PWRG4-JF","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":6,"alternateRiskScore":5,"supplyChainScore":8},{"sku":"LM358PWRG4-2055588833","mpn":"LM358PWRG4","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":true,"marketAvailabilityScore":6,"alternateRiskScore":5,"supplyChainScore":8},{"sku":"LM358P3-100023793","mpn":"LM358P3","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDIP8","status":"Discontinued","euRohsCompliant":false,"chinaRohsCompliant":false,"reachCompliant":false,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":0,"supplyChainScore":0},{"sku":"LM358-P08-T-1019521684","mpn":"LM358-P08-T","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"UNISONIC TECHNOLOGIES CO.,LTD","manufacturerId":"e-5061","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active-Unconfirmed","euRohsCompliant":false,"chinaRohsCompliant":null,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":3,"supplyChainScore":0},{"sku":"LM358PP3-100023792","mpn":"LM358P/P3","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDIP8","status":"Discontinued","euRohsCompliant":false,"chinaRohsCompliant":false,"reachCompliant":false,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":0,"supplyChainScore":0},{"sku":"LM358PSLE-1503188880","mpn":"LM358PSLE","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":null,"chinaRohsCompliant":null,"reachCompliant":null,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":3,"supplyChainScore":0},{"sku":"LM358P-1438416486","mpn":"LM358P","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"STMICROELECTRONICS","manufacturerId":"e-4591","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":5,"supplyChainScore":0},{"sku":"LM358-P08-R-1019521683","mpn":"LM358-P08-R","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"UNISONIC TECHNOLOGIES CO.,LTD","manufacturerId":"e-5061","description":"Operational Amplifier, 2 Func, 7000uV Offset-Max, BIPolar, PDSO8","status":"Active-Unconfirmed","euRohsCompliant":false,"chinaRohsCompliant":null,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":3,"supplyChainScore":0},{"sku":"LM358PWR-2118477716","mpn":"LM358PWR","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"ROHM CO., LTD.","manufacturerId":"e-4024","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":true,"chinaRohsCompliant":null,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":5,"supplyChainScore":0},{"sku":"LM358PT-2118477715","mpn":"LM358PT","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"ROHM CO., LTD.","manufacturerId":"e-4024","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":true,"chinaRohsCompliant":null,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":5,"supplyChainScore":0},{"sku":"LM358PWG4-2143868845","mpn":"LM358PWG4","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":true,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":5,"supplyChainScore":0},{"sku":"LM358PSRG4-2065293414","mpn":"LM358PSRG4","categories":[{"name":"Semiconductors"},{"name":"Amplifiers"},{"name":"Operational Amplifiers"},{"name":"OPERATIONAL AMPLIFIER"}],"manufacturer":"Texas Instruments Incorporated","manufacturerId":"e-4832","description":"Operational Amplifier, 2 Func, 9000uV Offset-Max, BIPolar, PDSO8","status":"Discontinued","euRohsCompliant":true,"chinaRohsCompliant":true,"reachCompliant":null,"hasOffers":false,"marketAvailabilityScore":0,"alternateRiskScore":3,"supplyChainScore":0}],"facets":{"manufacturers":[{"value":"e-4832","label":"Texas Instruments Incorporated","count":18},{"value":"e-4024","label":"ROHM CO., LTD.","count":4},{"value":"e-4591","label":"STMICROELECTRONICS","count":2},{"value":"e-5061","label":"UNISONIC TECHNOLOGIES CO.,LTD","count":2}],"rohsCompliance":[{"value":"true","label":"true","count":20},{"value":"false","label":"false","count":6}],"statuses":[{"value":"Discontinued","label":"Discontinued","count":13},{"value":"Active","label":"Active","count":10},{"value":"Active-Unconfirmed","label":"Active-Unconfirmed","count":3}]},"_links":{"schema":{"href":"/api/schemas/part-search.json"}}}`
;
}
else
{
skuIdRes
=
GetSourceGineData
(
ctx
,
fmt
.
Sprintf
(
SourceSkuIdUrl
,
*
goodsName
))
//查询得到所有的sku->goods_sn
}
common
.
PrintDebugHtml
(
ctx
,
"原始数据:"
+
skuIdRes
)
if
skuIdRes
==
""
{
return
nil
;
}
skuRsults
:=
gjson
.
Get
(
skuIdRes
,
"results"
)
.
Array
()
//协程并发请求
ch
:=
make
(
chan
*
orderedmap
.
OrderedMap
)
p
:=
0
;
for
_
,
a
:=
range
skuRsults
{
goods_sn
:=
a
.
Get
(
"sku"
)
.
String
()
//goods_sn
goods_name
:=
a
.
Get
(
"mpn"
)
.
String
()
//型号
brand_name
:=
a
.
Get
(
"manufacturer"
)
.
String
()
//品牌
desc
:=
a
.
Get
(
"description"
)
.
String
()
//描述
go
func
()
{
fmt
.
Println
(
php2go
.
Time
())
B
:=
orderedmap
.
New
()
B
.
Set
(
"goods_sn"
,
goods_sn
)
B
.
Set
(
"goods_name"
,
goods_name
)
B
.
Set
(
"brand_name"
,
brand_name
)
B
.
Set
(
"desc"
,
desc
)
flag
:=
GetSourceInfo
(
ctx
,
B
)
//res,_ := json.Marshal(A)
if
flag
{
ch
<-
B
}
else
{
ch
<-
nil
}
}()
p
++
;
}
//接收通道所有的值
A
:=
orderedmap
.
New
();
for
i
:=
0
;
i
<
p
;
i
++
{
select
{
case
x
:=
<-
ch
:
if
x
==
nil
{
continue
}
goods_sn
,
_
:=
x
.
Get
(
"goods_sn"
)
A
.
Set
(
gconv
.
String
(
goods_sn
),
x
)
case
<-
time
.
After
(
time
.
Second
*
2
)
:
fmt
.
Println
(
"超时退出等待"
)
}
}
//allRes,_ := json.Marshal(A)
return
A
;
}
//请求价格和库存
func
GetSourceInfo
(
ctx
*
gin
.
Context
,
B
*
orderedmap
.
OrderedMap
)
bool
{
goods_sn
,
_
:=
B
.
Get
(
"goods_sn"
)
skuInfo
:=
GetSourceGineData
(
ctx
,
fmt
.
Sprintf
(
SourceSkuPriceUrl
,
goods_sn
))
fmt
.
Println
(
"请求价格开始:"
,
php2go
.
Time
(),
fmt
.
Sprintf
(
SourceSkuPriceUrl
,
goods_sn
))
//$skuPriceRes = `{"total":3,"results":[{"offerPlatformId":"8718009643","mpq":1,"quantity":2277626,"priceTiers":[{"moq":807,"price":"0.06820"}],"deliveryDays":5,"vendor":{"type":"factory_direct"},"dateCode":null,"isDateCodeWithin2Years":true,"availabilityType":"stock","packagingType":"tube","packagingCondition":"full"},{"offerPlatformId":"8715417520","mpq":1,"quantity":1520,"priceTiers":[{"moq":709,"price":"0.07768"}],"deliveryDays":7,"vendor":{"type":"authorised_distributor"},"dateCode":null,"isDateCodeWithin2Years":true,"availabilityType":"stock","packagingType":"tape_reel","packagingCondition":"full"},{"offerPlatformId":"8715417522","mpq":1,"quantity":283206,"priceTiers":[{"moq":709,"price":"0.07768"}],"deliveryDays":167,"vendor":{"type":"authorised_distributor"},"dateCode":null,"isDateCodeWithin2Years":true,"availabilityType":"lead_time","packagingType":"tape_reel","packagingCondition":"full"}],"facets":{"vendorTypes":[{"value":"authorised_distributor","label":"authorised_distributor","count":2},{"value":"factory_direct","label":"factory_direct","count":1}],"availabilityTypes":[{"value":"lead_time","label":"lead_time","count":1},{"value":"stock","label":"stock","count":2}],"packagingConditions":[{"value":"full","label":"full","count":3}],"packagingTypes":[{"value":"tape_reel","label":"tape_reel","count":2},{"value":"tube","label":"tube","count":1}]},"_links":{"schema":{"href":"/api/schemas/part-offer-search.json"}}}`;
priceGoodsList
:=
gjson
.
Get
(
skuInfo
,
"results"
)
.
Array
()
common
.
PrintDebugHtml
(
ctx
,
priceGoodsList
)
if
priceGoodsList
==
nil
{
fmt
.
Println
(
"查询价格没有数据"
)
return
false
}
//确定: 分类 , 来源网站sku的url ,图片路径 这三个字段留空
B
.
Set
(
"docurl"
,
""
)
B
.
Set
(
"url"
,
""
)
B
.
Set
(
"goods_img"
,
""
)
B
.
Set
(
"cat"
,
""
)
//todo 确定: 分类 , 来源网站sku的url ,图片路径 这三个字段留空,然后价格取: 梯度最后一个价格判断最低 && 库存大于0 && 交期<14 天
var
LowerPrice
float64
=
0
//最低价格
flag
:=
false
;
for
_
,
goods
:=
range
priceGoodsList
{
stock
:=
goods
.
Get
(
"quantity"
)
.
Int
()
if
stock
==
0
{
common
.
PrintDebugHtml
(
ctx
,
"库存为0跳过"
)
continue
;
}
if
goods
.
Get
(
"deliveryDays"
)
.
Int
()
>
14
{
common
.
PrintDebugHtml
(
ctx
,
"交期大于14天跳过"
)
continue
;
}
//计算梯度
ladderPrice
:=
make
([]
*
model
.
TierItem
,
0
)
priceTemp
:=
make
([]
interface
{},
0
)
apiPriceTi
:=
goods
.
Get
(
"priceTiers"
)
.
Array
()
//拼接价格梯度
var
apiLowerPrice
float64
=
0
//计算最低价格
var
apiLowerMoq
int64
=
0
// 最低起订量
for
k
,
priceItem
:=
range
apiPriceTi
{
priceItemStr
:=
priceItem
.
String
()
//价格转换
skuPrice
:=
gjson
.
Get
(
priceItemStr
,
"price"
)
.
Float
()
//价格
quantity
:=
gjson
.
Get
(
priceItemStr
,
"moq"
)
.
Int
()
//数量
if
k
==
0
{
apiLowerMoq
=
quantity
;
//最低起订量
}
if
apiLowerPrice
==
0
{
apiLowerPrice
=
skuPrice
}
else
if
apiLowerPrice
>
skuPrice
{
apiLowerPrice
=
skuPrice
}
ladder
:=
model
.
TierItem
{
Purchases
:
quantity
,
PriceUs
:
skuPrice
,
PriceCn
:
0
,
}
ladderPrice
=
append
(
ladderPrice
,
&
ladder
)
//梯度缓存数据
priceTemp
=
append
(
priceTemp
,
[]
interface
{}{
quantity
,
skuPrice
,
})
}
if
LowerPrice
==
0
{
LowerPrice
=
apiLowerPrice
;
}
else
if
LowerPrice
>
apiLowerPrice
{
//不是最低价格,跳过
common
.
PrintDebugHtml
(
ctx
,
"不是最低价格跳过"
)
continue
;
}
//写入数据
mpq
:=
goods
.
Get
(
"mpq"
)
.
Int
()
if
apiLowerMoq
==
0
{
apiLowerMoq
=
mpq
}
B
.
Set
(
"stock"
,[]
int64
{
apiLowerMoq
,
stock
})
B
.
Set
(
"increment"
,
goods
.
Get
(
"mpq"
)
.
Int
())
B
.
Set
(
"price_temp"
,
priceTemp
)
B
.
Set
(
"tiered"
,
ladderPrice
)
B
.
Set
(
"single_price"
,
apiLowerPrice
)
flag
=
true
;
}
return
flag
;
}
//请求接口
func
GetSourceGineData
(
ctx
*
gin
.
Context
,
url
string
)
string
{
header
:=
req
.
Header
{
"Accept"
:
"application/json"
,
"Content-Type"
:
"application/json"
,
"Authorization"
:
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2MDUwMjk3ODQsInVzZXJuYW1lIjoiYWNiMjMzMmItYjQ4MC00M2UwLTgwZjYtZjQ0OTVkY2M0NjBhIn0.Bt6Aii7xxVKIfxpnttmHi4hDhvBmw0Bow47b1s08ibfDVtQxmn5ZzOAbsl0spxqMysUngZ31KfPEnos5EeD04jOtu5Y9llNHCymO15_--AYy4JdzcoDgSwUnogUw4tD4zkm4vTsRxzfTjbrN9gX2n_33BemD4S1oT4M4rPK_RRw6dJ8wYqMIKYjjHPPlNIy5S155vG7CtN8i2mpHaJkDNcK2thhAgEkFuncpKAuV8oV87Pk0WoiQYkzCcQ3MbqsdV7FYuNpDCJfalzplk8y04UkG3lAGCySGUSwHnSk0RbJablg-s2td54-Tixwm5q8X3UPViVo0QTk2EmMZq2qKnrXnPUy7MVJUEpWaFRih0P3oRJUusW3cxcXRRjxlgVyD4n3vKmM0lFo-gcNfWFhbh6pJw9dxs6GqIZZqjHPa92EIWHgezDmXt97FYH5i9J_pesJCYGdRfAZDZ_mcD9KPZUylDd17nlrMWl_D14vMOklU4_9RksBX7YsNu5lyexW-djOmCcnTFV5GMcPF1jht0i6IlvQYHgNYtEITEKNMjAGRy4AL_3kYXRjlGsq37uKJup14t4VkZe95Zt_beIqPyRvcig3TV1ol5vdPf2IW1Vt_vJXsoNno5F_uznvsv268srplyO-akqbpP-X16m-Sh9kgZhk1fDcWQ8kJXt7uqd0"
,
}
req
.
SetTimeout
(
3
*
time
.
Second
)
resp
,
err
:=
req
.
Get
(
url
,
header
)
if
err
!=
nil
{
return
""
}
res
:=
resp
.
String
()
//请求外链拿到结果
common
.
PrintDebugHtml
(
ctx
,
"原始数据:"
+
res
)
return
res
}
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