diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 224f2f734..b5ba39178 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -882,9 +882,27 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID if toTime.Sub(fromTime).Hours() > 24 { 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{}) 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 { return nil, err } @@ -900,13 +918,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID afsSkuList, err = dao.GetStoreAfsOrderSkuList2(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) { orderMap = make(map[string]*model.GoodsOrder) orderSkuMap = make(map[string]*dao.OrderSkuWithActualPayPrice) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index b31e44f3c..f9a043bc8 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -376,7 +376,7 @@ func GetAfsOrderSkuInfo(db *DaoDB, vendorOrderID, afsOrderID string, vendorID in 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 sql := ` SELECT t1.*, @@ -403,6 +403,11 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt sql += " AND t2.status IN (" + GenQuestionMarks(len(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...) return skuList, err } diff --git a/business/model/dao/dao_order_test.go b/business/model/dao/dao_order_test.go index 4159d38cd..d5871641c 100644 --- a/business/model/dao/dao_order_test.go +++ b/business/model/dao/dao_order_test.go @@ -24,13 +24,13 @@ func TestGetAfsOrderSkuInfo(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 { t.Fatal(err) } 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 { t.Fatal(err) } diff --git a/business/model/store.go b/business/model/store.go index f0b292cff..d7f665eb0 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -492,6 +492,7 @@ type StoreMap struct { DeliveryFeeDeductionFee int `json:"deliveryFeeDeductionFee"` //在vendorID=14,存储打包费 DeliveryCompetition int8 `orm:"default(1)" json:"deliveryCompetition"` // 是否支持配送竞争 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"` IsSync int8 `orm:"default(1)" json:"isSync"` // 是否同步 diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 0217a6cd0..f5946f3eb 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -162,7 +162,19 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in storeCat.CatSyncStatus |= model.SyncFlagNewMask 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 { // storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name) storeCat.VendorCatID = utils.Int2Str(storeCat.ID) @@ -170,6 +182,40 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in 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) { 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) { if false { 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 { var catCodes []string diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 138433a29..f9294ff7c 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -249,7 +249,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI updateParam.Pic = param.Pic updateParam.Description = param.Description 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.MainProductId = mainProductId @@ -378,7 +378,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI param.ProductFormatNew = storeSku.TiktokAttribute } // 获取品牌 - param.StandardBrandId = 789194134 // 默认品牌京西菜市 + param.StandardBrandId, _ = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, param.CategoryLeafId) // 修改商品 param.ProductId = mainIdInt