Commit 3a0ddd74 by mushishixian

fix

parents 2ee198aa a6e892cc
...@@ -4,4 +4,4 @@ host = 192.168.1.237:27017 ...@@ -4,4 +4,4 @@ host = 192.168.1.237:27017
username = "ichunt" username = "ichunt"
password = "huntmon6699" password = "huntmon6699"
database = ichunt database = ichunt
maxPoolSize=100 maxPoolSize=2000
\ No newline at end of file \ No newline at end of file
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
[default_redis_read] [default_redis_read]
host = 192.168.1.235:6379 host = 192.168.1.235:6379
password = icDb29mLy2s password = icDb29mLy2s
max_idle = 5000 max_idle = 20000
max_active = 3000 max_active = 20000
idle_timeout = 20 idle_timeout = 20
[default_redis_write] [default_redis_write]
host = 192.168.1.235:6379 host = 192.168.1.235:6379
password = icDb29mLy2s password = icDb29mLy2s
max_idle = 5000 max_idle = 20000
max_active = 3000 max_active = 20000
idle_timeout = 20 idle_timeout = 20
;存放redis所有键 ;存放redis所有键
......
...@@ -49,13 +49,14 @@ func Synchronization(ctx *gin.Context) { ...@@ -49,13 +49,14 @@ func Synchronization(ctx *gin.Context) {
zyGoodsId := make([]string, 0) zyGoodsId := make([]string, 0)
lyGoodsId := make([]string, 0) lyGoodsId := make([]string, 0)
for _, goods_id := range goodsIdArr { for _, goods_id := range goodsIdArr {
if goods_id == "" {
continue;
}
if len(goods_id) < 19 { //自营 if len(goods_id) < 19 { //自营
zyGoodsId = append(zyGoodsId, goods_id) zyGoodsId = append(zyGoodsId, goods_id)
if len(zyGoodsId) >= goods_slice_count { if len(zyGoodsId) >= goods_slice_count {
common.PrintDebugHtml(ctx, "zy增加协程1001:")
common.PrintDebugHtml(ctx, "zy增加协程:")
common.PrintDebugHtml(ctx, zyGoodsId) common.PrintDebugHtml(ctx, zyGoodsId)
wg.Add(1) //协程计数一 wg.Add(1) //协程计数一
go zyService.ZyGoodsDetail(ctx, zyGoodsId, &GoodsRes, &wg) go zyService.ZyGoodsDetail(ctx, zyGoodsId, &GoodsRes, &wg)
zyGoodsId = zyGoodsId[:0:0] zyGoodsId = zyGoodsId[:0:0]
...@@ -63,7 +64,7 @@ func Synchronization(ctx *gin.Context) { ...@@ -63,7 +64,7 @@ func Synchronization(ctx *gin.Context) {
} else { //联营 } else { //联营
lyGoodsId = append(lyGoodsId, goods_id) lyGoodsId = append(lyGoodsId, goods_id)
if len(lyGoodsId) >= goods_slice_count { if len(lyGoodsId) >= goods_slice_count {
common.PrintDebugHtml(ctx, "ly增加协程:") common.PrintDebugHtml(ctx, "ly增加协程1002:")
common.PrintDebugHtml(ctx, zyGoodsId) common.PrintDebugHtml(ctx, zyGoodsId)
wg.Add(1) wg.Add(1)
go lyService.LyGoodsDetail(ctx, lyGoodsId, &GoodsRes, &wg) go lyService.LyGoodsDetail(ctx, lyGoodsId, &GoodsRes, &wg)
...@@ -73,14 +74,14 @@ func Synchronization(ctx *gin.Context) { ...@@ -73,14 +74,14 @@ func Synchronization(ctx *gin.Context) {
} }
if len(zyGoodsId) > 0 { if len(zyGoodsId) > 0 {
common.PrintDebugHtml(ctx, "zy增加协程:") common.PrintDebugHtml(ctx, "zy增加协程1003:")
common.PrintDebugHtml(ctx, zyGoodsId) common.PrintDebugHtml(ctx, zyGoodsId)
wg.Add(1) //协程计数一 wg.Add(1) //协程计数一
go zyService.ZyGoodsDetail(ctx, zyGoodsId, &GoodsRes, &wg) go zyService.ZyGoodsDetail(ctx, zyGoodsId, &GoodsRes, &wg)
} }
if len(lyGoodsId) >= 0 { if len(lyGoodsId) > 0 {
common.PrintDebugHtml(ctx, "ly增加协程:") common.PrintDebugHtml(ctx, "ly增加协程1004:")
common.PrintDebugHtml(ctx, zyGoodsId) common.PrintDebugHtml(ctx, zyGoodsId)
wg.Add(1) wg.Add(1)
go lyService.LyGoodsDetail(ctx, lyGoodsId, &GoodsRes, &wg) go lyService.LyGoodsDetail(ctx, lyGoodsId, &GoodsRes, &wg)
......
package main
import (
"fmt"
"github.com/gomodule/redigo/redis"
"log"
)
func main() {
c1, err := redis.Dial("tcp", "192.168.1.235:6379")
if err != nil {
log.Fatalln(err)
}
if _, err := c1.Do("AUTH", "icDb29mLy2s"); err != nil {
c1.Close()
log.Fatalln(err)
}
defer c1.Close()
// good_id := []interface{}{"spu","2160558271613306802","2160551632152235701"}
// res1,err := c1.Do("hmget","spu","2160558271613306802","2160551632152235701")
res1,err := c1.Do("hmget","spu","2160558271613306802")
reply, err := redis.Strings(res1,err)
//if err != nil {
// fmt.Print(err,"错误")
// // handle error
//}
fmt.Println(reply)
//if _, err := redis.Scan(reply, &value1,&value2); err != nil {
// // handle error
// }
// fmt.Print(value1,value2)
return
}
package main
import (
"fmt"
"github.com/gomodule/redigo/redis"
_ "reflect"
)
type Student struct {
Id int
Name string
}
func (s Student) EchoName(name string){
fmt.Println("我的名字是:", name)
}
func main() {
c1, err := redis.Dial("tcp", "192.168.1.235:6379")
if err != nil {
}
if _, err := c1.Do("AUTH", "icDb29mLy2s"); err != nil {
c1.Close()
}
defer c1.Close()
s := []interface{}{"spu","2160558271613306802","2160551632152235701"}
//res1,err := c1.Do("hmget","spu","2160558271613306802","2160551632152235701")
res1,err := c1.Do("hmget",s...)
//res1,err := c1.Do("hmget","spu",good_id)
reply, err := redis.Strings(res1,err)
//if err != nil {
// fmt.Print(err,"错误")
// // handle error
//}
fmt.Println(reply)
//s := Student{Id: 1, Name: "咖啡色的羊驼"}
//v := reflect.ValueOf(s)
//// 获取方法控制权
//// 官方解释:返回v的名为name的方法的已绑定(到v的持有值的)状态的函数形式的Value封装
//mv := v.MethodByName("EchoName")
//// 拼凑参数
//args := []reflect.Value{reflect.ValueOf("咖啡色的羊驼")}
//
//// 调用函数
//mv.Call(args)
}
\ No newline at end of file
...@@ -18,4 +18,10 @@ type LadderPrice struct { ...@@ -18,4 +18,10 @@ type LadderPrice struct {
type LadderPriceLc struct { type LadderPriceLc struct {
Purchases int64 `json:"purchases"` //购买数量 Purchases int64 `json:"purchases"` //购买数量
Price float64 `json:"price"` //立创价格,人民币 Price float64 `json:"price"` //立创价格,人民币
}
//自营属性列表
type Attrs struct {
AttrName string `json:"attr_name"` //属性名称
AttrValue string `json:"attr_value"` //属性值
} }
\ No newline at end of file
...@@ -64,6 +64,56 @@ func getConn(writeHost, password string, maxIdle, maxActive int) (pool *redis.Po ...@@ -64,6 +64,56 @@ func getConn(writeHost, password string, maxIdle, maxActive int) (pool *redis.Po
return return
} }
/*
批量或者单个查询redis数据,统一返回map[string]string
@param hkey string 集合键值,如sku
@param targetIds string 查询的id 切片
eg:
redisConn := gredis.Conn("search_r")
skuArr := gredis.HgetPi(&redisConn,"Self_SelfGoods",[]string{"1001","10005"})
*/
func Hmget(redisCon string, hkey string, targetIds []string) map[string]string {
if len(targetIds) == 0 {
fmt.Println("批量查询不得传入空")
return nil
}
redisConn := Conn(redisCon)
defer redisConn.Close()
skuArr := make(map[string]string, 0)
if len(targetIds) == 1 {
goods_id := targetIds[0];
info, err := String(redisConn.Do("HGET", hkey, goods_id))
if err != nil {
fmt.Print("连接redis错误991:", err)
}
if info == "" {
skuArr[goods_id] = ""
} else {
skuArr[goods_id] = info
}
//fmt.Println("单个查询")
return skuArr
}else{ //多个查询
param := []interface{}{hkey}
for _, goods_id := range targetIds {
param = append(param, goods_id)
}
res1,err1 := redisConn.Do("hmget",param...)
reply, _ := redis.Strings(res1,err1)
if err1 != nil {
fmt.Println(err1)
}
for k, goodsInfo := range reply {
skuArr[targetIds[k]] = goodsInfo
}
//fmt.Println(skuArr)
return skuArr
}
}
/* /*
批量或者单个查询redis数据,统一返回map[string]string 批量或者单个查询redis数据,统一返回map[string]string
@param hkey string 集合键值,如sku @param hkey string 集合键值,如sku
......
...@@ -48,7 +48,7 @@ func (ls *LyService) LyGoodsDetail(ctx *gin.Context, goodsIds []string, goodsRes ...@@ -48,7 +48,7 @@ func (ls *LyService) LyGoodsDetail(ctx *gin.Context, goodsIds []string, goodsRes
} }
//批量获取商品详情 //批量获取商品详情
skuArr := gredis.HgetPi("default_r", "sku", goodsIds) skuArr := gredis.Hmget("default_r", "sku", goodsIds)
//为了性能着想,这边也先去批量获取spu的信息 //为了性能着想,这边也先去批量获取spu的信息
spuList := ls.getSpuList(skuArr) spuList := ls.getSpuList(skuArr)
for goodsId, skuStr := range skuArr { for goodsId, skuStr := range skuArr {
...@@ -199,6 +199,6 @@ func (ls *LyService) getSpuList(skuArr map[string]string) (spuList map[string]st ...@@ -199,6 +199,6 @@ func (ls *LyService) getSpuList(skuArr map[string]string) (spuList map[string]st
redisConn := gredis.Conn("default_r") redisConn := gredis.Conn("default_r")
defer redisConn.Close() defer redisConn.Close()
//批量获取spu详情 //批量获取spu详情
spuList = gredis.HgetPi("default_r", "spu", spuIds) spuList = gredis.Hmget("default_r", "spu", spuIds)
return return
} }
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"github.com/gomodule/redigo/redis" "github.com/gomodule/redigo/redis"
"github.com/iancoleman/orderedmap" "github.com/iancoleman/orderedmap"
_ "github.com/iancoleman/orderedmap"
"github.com/ichunt2019/logger" "github.com/ichunt2019/logger"
"github.com/syyongx/php2go" "github.com/syyongx/php2go"
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
...@@ -12,7 +13,9 @@ import ( ...@@ -12,7 +13,9 @@ import (
"go_sku_server/pkg/common" "go_sku_server/pkg/common"
"go_sku_server/pkg/gredis" "go_sku_server/pkg/gredis"
"go_sku_server/pkg/mongo" "go_sku_server/pkg/mongo"
_ "go_sku_server/pkg/mongo"
"gopkg.in/mgo.v2/bson" "gopkg.in/mgo.v2/bson"
_ "gopkg.in/mgo.v2/bson"
"strings" "strings"
) )
......
...@@ -38,18 +38,21 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -38,18 +38,21 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
redisConn.Close(); redisConn.Close();
}() }()
skuArr := gredis.HgetPi2("search_r","Self_SelfGoods",goodsIds) //批量获取商品详情 skuArr := gredis.Hmget("search_r","Self_SelfGoods",goodsIds) //批量获取商品详情
fast := ctx.Request.FormValue("power[fast]") fast := ctx.Request.FormValue("power[fast]")
for goods_id,info := range skuArr { for goods_id,info := range skuArr {
if gjson.Get(info, "goods_name").String() == "" { if gjson.Get(info, "goods_name").String() == "" {
fmt.Print("报错redis 1001-----",goods_id,skuArr) fmt.Print("zy goods_name为空-----",goods_id,skuArr)
} }
//拼接梯度价格 //拼接梯度价格
ladder_price_arr := gjson.Get(info,"ladder_price").Array() ladderPriceArr := gjson.Get(info,"ladder_price").Array()
ladderPrice := make([]model.LadderPrice,0) ladderPrice := make([]model.LadderPrice,0)
for _,v := range ladder_price_arr{ for _,v := range ladderPriceArr{
if v.Get("purchases").String() == "" {
continue;
}
ladderPrice = append(ladderPrice, model.LadderPrice{ ladderPrice = append(ladderPrice, model.LadderPrice{
Purchases: v.Get("purchases").Int(), Purchases: v.Get("purchases").Int(),
PriceUs: v.Get("price_us").Float(), PriceUs: v.Get("price_us").Float(),
...@@ -57,6 +60,19 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -57,6 +60,19 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
}) })
} }
//拼接属性
attrJsonArr := gjson.Parse(gjson.Get(info,"attrs").String()).Array()
attrs := make([]model.Attrs,0)
for _,d := range attrJsonArr{
if d.Get("attr_name").String() == "" {
continue;
}
attrs = append(attrs, model.Attrs{
AttrName: d.Get("attr_name").String(),
AttrValue: d.Get("attr_value").String(),
})
}
//数组 //数组
A := orderedmap.New() //初始化有序map,拼接data 数据 A := orderedmap.New() //初始化有序map,拼接data 数据
A.Set("goods_id",common.MyInt64(goods_id)) A.Set("goods_id",common.MyInt64(goods_id))
...@@ -74,7 +90,13 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -74,7 +90,13 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
A.Set("goods_brief", gjson.Get(info, "goods_brief").String()) // A.Set("goods_brief", gjson.Get(info, "goods_brief").String()) //
A.Set("moq", gjson.Get(info, "moq").Int()) // A.Set("moq", gjson.Get(info, "moq").Int()) //
A.Set("mpq", gjson.Get(info, "mpq").Int()) // A.Set("mpq", gjson.Get(info, "mpq").Int()) //
A.Set("ladder_price", ladderPrice) //
if len(ladderPrice) == 0 {
A.Set("ladder_price", "") //
}else{
A.Set("ladder_price", ladderPrice) //
}
A.Set("update_time", gjson.Get(info, "update_time").Int()) // A.Set("update_time", gjson.Get(info, "update_time").Int()) //
A.Set("sku_name", strings.Trim(gjson.Get(info, "sku_name").String()," ")) // A.Set("sku_name", strings.Trim(gjson.Get(info, "sku_name").String()," ")) //
A.Set("mpl", gjson.Get(info, "mpl").Int()) // A.Set("mpl", gjson.Get(info, "mpl").Int()) //
...@@ -85,7 +107,13 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -85,7 +107,13 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
stock := dbStock-lockStock //当前可购买库存 stock := dbStock-lockStock //当前可购买库存
A.Set("stock",stock) A.Set("stock",stock)
A.Set("attrs", gjson.Get(info, "attrs").String()) //
if len(attrs) == 0 {
A.Set("attrs", "") //属性值
}else{
A.Set("attrs", attrs) //
}
A.Set("cost", gjson.Get(info, "cost").String()) // A.Set("cost", gjson.Get(info, "cost").String()) //
A.Set("new_cost", gjson.Get(info, "new_cost").String()) // A.Set("new_cost", gjson.Get(info, "new_cost").String()) //
A.Set("supplier_stock", gjson.Get(info, "supplier_stock").Int()) // A.Set("supplier_stock", gjson.Get(info, "supplier_stock").Int()) //
...@@ -105,7 +133,8 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -105,7 +133,8 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
supplier_id := gjson.Get(info, "supplier_id").String() supplier_id := gjson.Get(info, "supplier_id").String()
supplier_name := "" supplier_name := ""
if supplier_id != "" { if supplier_id != "" {
supplier_name,_ = gredis.String(redisConn.Do("HGET","Self_SelfSupplierInfo",supplier_id)) supplierInfo,_ := gredis.String(redisConn.Do("HGET","Self_SelfSupplierInfo",supplier_id))
supplier_name = gjson.Get(supplierInfo,"supplier_name").String()
} }
A.Set("supplier_name", supplier_name) A.Set("supplier_name", supplier_name)
...@@ -148,8 +177,6 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -148,8 +177,6 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
A.Set("pdf", gjson.Get(info, "pdf").String()) A.Set("pdf", gjson.Get(info, "pdf").String())
} }
A.Set("scm_brand_name", gjson.Get(info, "scm_brand_name").String()) // A.Set("scm_brand_name", gjson.Get(info, "scm_brand_name").String()) //
A.Set("actual_stock", gjson.Get(info, "actual_stock").Int()) // A.Set("actual_stock", gjson.Get(info, "actual_stock").Int()) //
A.Set("ac_type", gjson.Get(info, "ac_type").Int()) // A.Set("ac_type", gjson.Get(info, "ac_type").Int()) //
...@@ -198,8 +225,7 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR ...@@ -198,8 +225,7 @@ func (qs *ZiyingService) ZyGoodsDetail(ctx *gin.Context,goodsIds []string,goodsR
A.Set("quota_num",gjson.Get(goods_quota,"num").Int()) A.Set("quota_num",gjson.Get(goods_quota,"num").Int())
} }
//处理是否能购买 //处理是否能购买
if gjson.Get(info, "status").String() != "1" || if gjson.Get(info, "status").String() != "1" || len(ladderPriceArr) == 0 {
len(ladder_price_arr) == 0 {
A.Set("is_buy",0) A.Set("is_buy",0)
}else{ }else{
A.Set("is_buy",1) A.Set("is_buy",1)
......
...@@ -11,5 +11,6 @@ go env -w GOPROXY=https://goproxy.cn,direct ...@@ -11,5 +11,6 @@ go env -w GOPROXY=https://goproxy.cn,direct
go build -o ${Cur_Dir}"/cmd/http/http" ${Cur_Dir}"/cmd/http/http_server.go" go build -o ${Cur_Dir}"/cmd/http/http" ${Cur_Dir}"/cmd/http/http_server.go"
chmod +x ${Cur_Dir}"/cmd/http/http" chmod +x ${Cur_Dir}"/cmd/http/http"
chmod +x ${Cur_Dir}"/update.sh" chmod +x ${Cur_Dir}"/update.sh"
#supervisorctl restart go_sku_server_60005:*
echo "更新执行成功" echo "更新执行成功"
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