Commit 14b9872c by huangchengyi

1.0

parent 657403bc
......@@ -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 uint64 `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
......
......@@ -26,6 +26,7 @@ type CommonLyService struct {
supplierId int64 //调用当前方法的供应商ID
supplierName string //调用当前方法的供应商名称
skuEsUpdataList []string //组装批量更新es数据
RawGoods map[string]*model.RawGoods //原始数据
}
//初始化类
......
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").Uint()
//数量转换
quantity := gjson.Get(priceItemStr, "BreakQuantity").Int()
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("ProductDescription").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("MinimumOrderQuantity").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
......@@ -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").Uint()
quantity := gjson.Get(priceItemStr, "Quantity").Int()
if apiLowerPrice == 0 {
apiLowerPrice = skuPrice
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment