Commit 02d15de8 by 杨树贤

Merge branch 'ysx-兼容转移的sku-20250818' into dev

parents f024c72d 445c7644
......@@ -4,4 +4,11 @@ host = 192.168.1.237:27017
username = "ichunt"
password = "huntmon6699"
database = ichunt
maxPoolSize=8000
[pre_sku_mongo]
host = 192.168.1.237:27017
username = "ichunt"
password = "huntmon6699"
database = ichunt
maxPoolSize=8000
\ No newline at end of file
package model
import "gopkg.in/mgo.v2/bson"
// PrevSku 对应prev_sku集合的数据结构
type PrevSku struct {
ID bson.ObjectId `bson:"_id"`
SkuId int64 `bson:"sku_id"`
SpuId int64 `bson:"spu_id"`
}
package config
type MongoDbDatabase struct {
Host string
UserName string
UserName string
Password string
Database string
MaxPoolSize string
}
func BuildMongoDbConfgs () map[string]MongoDbDatabase{
func BuildMongoDbConfgs() map[string]MongoDbDatabase {
return map[string]MongoDbDatabase{
"default" : {
Host:Get("mongo.host").String(),
UserName:Get("mongo.username").String(),
Password:Get("mongo.password").String(),
Database:Get("mongo.database").String(),
MaxPoolSize:Get("mongo.maxPoolSize").String(),
"default": {
Host: Get("mongo.host").String(),
UserName: Get("mongo.username").String(),
Password: Get("mongo.password").String(),
Database: Get("mongo.database").String(),
MaxPoolSize: Get("mongo.maxPoolSize").String(),
},
"pre_sku": {
Host: Get("pre_sku_mongo.host").String(),
UserName: Get("pre_sku_mongo.username").String(),
Password: Get("pre_sku_mongo.password").String(),
Database: Get("pre_sku_mongo.database").String(),
MaxPoolSize: Get("pre_sku_mongo.maxPoolSize").String(),
},
}
}
......@@ -8,6 +8,7 @@ import (
"go_sku_server/pkg/mongo"
"go_sku_server/service/sorter"
"sort"
"strconv"
"sync"
"gopkg.in/mgo.v2"
......@@ -62,15 +63,43 @@ func (ls *LyService) LyGoodsDetail(ctx *gin.Context, goodsIds []string, ch chan
spuList := spuService.getSpuList(skuArr)
GoodsRes := sync.Map{}
// 连接prev_sku MongoDB
prevSkuMongo := mongo.Conn("pre_sku")
for goodsId, skuStr := range skuArr {
if skuStr == "" {
GoodsRes.Store(goodsId, false)
continue
}
//初始化有序map,拼接data数据,就是从redis取出初始数据
sku := model.InitSkuData(skuStr)
var spu string
if skuStr == "" {
// 如果redis中找不到sku数据,尝试从prev_sku MongoDB中查找
skuId, err := strconv.ParseInt(goodsId, 10, 64)
if err != nil {
GoodsRes.Store(goodsId, false)
continue
}
var prevSku model.PrevSku
err = prevSkuMongo.DB("ichunt").C("prev_sku").Find(bson.M{"sku_id": skuId}).One(&prevSku)
prevSkuMongo.Close()
if err != nil {
// 如果在prev_sku中也找不到,则保持默认值
GoodsRes.Store(goodsId, false)
continue
}
// 根据找到的spu_id去spu的redis中查找
spuIdStr := strconv.FormatInt(prevSku.SpuId, 10)
spuStr, _ := redis.String(redisConnSpu.Do("HGET", "spu", spuIdStr))
if spuStr == "" {
// 如果spu缓存也没有,保持默认值
GoodsRes.Store(goodsId, false)
continue
}
spu = spuStr
} else {
spu = spuList[sku.SpuId]
}
sku.GoodsId = goodsId
spu := spuList[sku.SpuId]
//读取包装字段的缓存(分别是DGK,avnet,mro)
if sku.SupplierId == 7 || sku.SupplierId == 13 || sku.SupplierId == 1688 || sku.SupplierId == 17 {
//sku_raw_map哪里写入(成意写的)
......@@ -85,7 +114,6 @@ func (ls *LyService) LyGoodsDetail(ctx *gin.Context, goodsIds []string, ch chan
if sku.SupplierId == 7 && sku.Packing == "Tape & Reel (TR)" {
sku.Multiple = sku.Moq
}
//获取商品名称
//1688就是mro的sku spuName和GoodsName不是一个东西,不能公用
if sku.GoodsName != "" && (sku.SupplierId == 1688 || sku.OrgId == 3) {
......
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