添加美团服务商配置,修改抖音自动获取品牌
This commit is contained in:
@@ -882,9 +882,27 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
|||||||
if toTime.Sub(fromTime).Hours() > 24 {
|
if toTime.Sub(fromTime).Hours() > 24 {
|
||||||
isLongTime = true
|
isLongTime = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(storeIDList) >= 2 {
|
||||||
|
globals.SugarLogger.Errorf("GetStoresOrderSaleInfoNew err : [%v]", storeIDList)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取门店绑定美团的详情,是否为服务商.
|
||||||
|
// 如果是服务商将不再统计美团的订单!其他平台正常统计!
|
||||||
|
storeMapList, err := dao.GetStoresMapList2(db, []int{model.VendorIDMTWM}, storeIDList, nil, model.StoreStatusAll, 0, "", "", "", false)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
isService := 0
|
||||||
|
if len(storeMapList) > 0 {
|
||||||
|
for _, v := range storeMapList {
|
||||||
|
isService = v.IsService
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
orderIDMap := make(map[string]struct{})
|
orderIDMap := make(map[string]struct{})
|
||||||
var vendorOrderIDs []string
|
var vendorOrderIDs []string
|
||||||
orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, true)
|
orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, true, isService)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -900,13 +918,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
|
|||||||
afsSkuList, err = dao.GetStoreAfsOrderSkuList2(db, vendorOrderIDs)
|
afsSkuList, err = dao.GetStoreAfsOrderSkuList2(db, vendorOrderIDs)
|
||||||
orderSkuList4Afs, err = dao.GetStoreOrderSkuList4Afs2(db, vendorOrderIDs)
|
orderSkuList4Afs, err = dao.GetStoreOrderSkuList4Afs2(db, vendorOrderIDs)
|
||||||
}
|
}
|
||||||
//afsSkuList, err := dao.GetStoreAfsOrderSkuList(db, storeIDList, fromTime, toTime, []int{model.AfsOrderStatusFinished}, true)
|
|
||||||
//if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
//}
|
|
||||||
//if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
//}
|
|
||||||
orderSkuHandler := func(skuList []*dao.OrderSkuWithActualPayPrice) (orderMap map[string]*model.GoodsOrder, orderSkuMap map[string]*dao.OrderSkuWithActualPayPrice, saleInfoMap map[int64]*dao.StoresOrderSaleInfo) {
|
orderSkuHandler := func(skuList []*dao.OrderSkuWithActualPayPrice) (orderMap map[string]*model.GoodsOrder, orderSkuMap map[string]*dao.OrderSkuWithActualPayPrice, saleInfoMap map[int64]*dao.StoresOrderSaleInfo) {
|
||||||
orderMap = make(map[string]*model.GoodsOrder)
|
orderMap = make(map[string]*model.GoodsOrder)
|
||||||
orderSkuMap = make(map[string]*dao.OrderSkuWithActualPayPrice)
|
orderSkuMap = make(map[string]*dao.OrderSkuWithActualPayPrice)
|
||||||
|
|||||||
@@ -376,7 +376,7 @@ func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID in
|
|||||||
return skus, err
|
return skus, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) {
|
func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int, isFinish bool, isService int) (skuList []*OrderSkuWithActualPayPrice, err error) {
|
||||||
// order_finished_at
|
// order_finished_at
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.*,
|
SELECT t1.*,
|
||||||
@@ -403,6 +403,11 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
|
|||||||
sql += " AND t2.status IN (" + GenQuestionMarks(len(statusList)) + ")"
|
sql += " AND t2.status IN (" + GenQuestionMarks(len(statusList)) + ")"
|
||||||
sqlParams = append(sqlParams, statusList)
|
sqlParams = append(sqlParams, statusList)
|
||||||
}
|
}
|
||||||
|
if isService == model.YES {
|
||||||
|
sql += "AND t2.vendor_id <> ?"
|
||||||
|
sqlParams = append(sqlParams, model.VendorIDMTWM)
|
||||||
|
}
|
||||||
|
|
||||||
err = GetRows(db, &skuList, sql, sqlParams...)
|
err = GetRows(db, &skuList, sql, sqlParams...)
|
||||||
return skuList, err
|
return skuList, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,13 +24,13 @@ func TestGetAfsOrderSkuInfo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetStoreOrderSkuList(t *testing.T) {
|
func TestGetStoreOrderSkuList(t *testing.T) {
|
||||||
skuList, err := GetStoreOrderSkuList(GetDB(), []int{100118}, time.Now().Add(-30*time.Hour), time.Now(), nil, false)
|
skuList, err := GetStoreOrderSkuList(GetDB(), []int{100118}, time.Now().Add(-30*time.Hour), time.Now(), nil, false, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log(utils.Format4Output(skuList, false))
|
t.Log(utils.Format4Output(skuList, false))
|
||||||
|
|
||||||
afsSkuList, err := GetStoreOrderSkuList(GetDB(), []int{100118}, time.Now().Add(-30*time.Hour), time.Now(), nil, false)
|
afsSkuList, err := GetStoreOrderSkuList(GetDB(), []int{100118}, time.Now().Add(-30*time.Hour), time.Now(), nil, false, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -492,6 +492,7 @@ type StoreMap struct {
|
|||||||
DeliveryFeeDeductionFee int `json:"deliveryFeeDeductionFee"` //在vendorID=14,存储打包费
|
DeliveryFeeDeductionFee int `json:"deliveryFeeDeductionFee"` //在vendorID=14,存储打包费
|
||||||
DeliveryCompetition int8 `orm:"default(1)" json:"deliveryCompetition"` // 是否支持配送竞争
|
DeliveryCompetition int8 `orm:"default(1)" json:"deliveryCompetition"` // 是否支持配送竞争
|
||||||
CreateDeliveryType int `orm:"default(0)" json:"createDeliveryType"` //默认0系统发单,1为门店发单
|
CreateDeliveryType int `orm:"default(0)" json:"createDeliveryType"` //默认0系统发单,1为门店发单
|
||||||
|
IsService int `orm:"default(0)" json:"isService"` // 默认0非服务商,1服务商
|
||||||
|
|
||||||
SyncStatus int8 `orm:"default(2)" json:"syncStatus"`
|
SyncStatus int8 `orm:"default(2)" json:"syncStatus"`
|
||||||
IsSync int8 `orm:"default(1)" json:"isSync"` // 是否同步
|
IsSync int8 `orm:"default(1)" json:"isSync"` // 是否同步
|
||||||
|
|||||||
@@ -162,7 +162,19 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
storeCat.CatSyncStatus |= model.SyncFlagNewMask
|
storeCat.CatSyncStatus |= model.SyncFlagNewMask
|
||||||
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 门店内存在重复的分类:【柑桔柚类】 【底料】,请先删除重复分类后再操作。
|
||||||
|
if err != nil && strings.Contains(err.Error(), "门店内存在重复的分类:") {
|
||||||
|
for _, v := range deleteRepeatCat(err.Error()) {
|
||||||
|
if len(v) > 0 {
|
||||||
|
if err2 := api.RetailCatDelete(vendorStoreID, "", v, model.YES); err != nil {
|
||||||
|
globals.SugarLogger.Errorf("RetailCatDelete delete err : [%v]", err2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name)
|
// storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name)
|
||||||
storeCat.VendorCatID = utils.Int2Str(storeCat.ID)
|
storeCat.VendorCatID = utils.Int2Str(storeCat.ID)
|
||||||
@@ -170,6 +182,40 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deleteRepeatCat 门店内存在重复的分类:【柑桔柚类】 【底料】 【火锅】,请先删除重复分类后再操作。
|
||||||
|
func deleteRepeatCat(param string) []string {
|
||||||
|
firstIndex := strings.Index(param, "【")
|
||||||
|
lastIndex := strings.LastIndex(param, "】")
|
||||||
|
newParam := param[firstIndex:lastIndex]
|
||||||
|
deleteCat := make([]string, 0, 0)
|
||||||
|
for _, v := range strings.Split(newParam, "【") {
|
||||||
|
if strings.TrimSpace(v) == "" {
|
||||||
|
continue
|
||||||
|
} else if strings.Contains(v, "【") {
|
||||||
|
for _, v2 := range strings.Split(v, "【") {
|
||||||
|
if strings.TrimSpace(v) == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if strings.TrimSpace(v2) != "" {
|
||||||
|
deleteCat = append(deleteCat, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if strings.Contains(v, "】") {
|
||||||
|
for _, v3 := range strings.Split(v, "】") {
|
||||||
|
if strings.TrimSpace(v3) == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if strings.TrimSpace(v3) != "" {
|
||||||
|
deleteCat = append(deleteCat, v3)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
deleteCat = append(deleteCat, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return deleteCat
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) {
|
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) {
|
||||||
return p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
return p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
|
||||||
}
|
}
|
||||||
@@ -177,7 +223,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in
|
|||||||
func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) {
|
func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) {
|
||||||
if false {
|
if false {
|
||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
err = getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID).RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID)
|
err = getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID).RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID, model.NO)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var catCodes []string
|
var catCodes []string
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
updateParam.Pic = param.Pic
|
updateParam.Pic = param.Pic
|
||||||
updateParam.Description = param.Description
|
updateParam.Description = param.Description
|
||||||
updateParam.WeightUnit = tiktokShop.WeightUint_G
|
updateParam.WeightUnit = tiktokShop.WeightUint_G
|
||||||
updateParam.StandardBrandId, err = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, updateParam.CategoryLeafId)
|
updateParam.StandardBrandId, _ = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, updateParam.CategoryLeafId)
|
||||||
|
|
||||||
updateParam.ProductId = mainOrderDetail.ProductId
|
updateParam.ProductId = mainOrderDetail.ProductId
|
||||||
updateParam.MainProductId = mainProductId
|
updateParam.MainProductId = mainProductId
|
||||||
@@ -378,7 +378,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
param.ProductFormatNew = storeSku.TiktokAttribute
|
param.ProductFormatNew = storeSku.TiktokAttribute
|
||||||
}
|
}
|
||||||
// 获取品牌
|
// 获取品牌
|
||||||
param.StandardBrandId = 789194134 // 默认品牌京西菜市
|
param.StandardBrandId, _ = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, param.CategoryLeafId)
|
||||||
|
|
||||||
// 修改商品
|
// 修改商品
|
||||||
param.ProductId = mainIdInt
|
param.ProductId = mainIdInt
|
||||||
|
|||||||
Reference in New Issue
Block a user