This commit is contained in:
richboo111
2023-08-30 15:06:19 +08:00
parent 50b59ae4b0
commit 802f04bd28
8 changed files with 187 additions and 29 deletions

View File

@@ -175,6 +175,7 @@ func SetMessageDetail(req *JXMsg, vendorID int, elmAppID string) error {
//生成京西消息ID detail
msgID := GenMsgDetailID(req, vendorID, elmAppID)
data, _ := json.Marshal(req)
globals.SugarLogger.Debugf("SetMessageDetail data=%s", string(data))
err := rdb.RPush(msgID, string(data))
ok, err := rdb.ExpireResult(msgID, ExpireTimeDay)
if err != nil || !ok {
@@ -198,6 +199,7 @@ func SetUserList(jxMsg *JXMsg, userList *UserMessageList, vendorID int, elmAppID
}
//存储当前数据
data, _ := json.Marshal(userList)
globals.SugarLogger.Debugf("SetUserList data=%s", string(data))
err = rdb.RPush(msgID, string(data))
ok, err := rdb.ExpireResult(msgID, ExpireTimeDay)
if err != nil || !ok {

View File

@@ -2,6 +2,9 @@ package mtwm
import (
"encoding/json"
"regexp"
"strings"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -12,8 +15,6 @@ import (
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"git.rosy.net.cn/jx-callback/globals"
"regexp"
"strings"
)
const (
@@ -241,6 +242,34 @@ func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID in
return err
}
// GetCategoryAttrList 根据末级类目id获取类目属性列表
func GetCategoryAttrList(appOrgCode string, tagID int) (categoryAttrListResult []*mtwmapi.CategoryAttrListResult, err error) {
if resp, err := getAPI(appOrgCode, 0, "").CategoryAttrList(int64(tagID)); err == nil {
return resp, nil
}
return nil, err
}
//GetCategoryAttrValueList 查询特殊属性的属性值列表
func GetCategoryAttrValueList(appOrgCode, keyword string, attrID int) (categoryAttrValueListResult []*mtwmapi.CategoryAttrValueListResult, err error) {
if attrID != utils.Str2Int(mtwmapi.SpecialAttrBrand) && attrID != utils.Str2Int(mtwmapi.SpecialAttrProducer) || len(keyword) == 0 || len(appOrgCode) == 0 {
return nil, nil
}
if resp, err := getAPI(appOrgCode, 0, "").CategoryAttrValueList(int64(attrID), keyword); err == nil {
return resp, nil
}
return nil, nil
}
// GetRetailRecommendTag 根据商品UPC或名称或类目ID查询平台推荐类目及类目属性信息
func GetRetailRecommendTag(appOrgCode, appPoiCode, name string, tagID, tagType int) (*mtwmapi.RetailRecommendTagResp, error) {
if resp, err := getAPI(appOrgCode, 0, "").RetailRecommendTag(name, appPoiCode, tagID, tagType); err == nil {
return resp, nil
} else {
return nil, err
}
}
//批量更新商品进货价
func BatchSetRestockingPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, param []*mtwmapi.SpuData) error {
if err := getAPI(getStoreVendorOrgCode(storeID), storeID, "").BatchSetRestockingPrice(ctx.GetTrackInfo(), vendorStoreID, param); err != nil {
@@ -323,7 +352,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
foodData["min_order_count"] = 1
}
foodData["unit"] = storeSku.Unit
attr := SwitchAttr(storeSku.VendorVendorCatID)
//todo 增加商品必填属性
attr := SwitchAttr(getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID), vendorStoreID, storeSku.VendorVendorCatID, storeSku.NameID, storeSku.Name, isCreate)
if attr != "" {
foodData["common_attr_value"] = attr
}
@@ -452,27 +482,92 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
return failedList, err
}
func SwitchAttr(vendorCatID int64) (attrs string) {
switch vendorCatID {
case 200002727:
return mtwmapi.MtwmSkuAttr200002727
case 200001555:
return mtwmapi.MtwmSkuAttr200001555
case 200002728:
return mtwmapi.MtwmSkuAttr200002728
case 200001519, 200000592:
return mtwmapi.MtwmSkuAttr200000592
case 200002704, 200002731:
return mtwmapi.MtwmSkuAttr200002731
case 200002716:
return mtwmapi.MtwmSkuAttr200002716
case 200002667, 200002713, 200002670:
return mtwmapi.MtwmSkuAttr200002670
case 200002680:
return mtwmapi.MtwmSkuAttr200002680
default:
return ""
// CommonAttrValue 类目对应属性值
type CommonAttrValue struct {
AttrID int `json:"attr_id"` //普通属性Id
AttrName string `json:"attr_name"` //普通属性名称
ValueList []ValueList `json:"valueList"`
}
type ValueList struct {
ValueID int `json:"value_id"` //普通属性值Id当属性值录入方式为文本时该参数无需上传若该普通属性可扩展则支持自定义 1.负值 2.同一个商品的同一个普通属性内唯一
Value string `json:"value"` //普通属性值名称(与普通属性值Id一一对应),支持自定义。
}
func SwitchAttr(apiObj *mtwmapi.API, vendorStoreID string, vendorCatID int64, nameID int, name string, isNeed bool) (attrs string) {
var (
db *dao.DaoDB
tempCatID int64
attrValue CommonAttrValue
attrValues []CommonAttrValue
)
if isNeed == false && nameID != 0 { //是否为纯创建
if tData, err := dao.GetSkuNames(db, []int{nameID}, nil, "", false); err == nil && len(tData) > 0 {
if tData[0].MtAttribute != "[]" && tData[0].MtAttribute != "{}" && tData[0].MtAttribute != "" {
return tData[0].MtAttribute
}
}
}
if vendorCatID == 0 { //创建商品时无分类,使用推荐分类
if comTag, err := apiObj.RetailRecommendTag(name, vendorStoreID, 0, mtwmapi.TypeCategory); err == nil && comTag.TagID != 0 {
tempCatID = int64(comTag.TagID)
}
} else {
tempCatID = vendorCatID
}
//根据类目id获取类目属性列表
if attrList, err := apiObj.CategoryAttrList(tempCatID); err == nil && len(attrList) > 0 {
for _, v := range attrList {
if v.Need == mtwmapi.NeedYes {
attrValue = CommonAttrValue{
AttrID: utils.Str2Int(v.AttrID),
AttrName: v.AttrName,
}
if v.AttrID == mtwmapi.SpecialAttrBrand || v.AttrID == mtwmapi.SpecialAttrProducer { //单独获取特殊属性
if data, err1 := apiObj.CategoryAttrValueList(utils.Str2Int64(v.AttrID), name); err1 == nil && len(data) > 0 {
attrValue.ValueList = []ValueList{{ //默认取推荐第一个
ValueID: utils.Str2Int(data[0].ValueID),
Value: data[0].Value,
}}
}
} else {
if len(v.ValueList) > 0 {
attrValue.ValueList = []ValueList{{
ValueID: utils.Str2Int(v.ValueList[0].ValueID),
Value: v.ValueList[0].Value,
}}
}
}
}
}
attrValues = append(attrValues, attrValue)
temp, _ := json.Marshal(attrValues)
attrs = string(temp)
globals.SugarLogger.Debugf("SwitchAttr attrValues=%s", utils.Format4Output(attrValues, false))
} else {
switch vendorCatID { //兜底处理
case 200002727:
attrs = mtwmapi.MtwmSkuAttr200002727
case 200001555:
attrs = mtwmapi.MtwmSkuAttr200001555
case 200002728:
attrs = mtwmapi.MtwmSkuAttr200002728
case 200001519, 200000592:
attrs = mtwmapi.MtwmSkuAttr200000592
case 200002704, 200002731:
attrs = mtwmapi.MtwmSkuAttr200002731
case 200002716:
attrs = mtwmapi.MtwmSkuAttr200002716
case 200002667, 200002713, 200002670:
attrs = mtwmapi.MtwmSkuAttr200002670
case 200002680:
attrs = mtwmapi.MtwmSkuAttr200002680
default:
attrs = ""
}
}
//更新进数据库
dao.UpdateSkuNameMtAttr(db, int64(nameID), attrs)
globals.SugarLogger.Debugf("SwitchAttr attrs=%s", utils.Format4Output(attrs, false))
return attrs
}