Commit e7fc6f26 by huangchengyi

1.0

parent 76f0856b
package main package main
import ( import (
"encoding/json"
"flag" "flag"
"fmt" "fmt"
"github.com/tidwall/gjson"
"os" "os"
"search_server/boot" "search_server/boot"
"search_server/service"
) )
func main() { func main() {
...@@ -33,15 +34,39 @@ func main() { ...@@ -33,15 +34,39 @@ func main() {
//fmt.Println(attrName) //fmt.Println(attrName)
//os.Exit(1) //os.Exit(1)
ss := "LM358" //ss := "LM358"
mouserRes := service.OutLink(&ss,"-1") //mouserRes := service.OutLink(&ss,"-1")
for k, mouseItem := range mouserRes { //for k, mouseItem := range mouserRes {
fmt.Println(k) // fmt.Println(k)
fmt.Println(mouseItem.PriceTemp) // fmt.Println(mouseItem.PriceTemp)
// os.Exit(1)
//}
//fmt.Errorf()
jsonstr := `{"goods_id":1156147221172418504,"goods_sn":"","spu_id":"2156147221162468806","update_time":1561472211,"goods_status":3,"goods_name":"RC0603FR-07100KL","goods_type":2,"supplier_id":17,"encoded":"10059","batch_sn":"1148","moq":27961,"mpq":1,"stock":1765,"hk_delivery_time":"","cn_delivery_time":"4\u4e2a\u5de5\u4f5c\u65e5","goods_details":"","ladder_price":[{"purchases":2765,"price_cn":0.01072951425,"price_us":0},{"purchases":45654,"price_cn":0.343434,"price_us":6666}],"goods_images":"","canal":"L0000110","cp_time":0}`
m, ok := gjson.Parse(jsonstr).Value().(map[string]interface{})
if !ok {
fmt.Println(ok)
os.Exit(1) os.Exit(1)
} }
//fmt.Errorf() goods_id := gjson.Get(jsonstr, "goods_id").String()
ladder := gjson.Get(jsonstr, "ladder_price").Array()
temp1 := []map[string]float64{};
for _,value:=range ladder {
b := value.Map()
temp1 = append(temp1,map[string]float64{
"purchases":b["purchases"].Float(),
"price_cn":b["price_cn"].Float(),
"price_us":b["price_us"].Float(),
})
}
//fmt.Println(ladder)
//
m["goods_id"] = goods_id
m["ladder_price"] = temp1
dd,_ := json.Marshal(m)
fmt.Println(string(dd))
//lines := []string{ //lines := []string{
// `{"index":{"_index":"hcy1","_type":"goods","_id":"s1"} }`, // `{"index":{"_index":"hcy1","_type":"goods","_id":"s1"} }`,
...@@ -73,7 +98,6 @@ func main() { ...@@ -73,7 +98,6 @@ func main() {
os.Exit(1) os.Exit(1)
} }
//xml := strings.NewReader(resp) //xml := strings.NewReader(resp)
//json, err := xj.Convert(xml) //json, err := xj.Convert(xml)
//if err != nil { //if err != nil {
...@@ -83,4 +107,4 @@ func main() { ...@@ -83,4 +107,4 @@ func main() {
//json_str := json.String(); //json_str := json.String();
////ss := gjson.Get(json_str,"hello").String() ////ss := gjson.Get(json_str,"hello").String()
// //
//fmt.Println(json_str) //fmt.Println(json_str)
\ No newline at end of file
...@@ -6,8 +6,10 @@ url = amqp:;guest:guest@192.168.2.232:5672/ ...@@ -6,8 +6,10 @@ url = amqp:;guest:guest@192.168.2.232:5672/
MQ_BOM_ITEMS_LIST=bom_items_list MQ_BOM_ITEMS_LIST=bom_items_list
; bom更新数据队列 ; bom更新数据队列
MQ_BOM_SKU_LIST=bom_sku_list MQ_BOM_SKU_LIST=bom_sku_list
;联营数据推送入队列-》go后台任务消费(斌哥脚本) ;联营数据更新-推送入队列-》go后台任务消费(斌哥脚本)
SEARCH_SKU_UPDATE_LIST=search_sku_update_list SEARCH_SKU_UPDATE_LIST=search_sku_update_list
;联营数据新增-推送入队列-》go后台任务消费(斌哥脚本)
SEARCH_SKU_LIST=search_sku_list
; bom任务id ; bom任务id
ZIYING_MQ_BOM_ITEMS_LIST=ziying_bom_items_list ZIYING_MQ_BOM_ITEMS_LIST=ziying_bom_items_list
; bom更新数据队列 ; bom更新数据队列
......
...@@ -22,6 +22,8 @@ SEARCH_API_ERORR_PRE=search_api_overtime_ ...@@ -22,6 +22,8 @@ SEARCH_API_ERORR_PRE=search_api_overtime_
SEARCH_SHOW_SKU_TIME=search_show_sku_time SEARCH_SHOW_SKU_TIME=search_show_sku_time
;获取关税信息,根据goods_name,brand_name获取 ;获取关税信息,根据goods_name,brand_name获取
TAX_CUSTOMS_INFO=tax_customs_info TAX_CUSTOMS_INFO=tax_customs_info
;存放联营外链原始映射
SKU_RAW_MAP=sku_raw_map
[redis_ziyin] [redis_ziyin]
AGG_TABLE=sz_ziying_class_aggs AGG_TABLE=sz_ziying_class_aggs
......
...@@ -4,29 +4,29 @@ import ( ...@@ -4,29 +4,29 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"search_server/model" "search_server/model"
"search_server/pkg/common" "search_server/pkg/common"
"search_server/service" "search_server/service/ly"
) )
//搜索型号 //搜索型号
func GetMouserData(c *gin.Context) { func GetMouserData(c *gin.Context) {
goodsName, _ := c.GetPostForm("goods_name") goodsName, _ := c.GetPostForm("goods_name")
lycon := new(service.CommonLyService) lycon := new(ly.CommonLyService)
//调外链拿数据 //调外链拿数据
apiData := service.OutLink(&goodsName,"1") apiData := ly.OutLink(&goodsName,"1")
//供应商详情 //供应商详情
supplierInfo := model.SUPPLIER_REDIS_INFO_{ supplierInfo := model.SUPPLIER_REDIS_INFO_{
SupplierId:14, SupplierId:14,
SupplierNickname: "mouser", SupplierNickname: "mouser",
} }
goods := lycon.GetSkuByGoodsSn(apiData,&supplierInfo) err := lycon.GetSkuByGoodsSn(apiData,&supplierInfo)
var errCode int var errCode int
if len(goods) == 0 { if !err {
errCode = 1 errCode = 1
} }
res := common.BomResponse{ res := common.BomResponse{
ErrCode: errCode, ErrCode: errCode,
ErrMsg: "", ErrMsg: "",
Data: goods, Data: "",
} }
c.JSON(200,res) c.JSON(200,res)
} }
...@@ -11,6 +11,7 @@ import ( ...@@ -11,6 +11,7 @@ import (
"search_server/pkg/gredis" "search_server/pkg/gredis"
"search_server/requests" "search_server/requests"
"search_server/service" "search_server/service"
"search_server/service/ly"
"search_server/service/transformer" "search_server/service/transformer"
"strings" "strings"
) )
...@@ -61,7 +62,7 @@ func QuoteIndex(c *gin.Context) { ...@@ -61,7 +62,7 @@ func QuoteIndex(c *gin.Context) {
} }
func mouserOrg(keyword, suppliedId string) (result map[string]interface{}, err error) { func mouserOrg(keyword, suppliedId string) (result map[string]interface{}, err error) {
mouserRes := service.OutLink(&keyword, "-1") mouserRes := ly.OutLink(&keyword, "-1")
redisCon := gredis.Conn("search_r") redisCon := gredis.Conn("search_r")
defer redisCon.Close() defer redisCon.Close()
skuMouser := make(map[string]string) skuMouser := make(map[string]string)
......
...@@ -2,28 +2,35 @@ package model ...@@ -2,28 +2,35 @@ package model
//联营请求外链后格式化数据 //联营请求外链后格式化数据
type LyClearGoodsList struct { type LyClearGoodsList struct {
GoodsId string `json:"goods_name"` //型号id SkuId string `json:"sku_id"` //平台型号id (非必填)
GoodsName string `json:"goods_name"` //型号名称 SpuId string `json:"spu_id"` //平台spuId (非必填)
BrandName string `json:"brand_name"` //品牌名称 BrandId string `json:"brand_id"` //平台品牌id (非必填)
Desc string `json:"desc"` //描述 GoodsName string `json:"goods_name"` //型号名称
GoodsSn string `json:"goods_sn"` //api唯一编码 BrandName string `json:"brand_name"` //品牌名称
Docurl string `json:"docurl"` //sku对应供应商的文档路径 Desc string `json:"desc"` //描述
Url string `json:"url"` //sku对应供应商的商品详情 BatchSn string `json:"batch_sn"` //批次号
GoodsImg string `json:"goods_img"` //sku图片 GoodsSn string `json:"goods_sn"` //api唯一编码
Cat string `json:"cat"` //分类 Docurl string `json:"docurl"` //sku对应供应商的文档路径
Encoded string `json:"encoded"` //内部编码 Url string `json:"url"` //sku对应供应商的商品详情
RestrictionMessage string `json:"RestrictionMessage"` //额外购买限制内容,如 ‘当前商品不在本地区销售’ GoodsImg string `json:"goods_img"` //sku图片
Increment int64 `json:"increment"` //最小包装量、倍数 =Mpq Cat string `json:"cat"` //分类
SinglePrice float64 `json:"single_price"` //最小单价 Encap string `json:"encap"` //包装
Stock int64 `json:"increment"` //库存 Canal string `json:"canal"` //渠道标签
Moq int64 `json:"moq"` //最小起订量、起订量 Encoded string `json:"encoded"` //内部编码
Tiered []*TierItem //价格梯度数量 RestrictionMessage string `json:"RestrictionMessage"` //额外购买限制内容,如 ‘当前商品不在本地区销售’
PriceTemp []interface{} //拼接梯度,目前只有联营推送队列用 Increment int64 `json:"increment"` //最小包装量、倍数 =Mpq
SinglePrice float64 `json:"single_price"` //最小单价
Stock int64 `json:"increment"` //库存
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 //价格梯度数量
PriceTemp []interface{} //拼接梯度,目前只有联营推送队列用
} }
type TierItem struct { type TierItem struct {
Purchases uint64 //购买数量 Purchases uint64 `json:"purchases"` //购买数量
PriceUs float64 //数量对应的英文价格 PriceUs float64 `json:"price_us"` //数量对应的英文价格
PriceCn float64 //数量对应的中文价格 PriceCn float64 `json:"price_cn"` //数量对应的中文价格
PriceAc float64 `json:"price_ac"` PriceAc float64 `json:"price_ac"`
} }
......
...@@ -126,7 +126,6 @@ func NumberToHtml(number int) (html string) { ...@@ -126,7 +126,6 @@ func NumberToHtml(number int) (html string) {
} }
return return
} }
/** /**
* 生成纯小写字母的字符串 * 生成纯小写字母的字符串
* 返回形式如下 : yuiopkdsi rnvewjeil xmiqplmza * 返回形式如下 : yuiopkdsi rnvewjeil xmiqplmza
......
package logger
import (
"io"
"os"
"time"
"strings"
)
func check(e error) {
if e != nil {
panic(e)
}
}
/**
* 判断文件是否存在 存在返回 true 不存在返回false
*/
func checkFileIsExist(filename string) bool {
var exist = true
if _, err := os.Stat(filename); os.IsNotExist(err) {
exist = false
}
return exist
}
/*
@param writeString 写入文件字符串
@param file_pre 附加文件前缀
eg: logic.Loginfo("逾期统计开始","_yuqilv_");
*/
func Log(writeString string,log_file_pre string) {
log_file_pre = "_"+log_file_pre
date := time.Now().Format("2006-01-02")
date2 := time.Now().Format("2006-01-02 15:04:05")
var filename = "./logs/"+date+log_file_pre+".txt"
var f *os.File
var err1 error
if checkFileIsExist(filename) { //如果文件存在
f, err1 = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件
} else {
f, err1 = os.Create(filename) //创建文件
}
check(err1)
ss := StrReplace("\r\n","",writeString,1) //替换多余换行
io.WriteString(f,"\r\n"+date2+"----"+ss) //写入文件(字符串)
//fmt.Print(err)
}
// StrReplace str_replace()
func StrReplace(search, replace, subject string, count int) string {
return strings.Replace(subject, search, replace, count)
}
package service package ly
/* /*
等同于 php.search_server.middleBaseController 等同于 php.search_server.middleBaseController
联营请求外链后 更新或者新增到平台 (es,redis,rabmq) 联营请求外链后 更新或者新增到平台 (es,redis,rabmq)
*/ */
import ( import (
"encoding/json"
"fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gomodule/redigo/redis" "github.com/gomodule/redigo/redis"
"github.com/syyongx/php2go" "github.com/syyongx/php2go"
"github.com/tidwall/gjson"
"search_server/middleware" "search_server/middleware"
"search_server/model" "search_server/model"
"search_server/pkg/common" "search_server/pkg/common"
"search_server/pkg/config" "search_server/pkg/config"
"search_server/pkg/es" "search_server/pkg/es"
"search_server/pkg/gredis" "search_server/pkg/gredis"
"search_server/pkg/logger"
"search_server/pkg/mq" "search_server/pkg/mq"
"search_server/pkg/mysql" "search_server/pkg/mysql"
"strconv" "strconv"
"strings" "strings"
"fmt"
"encoding/json"
) )
//定义类名 //定义类名
type CommonLyService struct { type CommonLyService struct {
...@@ -51,52 +53,110 @@ func (t *CommonLyService) LyServerRun(){ ...@@ -51,52 +53,110 @@ func (t *CommonLyService) LyServerRun(){
} }
/* /*
联营公共类 联营入口
联营大类,包括修改新增 sku es redis ,推送数据到队列让其他go服务更新数据到mysql 联营大类,包括修改新增 sku es redis ,推送数据到队列让其他go服务更新数据到mysql
@param goods_list 请求联营格式化后的数据 @param goods_list 请求联营格式化后的数据
@param supplier_info 供应商商品详情 @param supplier_info 供应商商品详情
*/ */
func (t *CommonLyService) GetSkuByGoodsSn(goodsList map[string]*model.LyClearGoodsList,supplierInfo *model.SUPPLIER_REDIS_INFO_) map[string]interface{}{ func (t *CommonLyService) GetSkuByGoodsSn(goodsList map[string]*model.LyClearGoodsList,supplierInfo *model.SUPPLIER_REDIS_INFO_) bool {
t.LyServerRun(); //初始化变量 t.LyServerRun(); //初始化变量
redisRead := gredis.Conn("search_r") redisWrite := gredis.Conn("search_w")
defer redisRead.Close() defer redisWrite.Close()
t.supplierId = supplierInfo.SupplierId t.supplierId = supplierInfo.SupplierId
t.supplierName = supplierInfo.SupplierNickname t.supplierName = supplierInfo.SupplierNickname
_,haveLimitTime := t.supplier_over_time[supplierInfo.SupplierNickname] //获取当前供应商更新周期
originGoods := make(map[string]interface{},0) for goodsSn, info := range goodsList {
for goods_sn, info := range goodsList { snSku := php2go.Md5(strings.ToLower(goodsSn))
skuId,_ := gredis.String(redisWrite.Do("HGET",config.Get("redis_all.SKU_UNIQUE_JUDGE").String(),snSku)) //查询唯一值,反查sku_id
snSku := php2go.Md5(strings.ToLower(goods_sn)) /**********新增sku**************/
skuId,_ := gredis.String(redisRead.Do("HGET",config.Get("redis_all.SKU_UNIQUE_JUDGE").String(),snSku)) //查询唯一值,反查sku_id skuFlag := false; //是否新增或者更新db+redis,为true则新增
if skuId == "" { //redis没有此sku,创建
var sku_flag bool = false; //是否新增或者更新db+redis,为true则新增
if skuId == "" { //为空,先创建sku
lock_key := "searchapi_"+snSku; lock_key := "searchapi_"+snSku;
flag,_ := redis.Bool(redisRead.Do("SETNX", lock_key,php2go.Time()+2)) flag,_ := redis.Bool(redisWrite.Do("SETNX", lock_key,php2go.Time()+2))
if flag { //不存在锁,直接新增 if !flag { //防止并发
sku_flag = true continue;
redisRead.Do("EXP",lock_key,2) //给锁有效时间2秒 }
//sku_id = t.writeSkuInfo(info) //新增操作
}else{ //存在锁 skuFlag = true //新增标志
redisWrite.Do("EXP",lock_key,2) //给锁有效时间2秒
skuId = t.writeSkuInfo(info,"") //新增redis+sku+spu+brand
redisWrite.Do("del",lock_key) //删除锁
}
info.SkuId = skuId;
//获取sku存在redis的详情
redisData,_ := redis.String(redisWrite.Do("HGET",config.Get("redis_all.SKU").String(),skuId))
if redisData == "" {
logger.Log("此sku不存在redis" + skuId,"redis_get_sku_error")
continue;
}
redisArr, ok := gjson.Parse(redisData).Value().(map[string]interface{}) //redis取值转成map
if !ok {
logger.Log("此sku不是正确json格式" + redisData,"redis_get_sku_error")
continue;
}
//获取spu详情
spuId := gjson.Get(redisData,"spu_id").String();
spuStr,_ := redis.String(redisWrite.Do("HGET",config.Get("redis_all.SPU").String(),spuId))
info.SpuId = spuId //平台spuid
info.BrandId = gjson.Get(spuStr,"brand_id").String(); //平台品牌id
if skuFlag { //如果是新增
t.createSkuDB(info) //推入队列->(斌队列消费写redis+go+mongodb)
t.esSkuInfo(info) //新增es数据
}
/**********更新sku**************/
//计算更新周期
var isUpdate int64 //是否到时间更新sku
if haveLimitTime {
isUpdate = php2go.Time()-gjson.Get(redisData,"update_time").Int()-t.supplier_over_time[supplierInfo.SupplierNickname]
}
if isUpdate > 0 && !skuFlag { //需要更新
//更新redis->sku
redisArr["moq"] = info.Moq
redisArr["stock"] = info.Stock
redisArr["mpq"] = info.Moq
redisArr["goods_status"] = 1
redisArr["is_expire"] = 0
redisArr["ladder"] = info.Tiered
redisArr["update_time"] = php2go.Time()
if supplierInfo.SupplierId == 14 {
redisArr["cp_time"] = 0
}
redisJson,_ := json.Marshal(redisArr)
redisWrite.Do("HSET",config.Get("redis_all.SKU").String(),redisJson)
//更新redis->商品映射
if supplierInfo.SupplierId == 7 {
skuMapJson,_ := json.Marshal(map[string]string{
"raw_goods_id":info.RawGoodsId, //原始goods_sn
"raw_brand_name":info.RawBrandName, //原始品牌名称
})
redisWrite.Do("HSET",config.Get("redis_all.SKU_RAW_MAP").String(),skuMapJson)
} }
//更新db
t.updateSkuDB(info)
//更新es
t.esSkuInfo(info)
} }
print(info)
print(sku_flag)
//productList[goodsSn] = &LyClearGoodsList
} }
fmt.Println(originGoods) t.pushEs(); //最后推送ES
return originGoods return true
} }
/* /*
生成或者更新 sku信息 生成或者更新 sku信息
*/ */
func (t *CommonLyService) writeSkuInfo(skuInfo *model.LyClearGoodsList,skuId string,) { func (t *CommonLyService) writeSkuInfo(skuInfo *model.LyClearGoodsList,skuId string) string {
redisWrite := gredis.Conn("search_w") redisWrite := gredis.Conn("search_w")
defer redisWrite.Close() defer redisWrite.Close()
...@@ -139,7 +199,7 @@ func (t *CommonLyService) writeSkuInfo(skuInfo *model.LyClearGoodsList,skuId str ...@@ -139,7 +199,7 @@ func (t *CommonLyService) writeSkuInfo(skuInfo *model.LyClearGoodsList,skuId str
if t.supplierId == 7 { if t.supplierId == 7 {
redisWrite.Do("HSET",config.Get("redis_all.SKU_RAW_MAP").String(),skuKey,skuId) redisWrite.Do("HSET",config.Get("redis_all.SKU_RAW_MAP").String(),skuKey,skuId)
} }
return skuId
} }
/* /*
...@@ -217,7 +277,7 @@ func (t *CommonLyService) writeBrandInfo(skuInfo *model.LyClearGoodsList) int64 ...@@ -217,7 +277,7 @@ func (t *CommonLyService) writeBrandInfo(skuInfo *model.LyClearGoodsList) int64
/* /*
组装推送到es数据 组装推送到es数据
*/ */
func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * string,brandId *string) { func (t * CommonLyService) esSkuInfo(skuInfo *model.LyClearGoodsList) {
sort := 1; //排序 sort := 1; //排序
if skuInfo.SinglePrice >0 && skuInfo.Stock >0 && skuInfo.Stock >= skuInfo.Increment && skuInfo.Stock >= skuInfo.Moq { if skuInfo.SinglePrice >0 && skuInfo.Stock >0 && skuInfo.Stock >= skuInfo.Increment && skuInfo.Stock >= skuInfo.Moq {
sort = 31; sort = 31;
...@@ -240,16 +300,16 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str ...@@ -240,16 +300,16 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str
nowTime := php2go.Time() nowTime := php2go.Time()
param := map[string]interface{}{ param := map[string]interface{}{
"goods_id":skuInfo.GoodsId, "goods_id":skuInfo.SkuId,
"goods_name":skuInfo.GoodsName, "goods_name":skuInfo.GoodsName,
"auto_goods_name":php2go.Strtoupper(skuInfo.GoodsName), "auto_goods_name":php2go.Strtoupper(skuInfo.GoodsName),
"brand_id":*brandId, "brand_id":skuInfo.BrandId,
"brand_name":skuInfo.BrandName, "brand_name":skuInfo.BrandName,
"supplier_name":t.supplierName, "supplier_name":t.supplierName,
"class_id1":0, "class_id1":0,
"class_id2":0, "class_id2":0,
"class_id3":0, "class_id3":0,
"spu_id":*spuId, "spu_id":skuInfo.SpuId,
"sale_time":nowTime, "sale_time":nowTime,
"create_time":nowTime, "create_time":nowTime,
"update_time":nowTime, "update_time":nowTime,
...@@ -266,7 +326,7 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str ...@@ -266,7 +326,7 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str
} }
paramjson,_ := json.Marshal(param) paramjson,_ := json.Marshal(param)
t.skuEsUpdataList = append(t.skuEsUpdataList,`{"index":{"_index":"`+t.supplierName+`","_type":"goods","_id":"`+skuInfo.GoodsId+`"}}`) t.skuEsUpdataList = append(t.skuEsUpdataList,`{"index":{"_index":"`+t.supplierName+`","_type":"goods","_id":"`+skuInfo.SkuId+`"}}`)
t.skuEsUpdataList = append(t.skuEsUpdataList,string(paramjson)) t.skuEsUpdataList = append(t.skuEsUpdataList,string(paramjson))
} }
...@@ -275,7 +335,7 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str ...@@ -275,7 +335,7 @@ func (t * CommonLyService) EsSkuInfo(skuInfo *model.LyClearGoodsList,spuId * str
推入队列=》(斌 go队列去消费更新db+mongodb..等操作) 推入队列=》(斌 go队列去消费更新db+mongodb..等操作)
*/ */
func (t * CommonLyService) updateSkuDB(skuInfo *model.LyClearGoodsList) { func (t * CommonLyService) updateSkuDB(skuInfo *model.LyClearGoodsList) {
if skuInfo.GoodsId == "" { if skuInfo.SkuId == "" {
return return
} }
param := map[string]interface{}{ param := map[string]interface{}{
...@@ -283,7 +343,7 @@ func (t * CommonLyService) updateSkuDB(skuInfo *model.LyClearGoodsList) { ...@@ -283,7 +343,7 @@ func (t * CommonLyService) updateSkuDB(skuInfo *model.LyClearGoodsList) {
"stock":skuInfo.Stock, "stock":skuInfo.Stock,
"tiered":skuInfo.PriceTemp, "tiered":skuInfo.PriceTemp,
"increment":skuInfo.Increment, "increment":skuInfo.Increment,
"sku_id":skuInfo.GoodsId, "sku_id":skuInfo.SkuId,
"brand_name":skuInfo.BrandName, "brand_name":skuInfo.BrandName,
"goods_name":skuInfo.GoodsName, "goods_name":skuInfo.GoodsName,
"goods_sn":skuInfo.GoodsSn, "goods_sn":skuInfo.GoodsSn,
...@@ -317,3 +377,44 @@ func (t *CommonLyService) pushEs() { ...@@ -317,3 +377,44 @@ func (t *CommonLyService) pushEs() {
t.flagStr += result t.flagStr += result
} }
} }
/*
新增sku,组装好数据推送到db(斌哥队列消费后 更新 mongodb+mysql 等)
*/
func (t * CommonLyService) createSkuDB(skuInfo *model.LyClearGoodsList) {
if skuInfo.SkuId == "" {
return
}
param := map[string]interface{}{
"desc":skuInfo.Desc,
"docurl":skuInfo.Docurl,
"goods_img":skuInfo.GoodsImg,
"url":skuInfo.Url,
"spu_id":skuInfo.SpuId,
"brand_id":skuInfo.BrandId,
"batch_sn":skuInfo.BatchSn,
"canal":skuInfo.Canal,
"encoded":skuInfo.Encoded,
"encap":skuInfo.Encap,
"pn":t.supplierName,
"stock":skuInfo.Stock,
"tiered":skuInfo.PriceTemp,
"increment":skuInfo.Increment,
"sku_id":skuInfo.SkuId,
"brand_name":skuInfo.BrandName,
"goods_name":skuInfo.GoodsName,
"goods_sn":skuInfo.GoodsSn,
}
paramjson,_ := json.Marshal(param)
paramStr := string(paramjson)
if t.flag == "101" {
t.flagStr = "<br/><br/>";
t.flagStr = "推送到go新增db:";
t.flagStr = paramStr;
t.flagStr = "<br/><br/>";
}
mq.PushMsg(config.Get("rabmq_all.SEARCH_SKU_LIST").String(),paramStr) //推送队列
//记录日志
logger.Log(paramStr,"sku_create")
}
package service package ly
import ( import (
"github.com/imroc/req" "github.com/imroc/req"
......
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