Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -1527,7 +1527,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend
|
||||
return nil, fmt.Errorf("此平台门店ID已在京西有绑定,请先解除绑定,平台门店ID :[%v]", storeMap.VendorStoreID)
|
||||
}
|
||||
if vendorID == model.VendorIDDD { //抖店绑定店铺时 检查并补充创建
|
||||
if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.DeliveryFeeDeductionFee), utils.Str2Int64(storeMap.YbStorePrefix)); err2 != nil {
|
||||
if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeMap.YbStorePrefix), storeMap.YbAppID); err2 != nil {
|
||||
errList.AddErr(err2)
|
||||
}
|
||||
}
|
||||
@@ -1706,13 +1706,14 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
||||
//增加同步到抖店厂商的同步标志
|
||||
DDFlag := false
|
||||
errList := errlist.ErrList{}
|
||||
if (valid["deliveryFeeDeductionSill"] != nil || valid["deliveryFeeDeductionFee"] != nil || valid["ybStorePrefix"] != nil) && vendorID == model.VendorIDDD {
|
||||
//deliveryFeeDeductionSill-包邮模板 满x包邮金额 deliveryFeeDeductionFee-打包费 ybStorePrefix-起送价 ybAppID-自动运力设置
|
||||
if (valid["deliveryFeeDeductionSill"] != nil || valid["deliveryFeeDeductionFee"] != nil || valid["ybStorePrefix"] != nil || valid["ybAppID"] != nil) && vendorID == model.VendorIDDD {
|
||||
DDFlag = true
|
||||
} //特殊处理抖店运费模板、打包费
|
||||
if DDFlag {
|
||||
globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板、起送价、打包费")
|
||||
if err := tiktok_store.SpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID), int64(storeMap.DeliveryFeeDeductionFee), utils.Str2Int64(storeMap.YbStorePrefix)); err != nil {
|
||||
errList.AddErr(fmt.Errorf("抖店运费模板、起送价、打包费相关处理错误:%v", err))
|
||||
globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板、起送价、打包费、自动运力设置")
|
||||
if err := tiktok_store.SpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID), int64(storeMap.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeMap.YbStorePrefix), storeMap.YbAppID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("抖店运费模板、起送价、打包费、自动运力设置相关处理错误:%v", err))
|
||||
}
|
||||
}
|
||||
for _, v := range [][]string{
|
||||
@@ -5967,7 +5968,7 @@ func UpdateStoreRelInformation(ctx *jxcontext.Context) error {
|
||||
FreightTemplate.VendorStoreID = utils.Int64ToStr(m)
|
||||
FreightTemplate.StoreID = utils.Str2Int(n)
|
||||
if _, err := dao.UpdateEntity(db, FreightTemplate, "VendorStoreID", "StoreID", "TemplateID", "WarehouseID", "FenceID", "TradeLimitID"); err != nil {
|
||||
if err1 := dao.CreateEntity(db, FreightTemplate); err1 != nil {
|
||||
if err1 := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err1) || err1 != nil {
|
||||
errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err1))
|
||||
} else {
|
||||
errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err))
|
||||
@@ -6045,7 +6046,9 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error
|
||||
}
|
||||
}
|
||||
endStr = tStr1 + "," + tStr2
|
||||
globals.SugarLogger.Debugf("京西平台没有配送范围的门店ID=%s", endStr)
|
||||
if len(endStr) > 0 {
|
||||
globals.SugarLogger.Debugf("京西平台没有配送范围的门店ID=%s", endStr)
|
||||
}
|
||||
}
|
||||
if bindFence, err := tiktok_store.GetWarehouseByStore(k, utils.Str2Int64(i.VendorStoreID)); err == nil && (len(bindFence) > 0 && len(bindFence[i.VendorStoreID][0].OutFenceIds) > 0) {
|
||||
tempFenceID = bindFence[i.VendorStoreID][0].OutFenceIds[0]
|
||||
@@ -6062,7 +6065,7 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error
|
||||
}
|
||||
}
|
||||
}
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil {
|
||||
if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID"); err1 != nil {
|
||||
globals.SugarLogger.Debugf("db update storeID,vendorStoreID defeat on :%v", err1)
|
||||
//errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
|
||||
@@ -6087,14 +6090,14 @@ func BatchCreateFreeShipTemplate(relInfo map[string][]tiktok_store.RelInfo, ship
|
||||
errList := errlist.New()
|
||||
for k, v := range relInfo {
|
||||
for _, i := range v {
|
||||
if bindFreightID, err := tiktok_store.GetStoreFreight(k, utils.Str2Int64(i.VendorStoreID)); err != nil || bindFreightID == 0 || utils.IsNil(bindFreightID) {
|
||||
if err := tiktok_store.CreateBindFreeShipTemplate(utils.Str2Int(i.StoreID), shipFee); err != nil {
|
||||
if bindFreightID, err := tiktok_store.GetStoreFreight(k, utils.Str2Int64(i.VendorStoreID)); err != nil || bindFreightID == 0 {
|
||||
if err := tiktok_store.CreateBindFreeShipTemplate(k, utils.Str2Int(i.StoreID), shipFee); err != nil {
|
||||
errList.AddErr(err)
|
||||
}
|
||||
} else {
|
||||
_ = tiktok_store.ShopBindStoreFreight(k, utils.Str2Int64(i.VendorStoreID), bindFreightID)
|
||||
globals.SugarLogger.Debugf("进入更新包邮模板操作")
|
||||
if err := tiktok_store.UpdateFreeShipTemplate(utils.Str2Int(i.StoreID), shipFee); err != nil {
|
||||
if err := tiktok_store.UpdateFreeShipTemplate(k, utils.Str2Int(i.StoreID), shipFee); err != nil {
|
||||
errList.AddErr(err)
|
||||
}
|
||||
}
|
||||
@@ -6129,6 +6132,11 @@ func SetStoreAutoCallRider(vendorOrgCode string, openIDs, closeIDs []int64) (str
|
||||
return "", nil
|
||||
}
|
||||
|
||||
//操作 freight_template
|
||||
func ReplaceInsertFreight(storeID, templateID, warehouseID, tradeLimitID int, vendorStoreID, fenceID string) error {
|
||||
return dao.ReplaceInsertFreight2(storeID, templateID, warehouseID, tradeLimitID, vendorStoreID, fenceID)
|
||||
}
|
||||
|
||||
//辅助函数
|
||||
func String2ArrayInt64(data string) (retVal []int64) {
|
||||
temp := strings.Split(data, ",")
|
||||
|
||||
32
business/model/dao/freight_template.go
Normal file
32
business/model/dao/freight_template.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
)
|
||||
|
||||
func ReplaceInsertFreight2(storeID, templateID, warehouseID, tradeLimitID int, vendorStoreID, fenceID string) error {
|
||||
if storeID == 0 || len(vendorStoreID) == 0 {
|
||||
return fmt.Errorf("storeID或vendorStoreID不允许为空")
|
||||
}
|
||||
sqlStr := `REPLACE INTO freight_template (store_id, vendor_store_id, template_id, warehouse_id, fence_id, trade_limit_id)
|
||||
SELECT ?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT COUNT(store_id) FROM freight_template WHERE store_id = ?)=0`
|
||||
sqlParam := []interface{}{storeID, vendorStoreID, templateID, warehouseID, fenceID, tradeLimitID, storeID}
|
||||
_, err := ExecuteSQL(GetDB(), sqlStr, sqlParam)
|
||||
return err
|
||||
}
|
||||
func ReplaceInsertFreight(tem *model.FreightTemplate) error {
|
||||
if tem.StoreID == 0 || len(tem.VendorStoreID) == 0 {
|
||||
return fmt.Errorf("storeID或vendorStoreID不允许为空")
|
||||
}
|
||||
sqlStr := `REPLACE INTO freight_template (store_id, vendor_store_id, template_id, warehouse_id, fence_id, trade_limit_id)
|
||||
SELECT ?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT COUNT(store_id) FROM freight_template WHERE store_id = ?)=0`
|
||||
sqlParam := []interface{}{tem.StoreID, tem.VendorStoreID, tem.TemplateID, tem.WarehouseID, tem.FenceID, tem.TradeLimitID, tem.StoreID}
|
||||
_, err := ExecuteSQL(GetDB(), sqlStr, sqlParam)
|
||||
return err
|
||||
}
|
||||
|
||||
func InsertItemFreight() {
|
||||
|
||||
}
|
||||
@@ -143,7 +143,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
||||
errList.AddErr(dao.CreateEntity(db, storeMap))
|
||||
}
|
||||
vendorStoreIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId)
|
||||
if err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId, int64(storeDetail.DeliveryFeeDeductionFee), utils.Str2Int64(storeDetail.YbStorePrefix)); err != nil {
|
||||
if err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId, int64(storeDetail.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeDetail.YbStorePrefix), storeDetail.YbAppID); err != nil {
|
||||
errList.AddErr(err)
|
||||
}
|
||||
}
|
||||
@@ -151,20 +151,22 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
||||
return vendorStoreIDs, errors.New(fmt.Sprintf("创建抖店平台店铺相关错误信息:%v", endErr))
|
||||
}
|
||||
|
||||
func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error {
|
||||
func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, deliveryFeeDeductionSill, minPrice int64, autoCall string) error {
|
||||
var (
|
||||
errList = errlist.New()
|
||||
FreightTemplate = &model.FreightTemplate{}
|
||||
db *dao.DaoDB
|
||||
FreightTemplate = &model.FreightTemplate{
|
||||
StoreID: int(storeID),
|
||||
VendorStoreID: utils.Int64ToStr(vendorStoreID),
|
||||
}
|
||||
)
|
||||
//检查门店是否审核通过
|
||||
if IfAuditPass(vendorOrgCode, vendorStoreID) {
|
||||
return fmt.Errorf("门店%d 未审核通过,请通过后再进行绑定", storeID)
|
||||
}
|
||||
//1.平台获取门店运费模板
|
||||
//1.运费模板
|
||||
if bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID); err != nil || bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误
|
||||
//创建
|
||||
if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) {
|
||||
if freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 {
|
||||
errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err))
|
||||
} else { //绑定
|
||||
if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil {
|
||||
@@ -174,6 +176,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if err := UpdateFreightTemplate(int(storeID)); err != nil {
|
||||
globals.SugarLogger.Debug("更新运费模板失败:", err)
|
||||
errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err))
|
||||
}
|
||||
FreightTemplate.TemplateID = bindFreightIDs
|
||||
}
|
||||
|
||||
@@ -196,6 +202,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
|
||||
}
|
||||
//(2)电子围栏
|
||||
if len(bind[utils.Int64ToStr(storeID)][0].OutFenceIds) > 0 {
|
||||
tempFenceID := bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0]
|
||||
if err1 := UpdateFenceByStore(vendorOrgCode, tempFenceID, int(vendorStoreID)); err1 != nil {
|
||||
errList.AddErr(fmt.Errorf("平台门店(%d),门店(%d)更新电子围栏失败:%v", vendorStoreID, storeID, err1))
|
||||
}
|
||||
FreightTemplate.FenceID = bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] //保存一个就足够
|
||||
} else {
|
||||
if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || len(fenceID) == 0 {
|
||||
@@ -228,135 +238,39 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
|
||||
if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil {
|
||||
errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err))
|
||||
}
|
||||
//5.同步进数据库
|
||||
FreightTemplate.StoreID = int(storeID)
|
||||
FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID)
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID", "StoreID", "VendorStoreID"); err1 != nil {
|
||||
globals.SugarLogger.Debug("更新操作,同步进数据库错误信息:%v", err1)
|
||||
//errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
|
||||
} else {
|
||||
globals.SugarLogger.Debug("创建操作,同步进数据库错误信息:%v", err)
|
||||
//errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
|
||||
//5.设置自动运力
|
||||
if autoCall == tiktok_api.AutoCallRiderOpen {
|
||||
if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderOpen, vendorStoreID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("开启门店自动运力失败:%v", err))
|
||||
}
|
||||
} else {
|
||||
if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderClose, vendorStoreID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("关闭门店自动运力失败:%v", err))
|
||||
}
|
||||
}
|
||||
|
||||
//6.同步进数据库
|
||||
if err := dao.ReplaceInsertFreight(FreightTemplate); err != nil {
|
||||
globals.SugarLogger.Debug("同步数据库错误信息:%v", err)
|
||||
}
|
||||
//if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil {
|
||||
// if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID", "StoreID", "VendorStoreID"); err1 != nil {
|
||||
// globals.SugarLogger.Debug("更新操作,同步进数据库错误信息:%v", err1)
|
||||
// //errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
|
||||
// } else {
|
||||
// globals.SugarLogger.Debug("创建操作,同步进数据库错误信息:%v", err)
|
||||
// //errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
|
||||
// }
|
||||
//}
|
||||
endErr := errList.GetErrListAsOne()
|
||||
if endErr != nil {
|
||||
globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false))))
|
||||
globals.SugarLogger.Debug("绑定抖音门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false))))
|
||||
return endErr
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
//逻辑未修改,暂时不使用
|
||||
//func CreateAndBindAllV2(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error {
|
||||
// var (
|
||||
// db *dao.DaoDB
|
||||
// ctx *jxcontext.Context
|
||||
// errList = errlist.New()
|
||||
// FreightTemplate = &model.FreightTemplate{
|
||||
// VendorStoreID: utils.Int64ToStr(vendorStoreID),
|
||||
// StoreID: int(storeID),
|
||||
// }
|
||||
// )
|
||||
// task := tasksch.NewParallelTask("CreateAndBindAllV2", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(1), ctx,
|
||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
// step := batchItemList[0].(int)
|
||||
// switch step {
|
||||
// case 0: //1.门店运费模板
|
||||
// bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)
|
||||
// errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err))
|
||||
// }
|
||||
// if bindFreightIDs == 0 {
|
||||
// if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) {
|
||||
// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)
|
||||
// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err))
|
||||
// } else {
|
||||
// if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil {
|
||||
// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)
|
||||
// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err))
|
||||
// } else {
|
||||
// FreightTemplate.TemplateID = freightTemplateID
|
||||
// }
|
||||
// }
|
||||
// } else {
|
||||
// FreightTemplate.TemplateID = bindFreightIDs
|
||||
// }
|
||||
// case 1: //2.仓库以及电子围栏
|
||||
// warehouseID, err := CreateWarehouse(vendorOrgCode, storeID)
|
||||
// if err != nil || warehouseID == 0 {
|
||||
// globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err)
|
||||
// errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err))
|
||||
// } else { //绑定
|
||||
// if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID
|
||||
// globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err)
|
||||
// errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err))
|
||||
// } else {
|
||||
// FreightTemplate.WarehouseID = utils.Str2Int64(warehouseID)
|
||||
// }
|
||||
// }
|
||||
// case 2: //3.电子围栏
|
||||
// fenceID, err := CreateFenceByStore(vendorOrgCode, storeID)
|
||||
// if err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建
|
||||
// globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err)
|
||||
// errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err))
|
||||
// } else { //绑定
|
||||
// if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil {
|
||||
// globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)
|
||||
// errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err))
|
||||
// } else {
|
||||
// FreightTemplate.FenceID = utils.Int64ToStr(storeID)
|
||||
// }
|
||||
// }
|
||||
// case 3: //4.限售模板
|
||||
// bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID)
|
||||
// if err != nil {
|
||||
// globals.SugarLogger.Debugf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err)
|
||||
// errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err))
|
||||
// }
|
||||
// if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板
|
||||
// if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil {
|
||||
// errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err))
|
||||
// } else {
|
||||
// FreightTemplate.TradeLimitID = createSaleLimitID
|
||||
// }
|
||||
// } else {
|
||||
// if updateSaleLimitID, err := UpdateTradeLimitTemplate(vendorOrgCode, bindSaleLimitID, minPrice); err != nil {
|
||||
// errList.AddErr(fmt.Errorf("更新门店起送价限售模板失败:%v", err))
|
||||
// } else {
|
||||
// FreightTemplate.TradeLimitID = updateSaleLimitID
|
||||
// }
|
||||
// }
|
||||
// case 4: //5.门店打包费 默认为 0
|
||||
// if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil {
|
||||
// errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err))
|
||||
// }
|
||||
// }
|
||||
// return nil, err
|
||||
// }, []int{0, 1, 2, 3, 4})
|
||||
// tasksch.ManageTask(task).Run()
|
||||
// //6.同步进数据库
|
||||
// globals.SugarLogger.Debugf("preTest TradeLimitID==%d,TemplateID==%d, WarehouseID==%d,FenceID==%s", FreightTemplate.TradeLimitID, FreightTemplate.TemplateID, FreightTemplate.WarehouseID, FreightTemplate.FenceID)
|
||||
// if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
// _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID")
|
||||
// if err1 == nil {
|
||||
// errList.AddErr(fmt.Errorf("同步Step1进数据库错误信息:%v", err))
|
||||
// } else {
|
||||
// errList.AddErr(fmt.Errorf("同步Step2进数据库错误信息:%v", err1))
|
||||
// }
|
||||
// }
|
||||
// endErr := errList.GetErrListAsOne()
|
||||
// if utils.IsNil(errList) {
|
||||
// globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", endErr)
|
||||
// return endErr
|
||||
// } else {
|
||||
// return nil
|
||||
// }
|
||||
//}
|
||||
|
||||
// shop/editStore 编辑门店信息 正向推送平台
|
||||
func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
|
||||
var (
|
||||
@@ -366,7 +280,10 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
||||
errList = errlist.New()
|
||||
timeStr = ""
|
||||
tempFenceID string
|
||||
FreightTemplate = &model.FreightTemplate{}
|
||||
FreightTemplate = &model.FreightTemplate{
|
||||
StoreID: storeID,
|
||||
VendorStoreID: storeInfo.VendorStoreID,
|
||||
}
|
||||
)
|
||||
if db == nil {
|
||||
db = dao.GetDB()
|
||||
@@ -461,20 +378,20 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
|
||||
}
|
||||
//同步进数据库
|
||||
FreightTemplate.FenceID = tempFenceID
|
||||
FreightTemplate.StoreID = storeID
|
||||
FreightTemplate.VendorStoreID = storeInfo.VendorStoreID
|
||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID", "StoreID", "VendorStoreID"); err1 != nil {
|
||||
errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
|
||||
} else {
|
||||
errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
|
||||
}
|
||||
if err := dao.ReplaceInsertFreight(FreightTemplate); err != nil {
|
||||
globals.SugarLogger.Debug("同步数据库错误信息:%v", err)
|
||||
}
|
||||
//if err = dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil {
|
||||
// if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID", "StoreID", "VendorStoreID"); err1 != nil {
|
||||
// errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1))
|
||||
// } else {
|
||||
// errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err))
|
||||
// }
|
||||
//}
|
||||
if endErr := errList.GetErrListAsOne(); endErr != nil {
|
||||
globals.SugarLogger.Debugf("DouDian UpdateStore wrong information:%v", endErr)
|
||||
}
|
||||
return nil
|
||||
//return errors.New(fmt.Sprintf("更新抖店平台店铺信息,相关处理错误:%v", endErr))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -512,7 +429,7 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int
|
||||
}
|
||||
|
||||
//默认 运费模板只创建 固定运费模板
|
||||
func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||
func CreateFreightTemplate(storeCode, deliveryFeeDeductionSill int) (int64, error) {
|
||||
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "")
|
||||
if err != nil {
|
||||
return 0, err
|
||||
@@ -527,24 +444,11 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||
FixedAmount: 500, //固定运费 单位:分
|
||||
},
|
||||
}
|
||||
if int64(storeDetail.DeliveryFeeDeductionSill) != 0 {
|
||||
param.Template.TemplateName += "满减包邮模板"
|
||||
columns := []freightTemplate_create_request.ColumnsItem{
|
||||
{
|
||||
IsOverFree: true, //是否包邮
|
||||
IsLimited: false,
|
||||
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
|
||||
}}
|
||||
param.Columns = columns
|
||||
} else {
|
||||
param.Columns = nil
|
||||
param.Template.TemplateName += "固定运费模板"
|
||||
}
|
||||
//直辖市特殊处理
|
||||
if HandleMunicipality(storeDetail.CityName) {
|
||||
param.Template.ProductCity = int64(storeDetail.ProvinceCode)
|
||||
param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{
|
||||
{
|
||||
param.Columns = []freightTemplate_create_request.ColumnsItem{{
|
||||
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{{
|
||||
Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
|
||||
Children: []freightTemplate_create_request.ChildrenItem_4{
|
||||
{
|
||||
@@ -559,27 +463,43 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||
},
|
||||
},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
} else {
|
||||
param.Template.ProductCity = int64(storeDetail.CityCode)
|
||||
param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{
|
||||
{
|
||||
Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
|
||||
Children: []freightTemplate_create_request.ChildrenItem_4{
|
||||
{
|
||||
Id: int64(storeDetail.CityCode),
|
||||
Children: []freightTemplate_create_request.ChildrenItem_5{
|
||||
{
|
||||
Id: int64(storeDetail.DistrictCode),
|
||||
//Children: []freightTemplate_create_request.ChildrenItem{
|
||||
// {Id: 0},
|
||||
//},
|
||||
param.Columns = []freightTemplate_create_request.ColumnsItem{{
|
||||
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
|
||||
{
|
||||
Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
|
||||
Children: []freightTemplate_create_request.ChildrenItem_4{
|
||||
{
|
||||
Id: int64(storeDetail.CityCode),
|
||||
Children: []freightTemplate_create_request.ChildrenItem_5{
|
||||
{
|
||||
Id: int64(storeDetail.DistrictCode),
|
||||
//Children: []freightTemplate_create_request.ChildrenItem{
|
||||
// {Id: 0},
|
||||
//},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}},
|
||||
}},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
if deliveryFeeDeductionSill != 0 {
|
||||
param.Template.TemplateName += "满减包邮模板"
|
||||
param.Columns = []freightTemplate_create_request.ColumnsItem{{
|
||||
IsOverFree: true, //是否包邮
|
||||
IsLimited: false,
|
||||
OverAmount: int64(deliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
|
||||
}}
|
||||
} else {
|
||||
//param.Columns = nil
|
||||
param.Template.TemplateName += "固定运费模板"
|
||||
}
|
||||
globals.SugarLogger.Debugf("创建运费模板")
|
||||
if resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param); err != nil {
|
||||
return 0, err
|
||||
} else {
|
||||
@@ -638,7 +558,7 @@ func UpdateFreightTemplate(storeCode int) error {
|
||||
}
|
||||
|
||||
// /freightTemplate/create 批量创建绑定 满x包邮 运费模板
|
||||
func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
func CreateBindFreeShipTemplate(vendorOrgCode string, storeID int, shipFee int64) error {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
errList = errlist.New()
|
||||
@@ -653,7 +573,7 @@ func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
}
|
||||
param := &freightTemplate_create_request.FreightTemplateCreateParam{
|
||||
Template: &freightTemplate_create_request.Template{
|
||||
TemplateName: utils.Int2Str(storeID) + "的满" + utils.Int64ToStr(shipFee) + "包邮模板",
|
||||
TemplateName: utils.Int2Str(storeID) + "的满减包邮模板",
|
||||
ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
|
||||
CalculateType: tiktok_api.CalculateTypeNum,
|
||||
TransferType: tiktok_api.TransferTypeExpress,
|
||||
@@ -664,7 +584,7 @@ func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
{
|
||||
IsOverFree: true,
|
||||
IsLimited: false,
|
||||
OverAmount: shipFee,
|
||||
OverAmount: shipFee * 100,
|
||||
}},
|
||||
}
|
||||
//直辖市特殊处理
|
||||
@@ -673,13 +593,14 @@ func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
} else {
|
||||
param.Template.ProductCity = int64(storeDetail.CityCode)
|
||||
}
|
||||
if resp, err := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).FreightTemplateCreate(param); err != nil {
|
||||
globals.SugarLogger.Debugf("CreateBindFreeShipTemplate param====%s", utils.Format4Output(param, false))
|
||||
if resp, err := getAPI(vendorOrgCode, 0, "").FreightTemplateCreate(param); err != nil {
|
||||
return errors.New(fmt.Sprintf("平台门店(%s) 京西门店(%d) 创建包邮模板失败:%v,根据提示处理", storeDetail.VendorStoreID, storeID, err))
|
||||
} else {
|
||||
if err := ShopBindStoreFreight(storeDetail.VendorOrgCode, utils.Str2Int64(storeDetail.VendorStoreID), resp.TemplateId); err != nil {
|
||||
if err := ShopBindStoreFreight(vendorOrgCode, utils.Str2Int64(storeDetail.VendorStoreID), resp.TemplateId); err != nil {
|
||||
return errors.New(fmt.Sprintf("平台门店(%s) 京西门店(%d) 绑定包邮模板失败:%v,根据提示处理", storeDetail.VendorStoreID, storeID, err))
|
||||
} else {
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil {
|
||||
if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err1 != nil {
|
||||
errList.AddErr(fmt.Errorf("包邮模板:更新操作,同步进数据库错误信息:%v", err1))
|
||||
} else {
|
||||
@@ -695,7 +616,7 @@ func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
}
|
||||
|
||||
//更新 包邮运费模板
|
||||
func UpdateFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
func UpdateFreeShipTemplate(vendorOrgCode string, storeID int, shipFee int64) error {
|
||||
if shipFee == 0 {
|
||||
return errors.New("包邮金额必传,请检查")
|
||||
}
|
||||
@@ -703,12 +624,12 @@ func UpdateFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
if err != nil {
|
||||
return errors.New("更新包邮运费模板,获取门店信息失败,请重试")
|
||||
}
|
||||
a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
|
||||
a := getAPI(vendorOrgCode, storeID, storeDetail.VendorStoreID)
|
||||
//获取远程运费模板详情
|
||||
if bindFreightID, err := a.GetStoreFreight(utils.Str2Int64(storeDetail.VendorStoreID)); err != nil || len(bindFreightID) == 0 || utils.IsNil(bindFreightID) {
|
||||
//return errors.New("门店未绑定运费模板,")
|
||||
} else {
|
||||
if freightDetail, err := a.GetStoreFreightDetail(bindFreightID[0]); err != nil {
|
||||
if freightDetail, err := a.GetStoreFreightDetail(bindFreightID[0]); err == nil {
|
||||
param := &freightTemplate_update_request.FreightTemplateUpdateParam{
|
||||
Template: &freightTemplate_update_request.Template{
|
||||
Id: bindFreightID[0],
|
||||
@@ -724,9 +645,10 @@ func UpdateFreeShipTemplate(storeID int, shipFee int64) error {
|
||||
{
|
||||
IsOverFree: true,
|
||||
IsLimited: false,
|
||||
OverAmount: shipFee,
|
||||
OverAmount: shipFee * 100,
|
||||
}},
|
||||
}
|
||||
globals.SugarLogger.Debugf("ykljkfjapojf param====%s", utils.Format4Output(param, false))
|
||||
if _, err := a.FreightTemplateUpdate(param); err != nil {
|
||||
return errors.New("更新包邮运费模板失败")
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
//创建运费模板
|
||||
func TestCreateFreight(t *testing.T) {
|
||||
data, err := CreateFreightTemplate(668504)
|
||||
data, err := CreateFreightTemplate(668787)
|
||||
fmt.Println(data)
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ func GetFence(appOrgCode string, outFenceID []string) ([]warehouse_getFences_res
|
||||
}
|
||||
|
||||
//特殊处理
|
||||
func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeductionFee, minPrice int64) error {
|
||||
func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeductionFee, deliveryFeeDeductionSill, minPrice int64, autoCall string) error {
|
||||
var (
|
||||
db *dao.DaoDB
|
||||
errList = errlist.New()
|
||||
@@ -264,13 +264,14 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc
|
||||
}
|
||||
)
|
||||
//1.运费模板
|
||||
bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:", vendorStoreID, err)
|
||||
//errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err))
|
||||
}
|
||||
if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误
|
||||
if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 {
|
||||
//bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID)
|
||||
//if err != nil {
|
||||
// globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:", vendorStoreID, err)
|
||||
// //errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err))
|
||||
//}
|
||||
if true {
|
||||
//if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误
|
||||
if freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 {
|
||||
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
|
||||
} else { //绑定
|
||||
if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil {
|
||||
@@ -308,8 +309,18 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc
|
||||
}
|
||||
}
|
||||
}
|
||||
//4.设置自动运力
|
||||
if autoCall == tiktok_api.AutoCallRiderOpen {
|
||||
if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderOpen, vendorStoreID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("开启门店自动运力失败:%v", err))
|
||||
}
|
||||
} else {
|
||||
if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderClose, vendorStoreID); err != nil {
|
||||
errList.AddErr(fmt.Errorf("关闭门店自动运力失败:%v", err))
|
||||
}
|
||||
}
|
||||
//多次同步数据库,兜底处理
|
||||
if err := dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||
if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil {
|
||||
_, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "TradeLimitID")
|
||||
if err1 != nil {
|
||||
globals.SugarLogger.Debugf("更新起送价限售模板,更新进数据库错误信息:%v", err1)
|
||||
|
||||
@@ -2,6 +2,7 @@ package controllers
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/common"
|
||||
@@ -1618,3 +1619,22 @@ func (c *StoreController) BindJxPrinter() {
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// @Title 测试操作freight_template
|
||||
// @Description 测试操作freight_template
|
||||
// @Param token header string true "认证token"
|
||||
// @Param storeID formData int true "京西门店id"
|
||||
// @Param vendorStoreID formData string false "抖音平台id"
|
||||
// @Param templateID formData int false "运费模板id"
|
||||
// @Param warehouseID formData int false "仓库id"
|
||||
// @Param fenceID formData string false "电子围栏id"
|
||||
// @Param tradeLimitID formData int false "限售模板id"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /ReplaceInsertFreight [post]
|
||||
func (c *StoreController) ReplaceInsertFreight() {
|
||||
c.callReplaceInsertFreight(func(params *tStoreReplaceInsertFreightParams) (interface{}, string, error) {
|
||||
err := cms.ReplaceInsertFreight(params.StoreID, params.TemplateID, params.WarehouseID, params.TradeLimitID, params.VendorStoreID, params.FenceID)
|
||||
return nil, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3027,6 +3027,15 @@ func init() {
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
//测试用-ysq
|
||||
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
|
||||
web.ControllerComments{
|
||||
Method: "ReplaceInsertFreight",
|
||||
Router: `/ReplaceInsertFreight`,
|
||||
AllowHTTPMethods: []string{"post"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
|
||||
web.ControllerComments{
|
||||
|
||||
Reference in New Issue
Block a user