diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 17ffd8685..f607c2e6f 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1522,7 +1522,6 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend return nil, fmt.Errorf("此平台门店ID已在京西有绑定,请先解除绑定,平台门店ID :[%v]", storeMap.VendorStoreID) } if vendorID == model.VendorIDDD { //抖店绑定店铺时 检查并补充创建 - globals.SugarLogger.Debugf("vendorID ==============%d", vendorID) if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.DeliveryFeeDeductionFee), utils.Str2Int64(storeMap.YbStorePrefix)); err2 != nil { errList.AddErr(err2) } diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 7ee10f510..edb3d227b 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -249,7 +249,6 @@ func (v *VendorSync) SyncStore2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs db2 = dao.GetDB() } if model.IsSyncStatusNew(storeMap.SyncStatus) { - globals.SugarLogger.Debugf("1.IsSyncStatusNew(storeMap.SyncStatus)") storeDetail, _ := dao.GetStoreDetail(db, storeMap.StoreID, storeMap.VendorID, storeMap.VendorOrgCode) if vendorStoreID, err = handler.CreateStore2(db2, storeMap.StoreID, userName, nil, storeDetail); err == nil { resultList = append(resultList, 1) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 1ab88174e..9b388c1da 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -185,7 +185,6 @@ func SyncStoreSkuNew2(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFla case 0: if singleStoreHandler != nil { _, err = SyncStoreCategories(ctx, task, vendorID, storeID, vendorStoreID, nameIDs, skuIDs, false, isContinueWhenError) - globals.SugarLogger.Debugf("SyncStoreCategories in SyncStoreSkuNew2 err on: %s", err) } case 1: err = syncStoreSkuNew(ctx, task, causeFlag, false, vendorID, storeID, vendorOrgCode, nameIDs, skuIDs, excludeSkuIDs, useVendorPriceDirectly, isContinueWhenError) @@ -451,7 +450,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } else { skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs) } - + globals.SugarLogger.Debugf("skus := %d", len(skus)) if err != nil || len(skus) == 0 { return err } @@ -474,7 +473,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) storeSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler) reorderHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreSkuSorter) - + globals.SugarLogger.Debugf("=======singleStoreHandler %s", utils.Format4Output(singleStoreHandler, false)) var ( createList, updateList []*dao.StoreSkuSyncInfo deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo @@ -493,12 +492,16 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag sku.VendorPrice = 0 } sku.MergedStatus = MergeSkuSaleStatusWithStoreOpTime(sku, storeDetail, now) + globals.SugarLogger.Debugf("==============1 %d", sku.MergedStatus) if vendorID == model.VendorIDMTWM && storeDetail.Status != model.StoreStatusOpened && storeDetail.AutoEnableAt != nil && storeDetail.AutoEnableAt.Sub(specailAutoEnableAt) == 0 && sku.MergedStatus == model.SkuStatusNormal { sku.MergedStatus = model.SkuStatusDontSale + globals.SugarLogger.Debugf("==============2 %d", sku.MergedStatus) } if sku.Status != model.SkuStatusNormal { sku.MergedStatus = model.SkuStatusDontSale + globals.SugarLogger.Debugf("==============3 %d", sku.MergedStatus) } + globals.SugarLogger.Debugf("==============4 %d", sku.MergedStatus) var bareSku *partner.StoreSkuInfo isNeedReorder := false if isStoreSkuSyncNeedDelete(sku) { @@ -677,6 +680,15 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag // } } + globals.SugarLogger.Debugf("==============createList=%s", utils.Format4Output(createList, false)) + globals.SugarLogger.Debugf("===============updateList%s", utils.Format4Output(updateList, false)) + globals.SugarLogger.Debugf("==============deleteList=%s", utils.Format4Output(deleteList, false)) + globals.SugarLogger.Debugf("===============priceList%s", utils.Format4Output(priceList, false)) + globals.SugarLogger.Debugf("===============stockList%s", utils.Format4Output(stockList, false)) + globals.SugarLogger.Debugf("==============onlineList=%s", utils.Format4Output(onlineList, false)) + globals.SugarLogger.Debugf("===============offlineList %s", utils.Format4Output(offlineList, false)) + globals.SugarLogger.Debugf("===============offlineList %s", utils.Format4Output(offlineList, false)) + task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) @@ -815,7 +827,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } case 6: if len(priceList) > 0 { - globals.SugarLogger.Debugf("更新门店商品价格=====") _, err = putils.FreeBatchStoreSkuInfo("更新门店商品价格", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { if isNeedHandleAct(causeFlag) { cancelStoreSkuActs(ctx, task, vendorID, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList, true) diff --git a/business/model/api_config.go b/business/model/api_config.go index 3a30e7178..e5a26bcf0 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -71,6 +71,7 @@ const ( MTWMStorePSWay13 = "0016" //达达快递 MTWMStorePSWay14 = "0033" //E_代送 ) +const BrandIdChengShan = 142 // 成山农场品牌id type VendorInfo struct { Name string `json:"name"` diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 64fbf4f34..be3cf628f 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -688,6 +688,8 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo sql = fmt.Sprintf(sql, fmtParams...) sql += " ORDER BY t1.price" + globals.SugarLogger.Debugf("===========sql := %s", sql) + globals.SugarLogger.Debugf("===========sql := %s", utils.Format4Output(sqlParams, false)) if err = GetRows(db, &skus, sql, sqlParams...); err != nil { return nil, err } diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index a7cd0563c..2a0f6e82e 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -205,7 +205,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v if v.VendorMainId == "" { continue } - globals.SugarLogger.Debugf("=========storeSkuList====:= %s", utils.Format4Output(v, false)) if err = getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID).DeleteStoreCommodity(utils.Str2Int64(v.VendorMainId)); err != nil { failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "删除主商品")...) } diff --git a/controllers/tiktok_order.go b/controllers/tiktok_order.go index eb7b7dfac..924aa835d 100644 --- a/controllers/tiktok_order.go +++ b/controllers/tiktok_order.go @@ -1,10 +1,12 @@ package controllers import ( + "encoding/json" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" - "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" "strings" @@ -30,27 +32,12 @@ func (t *TiktokController) CallbackTiktokOrderMsg() { } // 2.参数解析 - orderStatus, storeMap, resp := api.TiktokStore.CreateOrderCallback(byteList) + orderStatus, resp := api.TiktokStore.CreateOrderCallback(byteList) if resp.Code != 0 { t.Data["json"] = resp t.ServeJSON() return } - globals.SugarLogger.Debugf("storeMap %s", utils.Format4Output(storeMap, false)) - // 判断订单来源(门店所属菜市,果园,其他方) - //for k, _ := range storeMap { - // vendorStoreId := utils.Int64ToStr(k) - // storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreId, model.VendorIDDD, "") - // if err != nil { - // globals.SugarLogger.Errorf("门店信息获取失败: %s", err) - // continue - // } - // if storeDetail != nil { - // continue - // } else { - // // 进入这里面就可能是果园或者其他三放的订单了,将当前信息推送过去 - // } - //} for k, v := range orderStatus { for _, callback := range v { @@ -67,3 +54,156 @@ func (t *TiktokController) CallbackTiktokOrderMsg() { t.ServeJSON() } + +func TiktokMsgChange(orderStatus []byte) (map[string][]interface{}, *tiktok_api.CallbackResponse) { + var resp []*tiktok_api.OrderCallback + if err := json.Unmarshal(orderStatus, &resp); err != nil { + return nil, &tiktok_api.CallbackResponse{Code: tiktok_api.CallbackFailCode, Msg: tiktok_api.CallbackFail} + } + + callbackResult := make(map[string][]interface{}, 0) + for _, data := range resp { + switch data.Tag { + case tiktok_api.CallbackCreatedOrderMsgTagId: // 创建订单 + create := tiktok_api.CreateOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackCreatedOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackCreatedOrderMsgTagId], create) + vendorStoreId := utils.Int64ToStr(create.ShopId) + storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreId, model.VendorIDDD, "") + if storeDetail != nil && storeDetail.Store.ID != 0 && storeDetail.Store.BrandID == model.BrandIdChengShan { // 成山农场订单 + + } else if storeDetail != nil && storeDetail.Store.ID != 0 { // 当前菜市系统订单 + continue + } else { // 果园订单 + + } + case tiktok_api.CallbackPayOrderMsgTagId: // 支付订单 + create := tiktok_api.PayOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackPayOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackPayOrderMsgTagId], create) + case tiktok_api.CallbackWaitOrderMsgTagId: // 支付订单待处理(风控审核) + create := tiktok_api.WaitOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackWaitOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackWaitOrderMsgTagId], create) + case tiktok_api.CallbackPartGoodsMsgTagId: // 卖家部分发货 + create := tiktok_api.SomeSendOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackPartGoodsMsgTagId] = append(callbackResult[tiktok_api.CallbackPartGoodsMsgTagId], create) + case tiktok_api.CallbackPartAllGoodsMsgTagId: // 卖家发货 + create := tiktok_api.BusinessDeliveryData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackPartAllGoodsMsgTagId] = append(callbackResult[tiktok_api.CallbackPartAllGoodsMsgTagId], create) + case tiktok_api.CallbackCancelOrderMsgTagId: // 取消订单 + create := tiktok_api.CreateOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackCancelOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackCancelOrderMsgTagId], create) + case tiktok_api.CallbackSuccessOrderMsgTagId: // 卖家确认收货时,会自动完成 + create := tiktok_api.SuccessOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackSuccessOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackSuccessOrderMsgTagId], create) + case tiktok_api.CallbackWayBillChangeOrderMsgTagId: // 发货物流消息便跟 + create := tiktok_api.WayBillChangeData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackWayBillChangeOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackWayBillChangeOrderMsgTagId], create) + case tiktok_api.CallbackReceivingChangeOrderMsgTagId: // 收货地址消息变更(商家审核通过触发) + create := tiktok_api.ReceivingAddressChangeData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackReceivingChangeOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackReceivingChangeOrderMsgTagId], create) + case tiktok_api.CallbackChangeMoneyMsgTagId: // 卖家修改订单/运单金额回调 + create := tiktok_api.UpdateAmountChangeData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackChangeMoneyMsgTagId] = append(callbackResult[tiktok_api.CallbackChangeMoneyMsgTagId], create) + case tiktok_api.CallbackBusinessRemarkMsgTagId: // 买家收货消息变更(手机,地址,姓名),用户C端修改触发(需要上面审核接口) + create := tiktok_api.BuyerUpdateWayBillData{} + if err := json.Unmarshal([]byte(data.Data), create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackBusinessRemarkMsgTagId] = append(callbackResult[tiktok_api.CallbackBusinessRemarkMsgTagId], create) + case tiktok_api.CallbackApplyUpdateAddressMsgTagId: // 商家修改交易备注回调 + create := tiktok_api.BusinessUpdateRemakeData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackApplyUpdateAddressMsgTagId] = append(callbackResult[tiktok_api.CallbackApplyUpdateAddressMsgTagId], create) + case tiktok_api.CallbackSendOrderTimeChangeMsgTagId: // 订单发货时消息变更回调 + create := tiktok_api.AppointmentChangeData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackSendOrderTimeChangeMsgTagId] = append(callbackResult[tiktok_api.CallbackSendOrderTimeChangeMsgTagId], create) + /*********下面属于订单退货消息************/ + case tiktok_api.CallbackRefundOrderMsgTagId: // 买家发起售后申请消息 + create := tiktok_api.BuyerRefundCreatedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackRefundOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderMsgTagId], create) + case tiktok_api.CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息 + create := tiktok_api.BuyerRefundModifiedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackUpdateRefundOrderMsgTagId] = append(callbackResult[tiktok_api.CallbackUpdateRefundOrderMsgTagId], create) + case tiktok_api.CallbackRefundOrderSuccessMsgTagId: // 退款成功消息 + create := tiktok_api.BusinessRefundSuccessData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackRefundOrderSuccessMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderSuccessMsgTagId], create) + case tiktok_api.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息 + create := tiktok_api.BusinessNotRefundRefusedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackRefundOrderRefuseMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundOrderRefuseMsgTagId], create) + case tiktok_api.CallbackRefundShopMsgTagId: // 拒绝退货申请消息 + create := tiktok_api.BusinessNotReturnApplyRefusedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackRefundShopMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundShopMsgTagId], create) + case tiktok_api.CallbackReturnApplyAgreedMsgTagId: // 卖家同意时,推送此消息 + create := tiktok_api.BusinessReturnApplyAgreedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackReturnApplyAgreedMsgTagId] = append(callbackResult[tiktok_api.CallbackReturnApplyAgreedMsgTagId], create) + case tiktok_api.CallbackReturnRefundAgreedMsgTagId: // 同意退款消息 + create := tiktok_api.BusinessRefundAgreedData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackReturnRefundAgreedMsgTagId] = append(callbackResult[tiktok_api.CallbackReturnRefundAgreedMsgTagId], create) + case tiktok_api.CallbackRefundClosedMsgTagId: + create := tiktok_api.UserCancelRefundOrderData{} + if err := json.Unmarshal([]byte(data.Data), &create); err != nil { + return nil, tiktok_api.CallbackResponseErr(false) + } + callbackResult[tiktok_api.CallbackRefundClosedMsgTagId] = append(callbackResult[tiktok_api.CallbackRefundClosedMsgTagId], create) + default: + return nil, tiktok_api.CallbackResponseErr(false) + } + } + + return callbackResult, &tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess} +}