Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -4431,7 +4431,7 @@ func RefreshTiktokShopToken(ctx *jxcontext.Context) (err error) {
|
||||
globals.SugarLogger.Debugf("定时任务更新抖店店铺token错误:%s,%s", utils.Format4Output(v, false), err.Error())
|
||||
continue
|
||||
}
|
||||
if access.ExpiresIn-time.Now().Unix() > 24*60*60 {
|
||||
if access.ExpiresIn-time.Now().Unix() > 48*60*60 {
|
||||
continue
|
||||
}
|
||||
api.SetToken(access.AccessToken)
|
||||
|
||||
@@ -1564,20 +1564,28 @@ func GetStoreBrandInfos(storeID int) (date *BrandInfos, err error) {
|
||||
return detail, err
|
||||
}
|
||||
|
||||
var FreightTemplateMap = make(map[int]*model.FreightTemplate)
|
||||
|
||||
// 查询FreightTemplate
|
||||
func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) {
|
||||
if storeID == model.NO {
|
||||
return nil, errors.New("storeId 不能为0")
|
||||
}
|
||||
if _, ok := FreightTemplateMap[storeID]; ok {
|
||||
return FreightTemplateMap[storeID], nil
|
||||
}
|
||||
|
||||
var (
|
||||
sqlParams []interface{}
|
||||
bindInfo *model.FreightTemplate
|
||||
)
|
||||
sql := "SELECT a.store_id,a.vendor_store_id,a.template_id,a.warehouse_id,a.fence_id,a.trade_limit_id FROM freight_template a "
|
||||
if storeID != 0 {
|
||||
sql += "WHERE store_id = ? "
|
||||
sqlParams = append(sqlParams, storeID)
|
||||
}
|
||||
if err := GetRow(GetDB(), &bindInfo, sql, sqlParams); err != nil {
|
||||
sql := "SELECT a.* FROM freight_template a "
|
||||
sql += "WHERE a.store_id = ? "
|
||||
sqlParams = append(sqlParams, storeID)
|
||||
if err := GetRow(GetDB(), &bindInfo, sql, sqlParams...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
FreightTemplateMap[storeID] = bindInfo
|
||||
return bindInfo, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,8 @@ func GetSkuDetailList(api *tiktokShop.API, param *MainSku) (*product_listV2_resp
|
||||
// 抖店的商品只管创建,创建接口会返回成功,但是审核的时候不一定成功.当前系统无法判定此商品是否已经创建过了!
|
||||
func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isCreate bool) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
var syncType string
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "")
|
||||
db := dao.GetDB()
|
||||
storeDetail, _ := dao.GetStoreDetail(db, storeID, model.VendorIDDD, "")
|
||||
api := getAPI(storeDetail.VendorOrgCode, storeID, vendorStoreID)
|
||||
if isCreate {
|
||||
syncType = "创建商品"
|
||||
@@ -204,7 +205,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
// 根据本地商品id获取线上商品是否存在,存在则只创建子商品
|
||||
var tiktokResultProductId int64 = 0
|
||||
// 获取本地存储映射关系
|
||||
localThing, err := dao.GetThingToTiktokMapList(dao.GetDB(), model.VendorIDDD, int64(storeSku.SkuID))
|
||||
localThing, err := dao.GetThingToTiktokMapList(db, model.VendorIDDD, int64(storeSku.SkuID))
|
||||
if len(localThing) == 0 { // 线上不存在创建
|
||||
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品
|
||||
if err != nil {
|
||||
@@ -227,8 +228,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
}
|
||||
|
||||
// 创建子商品
|
||||
temp, err := dao.QueryStoreBindInfo(storeDetail.ID)
|
||||
if err != nil || temp == nil || temp.TemplateID == 0 {
|
||||
temp, err := dao.QueryStoreBindInfo(storeDetail.Store.ID)
|
||||
if err != nil || temp == nil || temp.ID == 0 {
|
||||
// 运费模板
|
||||
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
|
||||
if err != nil {
|
||||
@@ -248,11 +249,32 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
FenceID: "",
|
||||
TradeLimitID: param.SaleLimitId,
|
||||
}
|
||||
dao.WrapAddIDCULDEntity(freightTemplate, "jxAdmin")
|
||||
err = dao.CreateEntity(dao.GetDB(), freightTemplate)
|
||||
err = dao.CreateEntity(db, freightTemplate)
|
||||
} else {
|
||||
param.FreightId = temp.TemplateID
|
||||
param.SaleLimitId = temp.TradeLimitID
|
||||
if temp.TemplateID != 0 {
|
||||
param.FreightId = temp.TemplateID
|
||||
} else {
|
||||
// 运费模板
|
||||
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
temp.TemplateID = param.FreightId
|
||||
_, err = dao.UpdateEntity(db, temp, "TemplateID")
|
||||
dao.FreightTemplateMap[temp.StoreID] = temp
|
||||
}
|
||||
if temp.TradeLimitID != 0 {
|
||||
param.SaleLimitId = temp.TradeLimitID
|
||||
} else {
|
||||
// 获取门店限售模板
|
||||
param.SaleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
temp.TradeLimitID = param.SaleLimitId
|
||||
_, err = dao.UpdateEntity(db, temp, "TradeLimitID")
|
||||
dao.FreightTemplateMap[temp.StoreID] = temp
|
||||
}
|
||||
}
|
||||
|
||||
param.MainProductId = tiktokResultProductId
|
||||
@@ -479,7 +501,6 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao
|
||||
return 0, err
|
||||
}
|
||||
freightId = temp.TemplateId
|
||||
dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0)
|
||||
}
|
||||
globals.SugarLogger.Debugf("freightId =last %d", freightId)
|
||||
return freightId, nil
|
||||
|
||||
@@ -2,7 +2,9 @@ package controllers
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"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"
|
||||
@@ -28,12 +30,27 @@ func (t *TiktokController) CallbackTiktokOrderMsg() {
|
||||
}
|
||||
|
||||
// 2.参数解析
|
||||
orderStatus, resp := api.TiktokStore.CreateOrderCallback(byteList)
|
||||
orderStatus, storeMap, 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 {
|
||||
|
||||
Reference in New Issue
Block a user