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
14b9872c
authored
Aug 03, 2020
by
huangchengyi
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
1.0
parent
657403bc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
227 additions
and
55 deletions
model/ly.go
service/ly/common.go
service/ly/digikey.go
service/ly/mouser.go
model/ly.go
View file @
14b9872c
...
...
@@ -2,38 +2,48 @@ package model
//联营请求外链后格式化数据
type
LyClearGoodsList
struct
{
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"`
//描述
BatchSn
string
`json:"batch_sn"`
//批次号
GoodsSn
string
`json:"goods_sn"`
//api唯一编码
Docurl
string
`json:"docurl"`
//sku对应供应商的文档路径
Url
string
`json:"url"`
//sku对应供应商的商品详情
GoodsImg
string
`json:"goods_img"`
//sku图片
Cat
string
`json:"cat"`
//分类
Encap
string
`json:"encap"`
//包装
Canal
string
`json:"canal"`
//渠道标签
Encoded
string
`json:"encoded"`
//内部编码
RestrictionMessage
string
`json:"RestrictionMessage"`
//额外购买限制内容,如 ‘当前商品不在本地区销售’
Increment
int64
`json:"increment"`
//最小包装量、倍数 =Mpq
SinglePrice
float64
`json:"single_price"`
//最小单价
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"`
//拼接梯度,目前只有联营推送队列用
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"`
//描述
BatchSn
string
`json:"batch_sn"`
//批次号
GoodsSn
string
`json:"goods_sn"`
//api唯一编码
Docurl
string
`json:"docurl"`
//sku对应供应商的文档路径
Url
string
`json:"url"`
//sku对应供应商的商品详情
GoodsImg
string
`json:"goods_img"`
//sku图片
Cat
string
`json:"cat"`
//分类
Encap
string
`json:"encap"`
//包装
Canal
string
`json:"canal"`
//渠道标签
Encoded
string
`json:"encoded"`
//内部编码
RestrictionMessage
string
`json:"RestrictionMessage"`
//额外购买限制内容,如 ‘当前商品不在本地区销售’
Increment
int64
`json:"increment"`
//最小包装量、倍数 =Mpq
SinglePrice
float64
`json:"single_price"`
//最小单价
Stock
int64
`json:"stock"`
//库存
Moq
int64
`json:"moq"`
//最小起订量、起订量
Packaging
string
`json:"Packaging"`
//包装
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"`
//拼接梯度,目前只有联营推送队列用
DigiKeyPartNumber
string
`json:"DigiKeyPartNumber"`
//digkey 唯一编码 (额外字段)
ManufacturerLeadWeeks
string
`json:"ManufacturerLeadWeeks"`
//digikey交期(额外字段)
}
type
TierItem
struct
{
Purchases
u
int64
`json:"purchases"`
//购买数量
Purchases
int64
`json:"purchases"`
//购买数量
PriceUs
float64
`json:"price_us"`
//数量对应的英文价格
PriceCn
float64
`json:"price_cn"`
//数量对应的中文价格
PriceAc
float64
`json:"price_ac"`
}
//原始品牌(目前只有digikey使用)
type
RawGoods
struct
{
RawGoodsId
string
`json:"raw_goods_id"`
//原始goods_sn
RawBrandName
string
`json:"raw_brand_name"`
//原始品牌名称
Pack
string
`json:"pack"`
//包装
}
/*
供应商详情
Array
...
...
service/ly/common.go
View file @
14b9872c
...
...
@@ -26,6 +26,7 @@ type CommonLyService struct {
supplierId
int64
//调用当前方法的供应商ID
supplierName
string
//调用当前方法的供应商名称
skuEsUpdataList
[]
string
//组装批量更新es数据
RawGoods
map
[
string
]
*
model
.
RawGoods
//原始数据
}
//初始化类
...
...
service/ly/digikey.go
View file @
14b9872c
package
ly
import
(
"fmt"
"github.com/gomodule/redigo/redis"
"github.com/imroc/req"
"github.com/tidwall/gjson"
"search_server/middleware"
"search_server/model"
"search_server/pkg/common"
"search_server/pkg/config"
"search_server/pkg/gredis"
"strconv"
"strings"
"time"
)
//mouser外链网址
const
digikey_api_url
string
=
"https://api.mouser.com/api/v1/search/partnumber?apiKey=0a11fa6f-ddcb-4ddf-9947-e42b2f3b4723"
const
digikey_api_url
string
=
"https://api.digikey.com/Search/v3/Products/Keyword"
var
(
productList
map
[
string
]
*
model
.
LyClearGoodsList
//格式化数据
)
//mouser请求外链
func
OutLinkDigikey
(
goodsName
*
string
)
map
[
string
]
*
model
.
LyClearGoodsList
{
...
...
@@ -20,40 +28,189 @@ func OutLinkDigikey(goodsName *string) map[string]*model.LyClearGoodsList {
}
var
result
string
;
redisR
:=
gredis
.
Conn
(
"search_r"
)
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"}]}]
}}`
;
result
=
`{"
LimitedTaxonomy":{"Children":[{"Children":[{"Children":[],"ProductCount":3,"NewProductCount":0,"ParameterId":-8,"ValueId":"52","Parameter":"Categories","Value":"Chip Resistor - Surface Mount"}],"ProductCount":3,"NewProductCount":0,"ParameterId":-8,"ValueId":"2","Parameter":"Categories","Value":"Resistors"}],"ProductCount":3,"NewProductCount":0,"ParameterId":-8,"ValueId":"0","Parameter":"Categories","Value":"Out of Bounds"},"FilterOptions":[{"Values":[{"ValueId":"738","Value":"Stackpole Electronics Inc"}],"ParameterId":-1,"Parameter":"Manufacturer"},{"Values":[{"ValueId":"2","Value":"Cut Tape (CT)"},{"ValueId":"243","Value":"Digi-Reel®"},{"ValueId":"1","Value":"Tape & Reel (TR)"}],"ParameterId":7,"Parameter":"Packaging"},{"Values":[{"ValueId":"18619","Value":"RMCF"}],"ParameterId":-5,"Parameter":"Series"},{"Values":[{"ValueId":"0","Value":"Active"}],"ParameterId":1989,"Parameter":"Part Status"},{"Values":[{"ValueId":"u12 Ohms","Value":"12 Ohms"}],"ParameterId":2085,"Parameter":"Resistance"},{"Values":[{"ValueId":"1131","Value":"±1%"}],"ParameterId":3,"Parameter":"Tolerance"},{"Values":[{"ValueId":"7854","Value":"0.063W, 1/16W"}],"ParameterId":2,"Parameter":"Power (Watts)"},{"Values":[{"ValueId":"411742","Value":"Thick Film"}],"ParameterId":174,"Parameter":"Composition"},{"Values":[{"ValueId":"316914","Value":"Automotive AEC-Q200"}],"ParameterId":5,"Parameter":"Features"},{"Values":[{"ValueId":"1378","Value":"±100ppm/°C"}],"ParameterId":17,"Parameter":"Temperature Coefficient"},{"Values":[{"ValueId":"242934","Value":"-55°C ~ 155°C"}],"ParameterId":252,"Parameter":"Operating Temperature"},{"Values":[{"ValueId":"39158","Value":"0402 (1005 Metric)"}],"ParameterId":16,"Parameter":"Package / Case"},{"Values":[{"ValueId":"312105","Value":"AEC-Q200"}],"ParameterId":707,"Parameter":"Ratings"},{"Values":[{"ValueId":"39157","Value":"0402"}],"ParameterId":1291,"Parameter":"Supplier Device Package"},{"Values":[{"ValueId":"6310","Value":"0.039\" L x 0.020\" W (1.00mm x 0.50mm)"}],"ParameterId":46,"Parameter":"Size / Dimension"},{"Values":[{"ValueId":"4914","Value":"0.016\" (0.40mm)"}],"ParameterId":1500,"Parameter":"Height - Seated (Max)"},{"Values":[{"ValueId":"i2","Value":"2"}],"ParameterId":1127,"Parameter":"Number of Terminations"},{"Values":[{"ValueId":"1","Value":"-"}],"ParameterId":1531,"Parameter":"Failure Rate"}],"Products":[{"StandardPricing":[{"BreakQuantity":1,"UnitPrice":0.1,"TotalPrice":0.1},{"BreakQuantity":10,"UnitPrice":0.014,"TotalPrice":0.14},{"BreakQuantity":100,"UnitPrice":0.0056,"TotalPrice":0.56},{"BreakQuantity":1000,"UnitPrice":0.00252,"TotalPrice":2.52},{"BreakQuantity":2500,"UnitPrice":0.00218,"TotalPrice":5.45},{"BreakQuantity":5000,"UnitPrice":0.00181,"TotalPrice":9.05}],"RoHSStatus":"ROHS3 Compliant","LeadStatus":"Lead Free","Parameters":[{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},{"ParameterId":1989,"ValueId":"0","Parameter":"Part Status","Value":"Active"},{"ParameterId":2085,"ValueId":"u12 Ohms","Parameter":"Resistance","Value":"12 Ohms"},{"ParameterId":3,"ValueId":"1131","Parameter":"Tolerance","Value":"±1%"},{"ParameterId":2,"ValueId":"7854","Parameter":"Power (Watts)","Value":"0.063W, 1/16W"},{"ParameterId":174,"ValueId":"411742","Parameter":"Composition","Value":"Thick Film"},{"ParameterId":5,"ValueId":"316914","Parameter":"Features","Value":"Automotive AEC-Q200"},{"ParameterId":17,"ValueId":"1378","Parameter":"Temperature Coefficient","Value":"±100ppm/°C"},{"ParameterId":252,"ValueId":"242934","Parameter":"Operating Temperature","Value":"-55°C ~ 155°C"},{"ParameterId":16,"ValueId":"39158","Parameter":"Package / Case","Value":"0402 (1005 Metric)"},{"ParameterId":707,"ValueId":"312105","Parameter":"Ratings","Value":"AEC-Q200"},{"ParameterId":1291,"ValueId":"39157","Parameter":"Supplier Device Package","Value":"0402"},{"ParameterId":46,"ValueId":"6310","Parameter":"Size / Dimension","Value":"0.039\" L x 0.020\" W (1.00mm x 0.50mm)"},{"ParameterId":1500,"ValueId":"4914","Parameter":"Height - Seated (Max)","Value":"0.016\" (0.40mm)"},{"ParameterId":1127,"ValueId":"i2","Parameter":"Number of Terminations","Value":"2"},{"ParameterId":1531,"ValueId":"1","Parameter":"Failure Rate","Value":"-"}],"ProductUrl":"https://www.digikey.com/product-detail/en/stackpole-electronics-inc/RMCF0402FT12R0/RMCF0402FT12R0CT-ND/7790664","PrimaryDatasheet":"https://www.seielect.com/catalog/sei-rmcf_rmcp.pdf","PrimaryPhoto":"https://media.digikey.com/photos/Stackpole%20Photos/MFG_RMC%20SERIES.jpg","PrimaryVideo":"","Series":{"ParameterId":-5,"ValueId":"18619","Parameter":"Series","Value":"RMCF"},"ManufacturerLeadWeeks":"20 weeks","ManufacturerPageUrl":"https://www.digikey.com/en/supplier-centers/stackpole-electronics","ProductStatus":"Active","AlternatePackaging":[{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":10000,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"1","Parameter":"Packaging","Value":"Tape & Reel (TR)"},"QuantityAvailable":0,"DigiKeyPartNumber":"RMCF0402FT12R0TR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.00149,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":10000,"DKPlusRestriction":false,"SupplierDirectShip":false},{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"243","Parameter":"Packaging","Value":"Digi-Reel®"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0DKR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false}],"DetailedDescription":"12 Ohms ±1% 0.063W, 1/16W Chip Resistor 0402 (1005 Metric) Automotive AEC-Q200 Thick Film","ReachStatus":"Reach unaffected","ExportControlClassNumber":"EAR99","HTSUSCode":"8533.21.0030","TariffDescription":"Tariff Applied","ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0CT-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false},{"StandardPricing":[{"BreakQuantity":1,"UnitPrice":0.1,"TotalPrice":0.1},{"BreakQuantity":10,"UnitPrice":0.014,"TotalPrice":0.14},{"BreakQuantity":100,"UnitPrice":0.0056,"TotalPrice":0.56},{"BreakQuantity":1000,"UnitPrice":0.00252,"TotalPrice":2.52},{"BreakQuantity":2500,"UnitPrice":0.00218,"TotalPrice":5.45},{"BreakQuantity":5000,"UnitPrice":0.00181,"TotalPrice":9.05}],"RoHSStatus":"ROHS3 Compliant","LeadStatus":"Lead Free","Parameters":[{"ParameterId":7,"ValueId":"243","Parameter":"Packaging","Value":"Digi-Reel®"},{"ParameterId":1989,"ValueId":"0","Parameter":"Part Status","Value":"Active"},{"ParameterId":2085,"ValueId":"u12 Ohms","Parameter":"Resistance","Value":"12 Ohms"},{"ParameterId":3,"ValueId":"1131","Parameter":"Tolerance","Value":"±1%"},{"ParameterId":2,"ValueId":"7854","Parameter":"Power (Watts)","Value":"0.063W, 1/16W"},{"ParameterId":174,"ValueId":"411742","Parameter":"Composition","Value":"Thick Film"},{"ParameterId":5,"ValueId":"316914","Parameter":"Features","Value":"Automotive AEC-Q200"},{"ParameterId":17,"ValueId":"1378","Parameter":"Temperature Coefficient","Value":"±100ppm/°C"},{"ParameterId":252,"ValueId":"242934","Parameter":"Operating Temperature","Value":"-55°C ~ 155°C"},{"ParameterId":16,"ValueId":"39158","Parameter":"Package / Case","Value":"0402 (1005 Metric)"},{"ParameterId":707,"ValueId":"312105","Parameter":"Ratings","Value":"AEC-Q200"},{"ParameterId":1291,"ValueId":"39157","Parameter":"Supplier Device Package","Value":"0402"},{"ParameterId":46,"ValueId":"6310","Parameter":"Size / Dimension","Value":"0.039\" L x 0.020\" W (1.00mm x 0.50mm)"},{"ParameterId":1500,"ValueId":"4914","Parameter":"Height - Seated (Max)","Value":"0.016\" (0.40mm)"},{"ParameterId":1127,"ValueId":"i2","Parameter":"Number of Terminations","Value":"2"},{"ParameterId":1531,"ValueId":"1","Parameter":"Failure Rate","Value":"-"}],"ProductUrl":"https://www.digikey.com/product-detail/en/stackpole-electronics-inc/RMCF0402FT12R0/RMCF0402FT12R0DKR-ND/7791358","PrimaryDatasheet":"https://www.seielect.com/catalog/sei-rmcf_rmcp.pdf","PrimaryPhoto":"https://media.digikey.com/photos/Stackpole%20Photos/MFG_RMC%20SERIES.jpg","PrimaryVideo":"","Series":{"ParameterId":-5,"ValueId":"18619","Parameter":"Series","Value":"RMCF"},"ManufacturerLeadWeeks":"20 weeks","ManufacturerPageUrl":"https://www.digikey.com/en/supplier-centers/stackpole-electronics","ProductStatus":"Active","AlternatePackaging":[{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":10000,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"1","Parameter":"Packaging","Value":"Tape & Reel (TR)"},"QuantityAvailable":0,"DigiKeyPartNumber":"RMCF0402FT12R0TR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.00149,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":10000,"DKPlusRestriction":false,"SupplierDirectShip":false},{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0CT-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false}],"DetailedDescription":"12 Ohms ±1% 0.063W, 1/16W Chip Resistor 0402 (1005 Metric) Automotive AEC-Q200 Thick Film","ReachStatus":"Reach unaffected","ExportControlClassNumber":"EAR99","HTSUSCode":"8533.21.0030","TariffDescription":"Tariff Applied","ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"243","Parameter":"Packaging","Value":"Digi-Reel®"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0DKR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false},{"StandardPricing":[{"BreakQuantity":10000,"UnitPrice":0.00149,"TotalPrice":14.9},{"BreakQuantity":30000,"UnitPrice":0.00131,"TotalPrice":39.3},{"BreakQuantity":50000,"UnitPrice":0.00122,"TotalPrice":61}],"RoHSStatus":"ROHS3 Compliant","LeadStatus":"Lead Free","Parameters":[{"ParameterId":7,"ValueId":"1","Parameter":"Packaging","Value":"Tape & Reel (TR)"},{"ParameterId":1989,"ValueId":"0","Parameter":"Part Status","Value":"Active"},{"ParameterId":2085,"ValueId":"u12 Ohms","Parameter":"Resistance","Value":"12 Ohms"},{"ParameterId":3,"ValueId":"1131","Parameter":"Tolerance","Value":"±1%"},{"ParameterId":2,"ValueId":"7854","Parameter":"Power (Watts)","Value":"0.063W, 1/16W"},{"ParameterId":174,"ValueId":"411742","Parameter":"Composition","Value":"Thick Film"},{"ParameterId":5,"ValueId":"316914","Parameter":"Features","Value":"Automotive AEC-Q200"},{"ParameterId":17,"ValueId":"1378","Parameter":"Temperature Coefficient","Value":"±100ppm/°C"},{"ParameterId":252,"ValueId":"242934","Parameter":"Operating Temperature","Value":"-55°C ~ 155°C"},{"ParameterId":16,"ValueId":"39158","Parameter":"Package / Case","Value":"0402 (1005 Metric)"},{"ParameterId":707,"ValueId":"312105","Parameter":"Ratings","Value":"AEC-Q200"},{"ParameterId":1291,"ValueId":"39157","Parameter":"Supplier Device Package","Value":"0402"},{"ParameterId":46,"ValueId":"6310","Parameter":"Size / Dimension","Value":"0.039\" L x 0.020\" W (1.00mm x 0.50mm)"},{"ParameterId":1500,"ValueId":"4914","Parameter":"Height - Seated (Max)","Value":"0.016\" (0.40mm)"},{"ParameterId":1127,"ValueId":"i2","Parameter":"Number of Terminations","Value":"2"},{"ParameterId":1531,"ValueId":"1","Parameter":"Failure Rate","Value":"-"}],"ProductUrl":"https://www.digikey.com/product-detail/en/stackpole-electronics-inc/RMCF0402FT12R0/RMCF0402FT12R0TR-ND/6266686","PrimaryDatasheet":"https://www.seielect.com/catalog/sei-rmcf_rmcp.pdf","PrimaryPhoto":"https://media.digikey.com/photos/Stackpole%20Photos/MFG_RMC%20SERIES.jpg","PrimaryVideo":"","Series":{"ParameterId":-5,"ValueId":"18619","Parameter":"Series","Value":"RMCF"},"ManufacturerLeadWeeks":"20 weeks","ManufacturerPageUrl":"https://www.digikey.com/en/supplier-centers/stackpole-electronics","ProductStatus":"Active","AlternatePackaging":[{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0CT-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false},{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"243","Parameter":"Packaging","Value":"Digi-Reel®"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0DKR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false}],"DetailedDescription":"12 Ohms ±1% 0.063W, 1/16W Chip Resistor 0402 (1005 Metric) Automotive AEC-Q200 Thick Film","ReachStatus":"Reach unaffected","ExportControlClassNumber":"EAR99","HTSUSCode":"8533.21.0030","TariffDescription":"Tariff Applied","ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":10000,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"1","Parameter":"Packaging","Value":"Tape & Reel (TR)"},"QuantityAvailable":0,"DigiKeyPartNumber":"RMCF0402FT12R0TR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.00149,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":10000,"DKPlusRestriction":false,"SupplierDirectShip":false}],"ProductsCount":3,"ExactManufacturerProductsCount":1,"ExactManufacturerProducts":[{"StandardPricing":[{"BreakQuantity":1,"UnitPrice":0.1,"TotalPrice":0.1},{"BreakQuantity":10,"UnitPrice":0.014,"TotalPrice":0.14},{"BreakQuantity":100,"UnitPrice":0.0056,"TotalPrice":0.56},{"BreakQuantity":1000,"UnitPrice":0.00252,"TotalPrice":2.52},{"BreakQuantity":2500,"UnitPrice":0.00218,"TotalPrice":5.45},{"BreakQuantity":5000,"UnitPrice":0.00181,"TotalPrice":9.05}],"RoHSStatus":"ROHS3 Compliant","LeadStatus":"Lead Free","Parameters":[{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},{"ParameterId":1989,"ValueId":"0","Parameter":"Part Status","Value":"Active"},{"ParameterId":2085,"ValueId":"u12 Ohms","Parameter":"Resistance","Value":"12 Ohms"},{"ParameterId":3,"ValueId":"1131","Parameter":"Tolerance","Value":"±1%"},{"ParameterId":2,"ValueId":"7854","Parameter":"Power (Watts)","Value":"0.063W, 1/16W"},{"ParameterId":174,"ValueId":"411742","Parameter":"Composition","Value":"Thick Film"},{"ParameterId":5,"ValueId":"316914","Parameter":"Features","Value":"Automotive AEC-Q200"},{"ParameterId":17,"ValueId":"1378","Parameter":"Temperature Coefficient","Value":"±100ppm/°C"},{"ParameterId":252,"ValueId":"242934","Parameter":"Operating Temperature","Value":"-55°C ~ 155°C"},{"ParameterId":16,"ValueId":"39158","Parameter":"Package / Case","Value":"0402 (1005 Metric)"},{"ParameterId":707,"ValueId":"312105","Parameter":"Ratings","Value":"AEC-Q200"},{"ParameterId":1291,"ValueId":"39157","Parameter":"Supplier Device Package","Value":"0402"},{"ParameterId":46,"ValueId":"6310","Parameter":"Size / Dimension","Value":"0.039\" L x 0.020\" W (1.00mm x 0.50mm)"},{"ParameterId":1500,"ValueId":"4914","Parameter":"Height - Seated (Max)","Value":"0.016\" (0.40mm)"},{"ParameterId":1127,"ValueId":"i2","Parameter":"Number of Terminations","Value":"2"},{"ParameterId":1531,"ValueId":"1","Parameter":"Failure Rate","Value":"-"}],"ProductUrl":"https://www.digikey.com/product-detail/en/stackpole-electronics-inc/RMCF0402FT12R0/RMCF0402FT12R0CT-ND/7790664","PrimaryDatasheet":"https://www.seielect.com/catalog/sei-rmcf_rmcp.pdf","PrimaryPhoto":"https://media.digikey.com/photos/Stackpole%20Photos/MFG_RMC%20SERIES.jpg","PrimaryVideo":"","Series":{"ParameterId":-5,"ValueId":"18619","Parameter":"Series","Value":"RMCF"},"ManufacturerLeadWeeks":"20 weeks","ManufacturerPageUrl":"https://www.digikey.com/en/supplier-centers/stackpole-electronics","ProductStatus":"Active","AlternatePackaging":[{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":10000,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"1","Parameter":"Packaging","Value":"Tape & Reel (TR)"},"QuantityAvailable":0,"DigiKeyPartNumber":"RMCF0402FT12R0TR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.00149,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":10000,"DKPlusRestriction":false,"SupplierDirectShip":false},{"ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"243","Parameter":"Packaging","Value":"Digi-Reel®"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0DKR-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false}],"DetailedDescription":"12 Ohms ±1% 0.063W, 1/16W Chip Resistor 0402 (1005 Metric) Automotive AEC-Q200 Thick Film","ReachStatus":"Reach unaffected","ExportControlClassNumber":"EAR99","HTSUSCode":"8533.21.0030","TariffDescription":"Tariff Applied","ManufacturerPartNumber":"RMCF0402FT12R0","MinimumOrderQuantity":1,"NonStock":false,"Packaging":{"ParameterId":7,"ValueId":"2","Parameter":"Packaging","Value":"Cut Tape (CT)"},"QuantityAvailable":1330,"DigiKeyPartNumber":"RMCF0402FT12R0CT-ND","ProductDescription":"RES 12 OHM 1% 1/16W 0402","UnitPrice":0.1,"Manufacturer":{"ParameterId":-1,"ValueId":"738","Parameter":"Manufacturer","Value":"Stackpole Electronics Inc"},"ManufacturerPublicQuantity":40000,"QuantityOnOrder":0,"DKPlusRestriction":false,"SupplierDirectShip":false}],"ExactDigiKeyProduct":null,"SearchLocaleUsed":{"Site":"US","Language":"en","Currency":"USD","ShipToCountry":"US"
}}`
;
}
else
{
req
.
SetTimeout
(
10
*
time
.
Second
)
resp
,
err
:=
req
.
Post
(
Mouser_api_url
,
req
.
BodyJSON
(
"{
\"
SearchByPartRequest
\"
:{
\"
mouserPartNumber
\"
:
\"
"
+*
goodsName
+
"
\"
,
\"
partSearchOptions
\"
:
\"
string
\"
}}"
))
req
.
SetTimeout
(
30
*
time
.
Second
)
authorization
,
_
:=
redis
.
String
(
redisR
.
Do
(
"GET"
,
config
.
Get
(
"redis_all.digikey_access_token"
)
.
String
()));
param
:=
fmt
.
Sprintf
(
`{"Keywords": "%s", "RecordCount": "10", "RecordStartPosition": "0", "Sort":{"SortOption": "SortByDigiKeyPartNumber", "Direction": "Ascending", "SortParameterId": "0" }, "RequestedQuantity": "0"}`
,
*
goodsName
);
header
:=
req
.
Header
{
"Accept"
:
"application/json"
,
"X-DIGIKEY-Client-Id"
:
"9zwA2tsTFpKURpMIj5VXGK3eoPWLIGgh"
,
"Content-Type"
:
"application/json"
,
"Authorization"
:
"Bearer "
+
authorization
,
}
resp
,
err
:=
req
.
Post
(
digikey_api_url
,
header
,
req
.
BodyJSON
(
param
))
if
err
!=
nil
{
print
(
Mouser_api_url
)
print
(
err
)
print
(
err
)
}
result
=
resp
.
String
();
//请求外链拿到结果
common
.
PrintDebugHtml
(
"digikey原始参数:"
+
param
+
"请求url:"
+
digikey_api_url
)
}
common
.
PrintDebugHtml
(
"digikey原始数据:"
+
result
)
clearData
(
&
result
,
"Products"
)
clearData
(
&
result
,
"ExactManufacturerProducts"
)
clearData
(
&
result
,
"ExactDigiKeyProduct"
)
switch
middleware
.
REQUEST
[
"flag"
]
{
case
"2"
:
//调试原始输出
common
.
PrintDebugHtml
(
"格式化后原始数据:"
)
common
.
PrintDebugHtml
(
productList
)
return
nil
break
;
case
"3"
:
//erp 查询
temp
:=
make
([]
map
[
string
]
interface
{},
0
)
//临时变量
stock
:=
middleware
.
REQUEST
[
"stock"
]
if
stock
!=
""
{
stockInt
:=
common
.
MyInt64
(
stock
)
for
_
,
info
:=
range
productList
{
if
info
.
Moq
==
0
{
continue
;
}
//计算符合此库存的价格
var
price
model
.
TierItem
s
:=
0
;
for
_
,
d
:=
range
info
.
Tiered
{
if
d
.
Purchases
>
stockInt
&&
d
.
PriceUs
>
0
{
price
=
*
d
;
s
=
1
}
}
if
s
==
1
{
temp
=
append
(
temp
,
map
[
string
]
interface
{}{
"goods_name"
:
info
.
GoodsName
,
"DigiKeyPartNumber"
:
info
.
DigiKeyPartNumber
,
"Packaging"
:
info
.
Packaging
,
"ManufacturerLeadWeeks"
:
info
.
ManufacturerLeadWeeks
,
"brand_name"
:
info
.
BrandName
,
"desc"
:
info
.
Desc
,
"goods_sn"
:
info
.
GoodsSn
,
"docurl"
:
info
.
Docurl
,
"url"
:
info
.
Url
,
"goods_img"
:
info
.
GoodsImg
,
"increment"
:
info
.
Increment
,
"tiered"
:
price
,
"stock"
:
[]
int64
{
info
.
Moq
,
info
.
Stock
},
})
}
}
}
else
{
for
_
,
info
:=
range
productList
{
temp
=
append
(
temp
,
map
[
string
]
interface
{}{
"goods_name"
:
info
.
GoodsName
,
"DigiKeyPartNumber"
:
info
.
DigiKeyPartNumber
,
"Packaging"
:
info
.
Packaging
,
"ManufacturerLeadWeeks"
:
info
.
ManufacturerLeadWeeks
,
"brand_name"
:
info
.
BrandName
,
"desc"
:
info
.
Desc
,
"goods_sn"
:
info
.
GoodsSn
,
"docurl"
:
info
.
Docurl
,
"url"
:
info
.
Url
,
"goods_img"
:
info
.
GoodsImg
,
"increment"
:
info
.
Increment
,
"tiered"
:
info
.
Tiered
,
"stock"
:
[]
int64
{
info
.
Moq
,
info
.
Stock
},
})
}
}
common
.
Output
(
0
,
"查询成功"
,
temp
)
return
nil
break
;
case
"4"
:
stock
:=
middleware
.
REQUEST
[
"stock"
]
//库存
brand
:=
middleware
.
REQUEST
[
"brand"
]
//品牌
stockInt
:=
common
.
MyInt64
(
stock
)
var
usd_price
float64
=
0
;
var
result_stock
int64
=
0
;
for
_
,
info
:=
range
productList
{
if
info
.
Moq
==
0
{
continue
;
}
//计算符合此库存的价格
if
strings
.
ToUpper
(
info
.
BrandName
)
!=
strings
.
ToUpper
(
brand
)
{
continue
;
}
result_stock
=
info
.
Stock
for
_
,
d
:=
range
info
.
Tiered
{
if
stockInt
>=
d
.
Purchases
&&
d
.
PriceUs
>
0
{
usd_price
=
d
.
PriceUs
;
}
}
}
common
.
Output
(
0
,
"查询成功"
,
map
[
string
]
interface
{}{
"search_stock"
:
stock
,
"search_brand"
:
brand
,
"result_stock"
:
result_stock
,
"result_price"
:
usd_price
,
"return_data"
:
productList
,
})
return
nil
break
;
}
return
productList
}
/*
格式化数据
*/
func
clearData
(
result
*
string
,
types
string
)
{
if
*
result
==
""
{
return
}
common
.
PrintDebugHtml
(
"原始数据:"
+
result
)
productList
:=
make
(
map
[
string
]
*
model
.
LyClearGoodsList
,
0
)
apiGoodsList
:=
gjson
.
Get
(
*
result
,
types
)
.
Array
()
if
apiGoodsList
==
nil
{
return
}
productList
=
make
(
map
[
string
]
*
model
.
LyClearGoodsList
,
0
)
RawList
:=
make
(
map
[
string
]
*
model
.
RawGoods
,
0
)
apiGoodsList
:=
gjson
.
Get
(
result
,
"SearchResults.Parts"
)
.
Array
()
for
_
,
goods
:=
range
apiGoodsList
{
goodsSn
:=
goods
.
Get
(
"MouserPartNumber"
)
.
String
()
ProductUrl
:=
goods
.
Get
(
"ProductUrl"
)
.
String
()
DigiKeyPartNumber
:=
goods
.
Get
(
"DigiKeyPartNumber"
)
.
String
()
if
ProductUrl
==
""
||
DigiKeyPartNumber
==
""
{
continue
;
}
productUrlArr
:=
strings
.
Split
(
ProductUrl
,
"/"
)
goodsSn
:=
productUrlArr
[
len
(
productUrlArr
)
-
1
]
//原始数据
rawGoods
:=
model
.
RawGoods
{
RawGoodsId
:
DigiKeyPartNumber
,
RawBrandName
:
goods
.
Get
(
"Manufacturer.Value"
)
.
String
(),
Pack
:
goods
.
Get
(
"Packaging"
)
.
String
(),
}
RawList
[
goodsSn
]
=
&
rawGoods
;
//计算梯度
ladderPrice
:=
make
([]
*
model
.
TierItem
,
0
)
priceTemp
:=
make
([]
interface
{},
0
)
//拼接价格梯度
apiPriceTi
:=
goods
.
Get
(
"
PriceBreaks"
)
.
Array
()
apiPriceTi
:=
goods
.
Get
(
"
StandardPricing"
)
.
Array
()
//拼接价格梯度
var
apiLowerPrice
float64
=
0
;
//计算最低价格
for
_
,
priceItem
:=
range
apiPriceTi
{
priceItemStr
:=
priceItem
.
String
();
//价格转换
onePrice
:=
gjson
.
Get
(
priceItemStr
,
"Price"
)
.
String
()
onePrice
=
strings
.
ReplaceAll
(
strings
.
Trim
(
onePrice
,
"$"
),
","
,
""
)
onePrice
:=
gjson
.
Get
(
priceItemStr
,
"UnitPrice"
)
.
String
()
skuPrice
,
_
:=
strconv
.
ParseFloat
(
onePrice
,
64
)
//转成float64
//数量转换
quantity
:=
gjson
.
Get
(
priceItemStr
,
"
Quantity"
)
.
Ui
nt
()
//数量转换
quantity
:=
gjson
.
Get
(
priceItemStr
,
"
BreakQuantity"
)
.
I
nt
()
if
apiLowerPrice
==
0
{
apiLowerPrice
=
skuPrice
...
...
@@ -74,34 +231,37 @@ func OutLinkDigikey(goodsName *string) map[string]*model.LyClearGoodsList {
}
//计算库存
tempStock
:=
goods
.
Get
(
"Availability"
)
.
String
()
stock
:=
strings
.
Trim
(
strings
.
ReplaceAll
(
tempStock
,
" 有庫存"
,
""
),
" "
)
stock
:=
goods
.
Get
(
"QuantityAvailable"
)
.
String
()
var
Mystock
int64
=
0
;
if
stock
!=
""
{
Mystock
=
common
.
MyInt64
(
stock
);
}
//拼接联营数据
//拼接联营数据
LyClearGoodsList
:=
model
.
LyClearGoodsList
{
//额外返回查询
DigiKeyPartNumber
:
goods
.
Get
(
"DigiKeyPartNumber"
)
.
String
(),
//digikey唯一编码
Packaging
:
goods
.
Get
(
"Packaging.Value"
)
.
String
(),
//包装
ManufacturerLeadWeeks
:
goods
.
Get
(
"ManufacturerLeadWeeks"
)
.
String
(),
//交期
//共有数据
GoodsName
:
goods
.
Get
(
"ManufacturerPartNumber"
)
.
String
(),
BrandName
:
goods
.
Get
(
"Manufacturer"
)
.
String
(),
Desc
:
goods
.
Get
(
"Description"
)
.
String
(),
Desc
:
goods
.
Get
(
"
Product
Description"
)
.
String
(),
GoodsSn
:
goodsSn
,
Docurl
:
goods
.
Get
(
"DataSheetUrl"
)
.
String
(),
Url
:
goods
.
Get
(
"ProductDetailUrl"
)
.
String
(),
GoodsImg
:
goods
.
Get
(
"ImagePath"
)
.
String
(),
Cat
:
goods
.
Get
(
"Category"
)
.
String
(),
Increment
:
goods
.
Get
(
"Mult"
)
.
Int
(),
RestrictionMessage
:
goods
.
Get
(
"RestrictionMessage"
)
.
String
(),
Docurl
:
goods
.
Get
(
"PrimaryDatasheet"
)
.
String
(),
Url
:
goods
.
Get
(
"ProductUrl"
)
.
String
(),
GoodsImg
:
goods
.
Get
(
"PrimaryPhoto"
)
.
String
(),
Increment
:
1
,
//mpq 标准包装量,digikey不给默认是1
Stock
:
Mystock
,
//库存
Moq
:
goods
.
Get
(
"Min"
)
.
Int
(),
//最低起订量
Moq
:
goods
.
Get
(
"Min
imumOrderQuantity
"
)
.
Int
(),
//最低起订量
SinglePrice
:
apiLowerPrice
,
Tiered
:
ladderPrice
,
PriceTemp
:
priceTemp
,
}
productList
[
goodsSn
]
=
&
LyClearGoodsList
}
//fmt.Println(productList)
//赋值原始数据
commly
:=
CommonLyService
{}
commly
.
RawGoods
=
RawList
return
productList
}
}
\ No newline at end of file
service/ly/mouser.go
View file @
14b9872c
...
...
@@ -53,7 +53,7 @@ func OutLinkMouser(goodsName *string) map[string]*model.LyClearGoodsList {
onePrice
=
strings
.
ReplaceAll
(
strings
.
Trim
(
onePrice
,
"$"
),
","
,
""
)
skuPrice
,
_
:=
strconv
.
ParseFloat
(
onePrice
,
64
)
//转成float64
//数量转换
quantity
:=
gjson
.
Get
(
priceItemStr
,
"Quantity"
)
.
Ui
nt
()
quantity
:=
gjson
.
Get
(
priceItemStr
,
"Quantity"
)
.
I
nt
()
if
apiLowerPrice
==
0
{
apiLowerPrice
=
skuPrice
...
...
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