Commit ce2e459c by hcy001
parents b3910cdb 5f8e2f63
...@@ -53,6 +53,7 @@ type Api struct { ...@@ -53,6 +53,7 @@ type Api struct {
type Oss struct { type Oss struct {
UploadKey string `ini:"upload_key"` UploadKey string `ini:"upload_key"`
IsDebug int `ini:"is_debug"`
} }
var DatabaseSetting = &Database{} var DatabaseSetting = &Database{}
......
...@@ -36,7 +36,7 @@ func GetDBCms() DbInfo { ...@@ -36,7 +36,7 @@ func GetDBCms() DbInfo {
"mysql", "mysql",
"ichuntcms", "ichuntcms",
"ichuntcms#zsyM", "ichuntcms#zsyM",
"192.168.2.232", "192.168.1.252",
"3306", "3306",
"ichuntcms", "ichuntcms",
} }
...@@ -47,7 +47,7 @@ func GetDBLiexin() DbInfo { ...@@ -47,7 +47,7 @@ func GetDBLiexin() DbInfo {
"mysql", "mysql",
"liexin", "liexin",
"liexin#zsyM", "liexin#zsyM",
"192.168.2.232", "192.168.1.252",
"3306", "3306",
"liexin", "liexin",
} }
......
package common package common
import ( import (
"bom_server/configs"
"crypto/md5" "crypto/md5"
"encoding/hex" "encoding/hex"
"encoding/json"
"fmt"
"github.com/shopspring/decimal" "github.com/shopspring/decimal"
"github.com/syyongx/php2go" "github.com/syyongx/php2go"
"reflect" "reflect"
"regexp"
"strconv" "strconv"
"strings"
"time"
) )
/*
提取字符串的字母数字并去掉空格
@param string target_str 目标字符串
@return 返回格式化后字符串
*/
func DrawLetterNum(target_str string) (str string) {
if target_str == "" {
return ""
}
replace, _ := regexp.Compile("[^A-Za-z0-9]+")
return strings.ToUpper(replace.ReplaceAllString(target_str, ""))
}
/*
定时任务打印输出
@parm jsonStr 需要json输出的内容
*/
func PrintDebug(str ...interface{}) {
flag := configs.OssSetting.IsDebug
if flag == 0 {
return
}
temp := "---"+time.Now().Format("2006-01-02 15:04:05");
for _,jsonStr := range str {
if v, p := jsonStr.(string); p {
temp = temp +"---"+ v
}else{
jsonData,err := json.Marshal(jsonStr)
if err != nil {
fmt.Println("错误:-----",err)
}
temp = temp +"---"+ string(jsonData)
}
}
fmt.Println(temp)
}
// Md5 md5() // Md5 md5()
func Md5(str string) string { func Md5(str string) string {
hash := md5.New() hash := md5.New()
......
...@@ -2,6 +2,7 @@ package logic ...@@ -2,6 +2,7 @@ package logic
import ( import (
"bom_server/configs" "bom_server/configs"
"bom_server/internal/common"
"bom_server/internal/model" "bom_server/internal/model"
"encoding/json" "encoding/json"
"errors" "errors"
...@@ -94,11 +95,20 @@ func UpdateBomItem(bomId, bomItemId int) (err error) { ...@@ -94,11 +95,20 @@ func UpdateBomItem(bomId, bomItemId int) (err error) {
bomItems = GetStandardAttrs(bomItems) bomItems = GetStandardAttrs(bomItems)
//第一次去精确匹配,没有再去模糊匹配 //第一次去精确匹配,没有再去模糊匹配
var goodsMapList []GoodsMap var goodsMapList []GoodsMap
goodsMapList, err = getUpdateGoodsData(bomId, bomItems, where.DeliveryType, where.Sort, client, true) itemsStatus := 2
goodsMapList, err = getUpdateGoodsData(bomId, bomItems, where.DeliveryType, where.Sort, client, true,false)
common.PrintDebug("精确匹配:",goodsMapList)
if len(goodsMapList) == 0 { if len(goodsMapList) == 0 {
goodsMapList, err = getUpdateGoodsData(bomId, bomItems, where.DeliveryType, where.Sort, client, false) //替代型号匹配
if err != nil { goodsMapList, err = getUpdateGoodsData(bomId, bomItems, where.DeliveryType, where.Sort, client, false,true)
return common.PrintDebug("替代型号匹配:",goodsMapList)
itemsStatus = 5; //替代物料匹配
if len(goodsMapList) == 0 {
goodsMapList, err = getUpdateGoodsData(bomId, bomItems, where.DeliveryType, where.Sort, client, false,false)
common.PrintDebug("模糊匹配:",goodsMapList)
if len(goodsMapList) != 0 {
itemsStatus = 6; //模糊匹配
}
} }
} }
//fmt.Println(goodsMapList) //fmt.Println(goodsMapList)
...@@ -111,7 +121,7 @@ func UpdateBomItem(bomId, bomItemId int) (err error) { ...@@ -111,7 +121,7 @@ func UpdateBomItem(bomId, bomItemId int) (err error) {
return return
} }
} else { } else {
err = UpdateGoodsData(goodsMapList) err = UpdateGoodsData(goodsMapList,itemsStatus)
if err != nil { if err != nil {
return return
} }
......
package logic package logic
import ( import (
"bom_server/internal/common"
"bom_server/internal/model" "bom_server/internal/model"
"github.com/prometheus/common/log" "github.com/prometheus/common/log"
"math" "math"
...@@ -28,7 +29,7 @@ func GetBomMatching(bomId, bomItemId int) (bomMatching model.BomItemMatching) { ...@@ -28,7 +29,7 @@ func GetBomMatching(bomId, bomItemId int) (bomMatching model.BomItemMatching) {
} }
//根据matchingList去修改 //根据matchingList去修改
func BatchSaveMatchings(bomId int, matchingList []model.BomItemMatching) (err error) { func BatchSaveMatchings(bomId int, matchingList []model.BomItemMatching,status ...int) (err error) {
bomIdStr := strconv.FormatInt(int64(bomId), 10) bomIdStr := strconv.FormatInt(int64(bomId), 10)
tableEnd := string(bomIdStr[len(bomIdStr)-1]) tableEnd := string(bomIdStr[len(bomIdStr)-1])
tableName := "lie_bom_item_matching_" + tableEnd tableName := "lie_bom_item_matching_" + tableEnd
...@@ -56,9 +57,34 @@ func BatchSaveMatchings(bomId int, matchingList []model.BomItemMatching) (err er ...@@ -56,9 +57,34 @@ func BatchSaveMatchings(bomId int, matchingList []model.BomItemMatching) (err er
} else { } else {
itemStatus = 3 itemStatus = 3
} }
is_select := 1;
if len(status) > 0 { //todo 增加类型: 5 替代型号匹配 6 模糊匹配
itemStatus = status[0]
if itemStatus == 4 || itemStatus == 5 || itemStatus == 6 {
is_select = 0
}
}
//查询需求数量 跟 当前库存比较
var bomInfo model.BomItem
model.Db.Table("lie_bom_item_"+ tableEnd).Where("bom_item_id = ?", matching.BomItemID).First(&bomInfo)
if bomInfo.Number > matching.Stock {
common.PrintDebug("精确匹配算出来库存不足")
is_select = 0;
itemStatus = 3
}
if itemStatus == 3 {
is_select = 0;
}
err = model.Db.Table("lie_bom_item_"+tableEnd).Where("bom_item_id = ?", matching.BomItemID). err = model.Db.Table("lie_bom_item_"+tableEnd).Where("bom_item_id = ?", matching.BomItemID).
Updates(map[string]interface{}{"item_status": itemStatus, "update_time": now, "is_select": 1}).Error Updates(map[string]interface{}{"item_status": itemStatus, "update_time": now, "is_select": is_select}).Error
if err != nil { if err != nil {
common.PrintDebug(err)
return return
} }
//更新商品价格和库存的队列 //更新商品价格和库存的队列
......
...@@ -2,6 +2,7 @@ package logic ...@@ -2,6 +2,7 @@ package logic
import ( import (
"bom_server/configs" "bom_server/configs"
"bom_server/internal/common"
"bom_server/internal/model" "bom_server/internal/model"
"encoding/json" "encoding/json"
"github.com/ichunt2019/go-rabbitmq/utils/rabbitmq" "github.com/ichunt2019/go-rabbitmq/utils/rabbitmq"
...@@ -22,8 +23,12 @@ type GoodsMap struct { ...@@ -22,8 +23,12 @@ type GoodsMap struct {
DeliveryType int DeliveryType int
} }
func UpdateGoodsData(goodsMapList []GoodsMap) (err error) { func UpdateGoodsData(goodsMapList []GoodsMap,status ...int) (err error) {
//根据goodsIds去商品服务获取对应的商品信息 //根据goodsIds去商品服务获取对应的商品信息
if len(goodsMapList) == 0 {
return
}
var ( var (
goodsIds []string goodsIds []string
bomId int bomId int
...@@ -61,15 +66,25 @@ func UpdateGoodsData(goodsMapList []GoodsMap) (err error) { ...@@ -61,15 +66,25 @@ func UpdateGoodsData(goodsMapList []GoodsMap) (err error) {
} }
} }
} }
//先找出没有匹配到商品的进行批量修改状态 //先找出没有匹配到商品的进行批量修改状态
err = batchUpdateItemStatus(bomId, noGoodsInfoItemIdList) err = batchUpdateItemStatus(bomId, noGoodsInfoItemIdList)
if err != nil { if err != nil {
return return
} }
err = BatchSaveMatchings(bomId, bomMatchingList)
if err != nil { if len(status) > 0 { //todo 增加类型: 5 替代型号匹配 6 模糊匹配
return err = BatchSaveMatchings(bomId, bomMatchingList,status[0])
if err != nil {
return
}
}else{
err = BatchSaveMatchings(bomId, bomMatchingList)
if err != nil {
return
}
} }
return return
} }
...@@ -89,6 +104,9 @@ func GetGoodsInfo(goodsIdsStr string) (goodsList []model.ApiGoods, err error) { ...@@ -89,6 +104,9 @@ func GetGoodsInfo(goodsIdsStr string) (goodsList []model.ApiGoods, err error) {
} }
//fmt.Println(goodsIdsStr) //fmt.Println(goodsIdsStr)
resp, err := req.Post(goodsServerUrl+"/synchronization", params) resp, err := req.Post(goodsServerUrl+"/synchronization", params)
common.PrintDebug("请求商品详情:",goodsServerUrl+"/synchronization"," 参数:",params , "结果:",len(resp.String()))
if err != nil { if err != nil {
return return
} }
...@@ -194,6 +212,8 @@ func MatchGoodsInfo(goods model.ApiGoods, goodsMap GoodsMap) (bomMatching model. ...@@ -194,6 +212,8 @@ func MatchGoodsInfo(goods model.ApiGoods, goodsMap GoodsMap) (bomMatching model.
//阶梯价处理 //阶梯价处理
if len(goods.LadderPrice) > 0 { if len(goods.LadderPrice) > 0 {
ladderPriceStr, err := json.Marshal(goods.LadderPrice) ladderPriceStr, err := json.Marshal(goods.LadderPrice)
common.PrintDebug(string(ladderPriceStr))
if err != nil { if err != nil {
return model.BomItemMatching{}, err return model.BomItemMatching{}, err
} }
......
...@@ -91,42 +91,80 @@ func SearchGoods(bomId int, bomItems []model.BomItem, deliveryType, sort int, wg ...@@ -91,42 +91,80 @@ func SearchGoods(bomId int, bomItems []model.BomItem, deliveryType, sort int, wg
} else { } else {
needDealBomItems = bomItems[i : i+perNumber] needDealBomItems = bomItems[i : i+perNumber]
} }
//第一次先去精确匹配 //todo 精确匹配: 第一次先去精确匹配
goodsMapList, err := getUpdateGoodsData(bomId, needDealBomItems, deliveryType, sort, client, true)
common.PrintDebug("精确匹配型号:",needDealBomItems)
exactList, err := getUpdateGoodsData(bomId, needDealBomItems, deliveryType, sort, client, true,false)
if err != nil { if err != nil {
return err return err
} }
common.PrintDebug("精确匹配结果:",exactList)
//要删除已经精确匹配过的bomItem,得到需要去模糊匹配的商品 //要删除已经精确匹配过的bomItem,得到需要去模糊匹配的商品
var fuzzyBomItems []model.BomItem var fuzzyBomItems []model.BomItem
for _, bomItem := range needDealBomItems { for _, bomItem := range needDealBomItems {
//不在精确匹配结果里面的,同时商品名称不能为空的 //不在精确匹配结果里面的,同时商品名称不能为空的
if !checkInGoodsMap(bomItem, goodsMapList) && bomItem.GoodsName != "" { if !checkInGoodsMap(bomItem, exactList) {
fuzzyBomItems = append(fuzzyBomItems, bomItem) fuzzyBomItems = append(fuzzyBomItems, bomItem)
} }
} }
//第二次去模糊匹配
fuzzyGoodsMapList, err := getUpdateGoodsData(bomId, fuzzyBomItems, deliveryType, sort, client, false) //todo 替代型号匹配 2021.4.17 替代型号参与匹配,优先取原始型号,原始型号无法购买再推荐替代型号
common.PrintDebug("替代型号匹配型号:",fuzzyBomItems)
AlikeGoodsMapList, err := getUpdateGoodsData(bomId, fuzzyBomItems, deliveryType, sort, client, false,true)
if err != nil {
return err
}
common.PrintDebug("替代型号匹配结果:",AlikeGoodsMapList)
//删除已经类似料匹配的型号
var fuzzyBomItems2 []model.BomItem
for _, bomItem := range fuzzyBomItems {
//不在精确匹配结果里面的,同时商品名称不能为空的
if !checkInGoodsMap(bomItem, AlikeGoodsMapList) {
fuzzyBomItems2 = append(fuzzyBomItems2, bomItem)
}
}
//todo 模糊匹配
common.PrintDebug("模糊匹配型号:",fuzzyBomItems2)
fuzzyGoodsMapList, err := getUpdateGoodsData(bomId, fuzzyBomItems2, deliveryType, sort, client, false,false)
if err != nil { if err != nil {
return err return err
} }
common.PrintDebug("模糊匹配结果",fuzzyGoodsMapList)
//再删除模糊匹配到的数据,就得到完全没有匹配的数据了 //再删除模糊匹配到的数据,就得到完全没有匹配的数据了
var notMatchBomItems []model.BomItem var notMatchBomItems []model.BomItem
var needMatchGoodsMapList = append(goodsMapList, fuzzyGoodsMapList...) for _, bomItem := range fuzzyBomItems2 {
for _, bomItem := range needDealBomItems { if !checkInGoodsMap(bomItem, fuzzyGoodsMapList) {
if !checkInGoodsMap(bomItem, needMatchGoodsMapList) {
notMatchBomItems = append(notMatchBomItems, bomItem) notMatchBomItems = append(notMatchBomItems, bomItem)
} }
} }
common.PrintDebug("没有匹配到的bom 明细",notMatchBomItems)
//先去处理没有匹配到的数据 //先去处理没有匹配到的数据
err = UpdateNoMatchBomItem(notMatchBomItems, true) err = UpdateNoMatchBomItem(notMatchBomItems, true)
if err != nil { if err != nil {
return err return err
} }
//然后去处理匹配到的数据 //精确匹配数据
err = UpdateGoodsData(needMatchGoodsMapList) err = UpdateGoodsData(exactList)
if err != nil { if err != nil {
return err return err
} }
//替代物料数据
err = UpdateGoodsData(AlikeGoodsMapList,5)
if err != nil {
return err
}
//模糊匹配
err = UpdateGoodsData(fuzzyGoodsMapList,6)
if err != nil {
return err
}
} }
return return
} }
...@@ -180,14 +218,14 @@ func checkInGoodsMap(bom model.BomItem, goodsMapList []GoodsMap) bool { ...@@ -180,14 +218,14 @@ func checkInGoodsMap(bom model.BomItem, goodsMapList []GoodsMap) bool {
return false return false
} }
func getUpdateGoodsData(bomId int, bomItems []model.BomItem, deliveryType, sort int, client *es.Client, rawSearch bool) (goodsMapList []GoodsMap, err error) { func getUpdateGoodsData(bomId int, bomItems []model.BomItem, deliveryType, sort int, client *es.Client, rawSearch bool,isAlike bool) (goodsMapList []GoodsMap, err error) {
if len(bomItems) == 0 { if len(bomItems) == 0 {
return return
} }
index := configs.ESSetting.GoodsIndexName index := configs.ESSetting.GoodsIndexName
//如果是大陆收货(type=1),就要包含专卖,其中自营单独查 //如果是大陆收货(type=1),就要包含专卖,其中自营单独查
index = index + ",zhuanmai,liexin_ziying" index = index + ",zhuanmai,liexin_ziying"
goodsMapList, err = search(index, bomId, bomItems, deliveryType, sort, client, rawSearch) goodsMapList, err = search(index, bomId, bomItems, deliveryType, sort, client, rawSearch,isAlike)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -7,11 +7,10 @@ import ( ...@@ -7,11 +7,10 @@ import (
"context" "context"
"encoding/json" "encoding/json"
es "gopkg.in/olivere/elastic.v5" es "gopkg.in/olivere/elastic.v5"
"regexp"
"strings" "strings"
) )
func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sort int, client *es.Client, rawSearch bool) (goodsMapList []GoodsMap, err error) { func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sort int, client *es.Client, rawSearch bool,isAlike bool) (goodsMapList []GoodsMap, err error) {
//先去自营查一遍 //先去自营查一遍
search := client.MultiSearch().Index(index) search := client.MultiSearch().Index(index)
//是否已经搜索过标签 //是否已经搜索过标签
...@@ -33,8 +32,12 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor ...@@ -33,8 +32,12 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor
paramsRawSearch = true paramsRawSearch = true
} }
//构建一个goods_name对应的bomItems列表 //构建一个goods_name对应的bomItems列表
searchRequest := getSearchParams(index, bom, sort, paramsRawSearch) searchRequest := getSearchParams(index, bom, sort, paramsRawSearch,rawSearch,isAlike)
searchFlag = true searchFlag = true
common.PrintDebug("查询es索引,","是否原生rawSearch:",rawSearch," 是否类似:",isAlike,index)
common.PrintDebug(searchRequest.Body())
//randInt := rand.Intn(10) //randInt := rand.Intn(10)
//time.Sleep(10 * time.Millisecond) //time.Sleep(10 * time.Millisecond)
search.Add(searchRequest) search.Add(searchRequest)
...@@ -44,6 +47,10 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor ...@@ -44,6 +47,10 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor
return nil, err return nil, err
} }
res, err := search.Do(context.Background()) res, err := search.Do(context.Background())
common.PrintDebug(res.Responses)
if err != nil { if err != nil {
return return
} }
...@@ -80,12 +87,12 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor ...@@ -80,12 +87,12 @@ func search(index string, bomId int, bomItems []model.BomItem, deliveryType, sor
} }
//构建请求参数 //构建请求参数
func getSearchParams(index string, bomItem model.BomItem, sort int, flag bool) (searchRequest *es.SearchRequest) { func getSearchParams(index string, bomItem model.BomItem, sort int, flag bool,rawSearch bool,isAlike bool) (searchRequest *es.SearchRequest) {
//fmt.Println("商品名称 : ", bomItem.GoodsName) //fmt.Println("商品名称 : ", bomItem.GoodsName)
//fmt.Println("参数列表 : ", bomItem.AttrList) //fmt.Println("参数列表 : ", bomItem.AttrList)
bomItem.Encap = TransformEncap(bomItem.Encap) bomItem.Encap = TransformEncap(bomItem.Encap)
//fmt.Println("封装 : ", bomItem.Encap) //fmt.Println("封装 : ", bomItem.Encap)
query := getTermQuery(bomItem, sort, flag) query := getTermQuery(bomItem, sort, flag,rawSearch,isAlike)
source := es.NewSearchSource().Query(query) source := es.NewSearchSource().Query(query)
if sort == 1 { if sort == 1 {
//source.Sort("_score", false) //source.Sort("_score", false)
...@@ -100,19 +107,17 @@ func getSearchParams(index string, bomItem model.BomItem, sort int, flag bool) ( ...@@ -100,19 +107,17 @@ func getSearchParams(index string, bomItem model.BomItem, sort int, flag bool) (
//source.Sort("_score", false) //source.Sort("_score", false)
source.Sort("stock", false) source.Sort("stock", false)
} }
source = source.From(0).Size(1) source = source.From(0).Size(1)
searchRequest = es.NewSearchRequest().Source(source) searchRequest = es.NewSearchRequest().Source(source)
return searchRequest return searchRequest
} }
//构建term条件 //构建term条件
func getTermQuery(bomItem model.BomItem, sort int, flag bool) (query *es.BoolQuery) { func getTermQuery(bomItem model.BomItem, sort int, flag bool,rawSearch bool,isAlike bool) (query *es.BoolQuery) {
query = es.NewBoolQuery() query = es.NewBoolQuery()
goodsName := common.DrawLetterNum(bomItem.GoodsName)
if flag { if flag {
field := "auto_goods_name.raw"
replace, _ := regexp.Compile("[^A-Za-z0-9]+")
goodsName := replace.ReplaceAllString(bomItem.GoodsName, "")
goodsName = strings.ToUpper(goodsName)
//用于判断下面的miniShould,因为下面的参数里面,如果出现阻值的,用的是should语句 //用于判断下面的miniShould,因为下面的参数里面,如果出现阻值的,用的是should语句
//为了保证所有参数都必须参与搜索,所以要用miniShould去做限制 //为了保证所有参数都必须参与搜索,所以要用miniShould去做限制
//var shouldNumber int //var shouldNumber int
...@@ -145,9 +150,12 @@ func getTermQuery(bomItem model.BomItem, sort int, flag bool) (query *es.BoolQue ...@@ -145,9 +150,12 @@ func getTermQuery(bomItem model.BomItem, sort int, flag bool) (query *es.BoolQue
} else { } else {
query = query.Must(es.NewTermsQuery("attr_bom", "$_$")) query = query.Must(es.NewTermsQuery("attr_bom", "$_$"))
} }
} else {
query = query.Filter(es.NewTermQuery(field, goodsName))
} }
if goodsName != "" {
query = query.Filter(es.NewTermQuery("auto_goods_name.raw", goodsName))
}
//判断是否存在brandName并且匹配不到对应的标准品牌 //判断是否存在brandName并且匹配不到对应的标准品牌
if bomItem.BrandName != "" { if bomItem.BrandName != "" {
bomItem.BrandName = strings.ToUpper(bomItem.BrandName) bomItem.BrandName = strings.ToUpper(bomItem.BrandName)
...@@ -157,19 +165,33 @@ func getTermQuery(bomItem model.BomItem, sort int, flag bool) (query *es.BoolQue ...@@ -157,19 +165,33 @@ func getTermQuery(bomItem model.BomItem, sort int, flag bool) (query *es.BoolQue
if bomItem.Encap != "" { if bomItem.Encap != "" {
query = query.Must(es.NewTermQuery("attr_bom", "FZ€"+bomItem.Encap)) query = query.Must(es.NewTermQuery("attr_bom", "FZ€"+bomItem.Encap))
} }
//搜索库存
query = query.Should(es.NewRangeQuery("stock").Gte(bomItem.Number * bomItem.Amount)) //精确匹配
} else { if rawSearch {
query = query.Must(es.NewTermQuery("auto_goods_name", bomItem.GoodsName)) query = query.Must(es.NewRangeQuery("stock").Gte(bomItem.Number * bomItem.Amount)) //搜索库存
}else{
query = query.Should(es.NewRangeQuery("stock").Gte(bomItem.Number * bomItem.Amount)) //搜索库存
}
} else if isAlike && goodsName != "" { //todo 推荐型号搜索
query = query.Must(es.NewTermsQuery("alike_spu_name.raw", goodsName))
} else if goodsName != "" {
query = query.Must(es.NewTermQuery("goods_name", goodsName))
} }
common.PrintDebug("isalike:",isAlike)
//只显示库存大于0的数据 //只显示库存大于0的数据
query.Must(es.NewRangeQuery("stock").Gt(0)) if rawSearch == false { //不是精确匹配
query.Must(es.NewRangeQuery("stock").Gt(0))
}
//按价格排序 //按价格排序
//if sort == 2 || sort == 1 { //if sort == 2 || sort == 1 {
// query = query.Filter(es.NewRangeQuery("single_price").Gt(0)) // query = query.Filter(es.NewRangeQuery("single_price").Gt(0))
//} //}
//只显示起订量大于0 //只显示起订量大于0
query.Must(es.NewRangeQuery("moq").Gt(0)) query.Must(es.NewRangeQuery("moq").Gt(0).Lte(bomItem.Number*bomItem.Amount)) //todo 2021.4.17 起订量高于需求数量的排除;
if configs.ApiSetting.Mode != "debug" { if configs.ApiSetting.Mode != "debug" {
query = query.Filter(es.NewTermQuery("status", 1)) query = query.Filter(es.NewTermQuery("status", 1))
} }
......
#适用于更新GOSKU代码服务,并且重启代码
#!/bin/bash
Cur_Dir=$(pwd)
echo $Cur_Dir
cd $Cur_Dir
git reset --hard HEAD
git pull
rm -f ${Cur_Dir}"/cmd/main"
export GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
branch_name=$(git name-rev --name-only HEAD)
echo $branch_name
git pull origin $branch_name
go build -o ${Cur_Dir}"/cmd/main" ${Cur_Dir}"/cmd/main.go"
go build -o ${Cur_Dir}"/server/main" ${Cur_Dir}"/server/main.go"
chmod +x ${Cur_Dir}"/cmd/main"
chmod +x ${Cur_Dir}"/server/main"
chmod +x ${Cur_Dir}"/update.sh"
supervisorctl restart bom_server_cmd:*
supervisorctl restart bom_server_http_60010:*
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