Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -1524,17 +1524,17 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend
|
|||||||
}
|
}
|
||||||
if vendorID == model.VendorIDDD { //抖店绑定店铺时 检查并补充创建
|
if vendorID == model.VendorIDDD { //抖店绑定店铺时 检查并补充创建
|
||||||
globals.SugarLogger.Debugf("vendorID ==============%d", vendorID)
|
globals.SugarLogger.Debugf("vendorID ==============%d", vendorID)
|
||||||
if str, err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID)); err2 != nil {
|
if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID)); err2 != nil {
|
||||||
errList.AddErr(fmt.Errorf("wrongAns=%s,err=%v", str, err2))
|
errList.AddErr(err2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if vendorID == model.VendorIDJX {
|
} else if vendorID == model.VendorIDJX {
|
||||||
ReCalculateJxPriceLight(db, ctx, storeID)
|
ReCalculateJxPriceLight(db, ctx, storeID)
|
||||||
} else if vendorID == model.VendorIDYB {
|
//} else if vendorID == model.VendorIDYB {
|
||||||
err = checkYbParams(db, storeMap, storeID)
|
// err = checkYbParams(db, storeMap, storeID)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return nil, err
|
// return nil, err
|
||||||
}
|
// }
|
||||||
} else if vendorID == model.VendorIDJDShop {
|
} else if vendorID == model.VendorIDJDShop {
|
||||||
if storeMap.VendorStoreID == "" {
|
if storeMap.VendorStoreID == "" {
|
||||||
storeMap.SyncStatus = model.SyncFlagNewMask //京东商城要去建店
|
storeMap.SyncStatus = model.SyncFlagNewMask //京东商城要去建店
|
||||||
@@ -1698,13 +1698,13 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
//增加同步到抖店厂商的同步标志
|
//增加同步到抖店厂商的同步标志
|
||||||
DDFlag := false
|
DDFlag := false
|
||||||
errList := errlist.ErrList{}
|
errList := errlist.ErrList{}
|
||||||
if valid["deliveryFeeDeductionSill"] != nil && vendorID == model.VendorIDDD {
|
if (valid["deliveryFeeDeductionSill"] != nil || valid["deliveryFeeDeductionFee"] != nil || valid["ybStorePrefix"] != nil) && vendorID == model.VendorIDDD {
|
||||||
DDFlag = true
|
DDFlag = true
|
||||||
} //特殊处理抖店运费模板
|
} //特殊处理抖店运费模板、打包费
|
||||||
if DDFlag {
|
if DDFlag {
|
||||||
globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板")
|
globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板、起送价、打包费")
|
||||||
if err := tiktok_store.FreightSpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID)); err != nil {
|
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))
|
errList.AddErr(fmt.Errorf("抖店运费模板、起送价、打包费相关处理错误:%v", err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range [][]string{
|
for _, v := range [][]string{
|
||||||
|
|||||||
@@ -481,10 +481,10 @@ type StoreMap struct {
|
|||||||
PricePercentagePack string `orm:"size(32)" json:"pricePercentagePack"` //
|
PricePercentagePack string `orm:"size(32)" json:"pricePercentagePack"` //
|
||||||
FreightDeductionPack string `orm:"size(32)" json:"freightDeductionPack"` //
|
FreightDeductionPack string `orm:"size(32)" json:"freightDeductionPack"` //
|
||||||
|
|
||||||
AutoPickup int8 `orm:"default(1)" json:"autoPickup"` // 是否自动拣货
|
AutoPickup int8 `orm:"default(1)" json:"autoPickup"` // 是否自动拣货
|
||||||
DeliveryType int8 `orm:"default(0)" json:"deliveryType"` // 配送类型
|
DeliveryType int8 `orm:"default(0)" json:"deliveryType"` // 配送类型
|
||||||
DeliveryFeeDeductionSill int `json:"deliveryFeeDeductionSill"`
|
DeliveryFeeDeductionSill int `json:"deliveryFeeDeductionSill"` //在vendorID=14,存储满 x 包邮金额
|
||||||
DeliveryFeeDeductionFee int `json:"deliveryFeeDeductionFee"`
|
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为门店发单
|
||||||
|
|
||||||
@@ -503,7 +503,7 @@ type StoreMap struct {
|
|||||||
|
|
||||||
YbAppID string `orm:"column(yb_app_id);size(255)" json:"ybAppID"`
|
YbAppID string `orm:"column(yb_app_id);size(255)" json:"ybAppID"`
|
||||||
YbAppKey string `orm:"size(255)" json:"ybAppKey"`
|
YbAppKey string `orm:"size(255)" json:"ybAppKey"`
|
||||||
YbStorePrefix string `orm:"size(255)" json:"ybStorePrefix"`
|
YbStorePrefix string `orm:"size(255)" json:"ybStorePrefix"` //在vendorID=14,存储抖店门店起送金额 单位分
|
||||||
|
|
||||||
MtwmToken string `orm:"size(512)" json:"mtwmToken"` //美团外卖商超token,有效期30天,每20天刷一次
|
MtwmToken string `orm:"size(512)" json:"mtwmToken"` //美团外卖商超token,有效期30天,每20天刷一次
|
||||||
MtwmRefreshToken string `orm:"size(255)" json:"mtwmRefreshToken"` //美团外卖商超refreshToken
|
MtwmRefreshToken string `orm:"size(255)" json:"mtwmRefreshToken"` //美团外卖商超refreshToken
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import (
|
|||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
|
||||||
//"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
@@ -89,9 +88,8 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
|||||||
errList = errlist.New()
|
errList = errlist.New()
|
||||||
timeStr = ""
|
timeStr = ""
|
||||||
m = make(map[int64]string)
|
m = make(map[int64]string)
|
||||||
|
a = getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
|
||||||
)
|
)
|
||||||
//增加绑定门店操作
|
|
||||||
a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
|
|
||||||
if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 {
|
if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 {
|
||||||
return "", fmt.Errorf("营业时间必填")
|
return "", fmt.Errorf("营业时间必填")
|
||||||
} else {
|
} else {
|
||||||
@@ -127,7 +125,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
|||||||
return "", err
|
return "", err
|
||||||
} else {
|
} else {
|
||||||
vendorStoreIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId)
|
vendorStoreIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId)
|
||||||
if _, err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId); err != nil {
|
if err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId); err != nil {
|
||||||
errList.AddErr(err)
|
errList.AddErr(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -136,7 +134,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
//电子围栏 仓库 运费模板 限售模板 更新与绑定
|
//电子围栏 仓库 运费模板 限售模板 更新与绑定
|
||||||
func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (string, error) {
|
func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error {
|
||||||
var (
|
var (
|
||||||
errList = errlist.New()
|
errList = errlist.New()
|
||||||
FreightTemplate = &model.FreightTemplate{}
|
FreightTemplate = &model.FreightTemplate{}
|
||||||
@@ -201,8 +199,9 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
|
|||||||
FreightTemplate.FenceID = utils.Int64ToStr(storeID)
|
FreightTemplate.FenceID = utils.Int64ToStr(storeID)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
//电子围栏二次验证
|
||||||
if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏
|
if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏
|
||||||
globals.SugarLogger.Debug("进入创建电子围栏=========")
|
globals.SugarLogger.Debug("进入二次创建电子围栏=========")
|
||||||
if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //创建
|
if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //创建
|
||||||
globals.SugarLogger.Debug("门店(%d) 创建电子围栏失败:%v", storeID, err)
|
globals.SugarLogger.Debug("门店(%d) 创建电子围栏失败:%v", storeID, err)
|
||||||
errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err))
|
errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err))
|
||||||
@@ -248,18 +247,19 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) (stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
|
||||||
globals.SugarLogger.Debug("db update storeID,vendorStoreID defeat on :%v", err)
|
|
||||||
errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err))
|
|
||||||
} else {
|
|
||||||
_, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID")
|
_, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID")
|
||||||
errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err1))
|
if err1 == nil {
|
||||||
|
errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err))
|
||||||
|
} else {
|
||||||
|
errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err1))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
endErr := errList.GetErrListAsOne()
|
endErr := errList.GetErrListAsOne()
|
||||||
if utils.IsNil(errList) {
|
if utils.IsNil(errList) {
|
||||||
globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, true))))
|
globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false))))
|
||||||
return "门店绑定成功,但需要根据提示进行处理", endErr
|
return endErr
|
||||||
} else {
|
} else {
|
||||||
return "门店绑定成功", nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,51 +413,47 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int
|
|||||||
|
|
||||||
//默认 运费模板只创建 固定运费模板
|
//默认 运费模板只创建 固定运费模板
|
||||||
func CreateFreightTemplate(storeCode int) (int64, error) {
|
func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||||
var (
|
|
||||||
param *freightTemplate_create_request.FreightTemplateCreateParam
|
|
||||||
)
|
|
||||||
//获取本地门店信息
|
|
||||||
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "")
|
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
Template := &freightTemplate_create_request.Template{
|
param := &freightTemplate_create_request.FreightTemplateCreateParam{
|
||||||
TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板",
|
Template: &freightTemplate_create_request.Template{
|
||||||
ProductProvince: int64(storeDetail.ProvinceCode),
|
TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")的运费模板",
|
||||||
ProductCity: int64(storeDetail.CityCode),
|
ProductProvince: int64(storeDetail.ProvinceCode),
|
||||||
CalculateType: 2, //计价方式-1.按重量 2.按数量
|
ProductCity: int64(storeDetail.CityCode),
|
||||||
TransferType: 1,
|
CalculateType: 2, //计价方式-1.按重量 2.按数量
|
||||||
RuleType: 1, //固定运费&卖家包邮
|
TransferType: 1,
|
||||||
FixedAmount: 500, //固定运费 单位:分
|
RuleType: 1, //固定运费&卖家包邮
|
||||||
|
FixedAmount: 500, //固定运费 单位:分
|
||||||
|
},
|
||||||
}
|
}
|
||||||
param.Template = Template
|
|
||||||
if int64(storeDetail.DeliveryFeeDeductionSill) != 0 {
|
if int64(storeDetail.DeliveryFeeDeductionSill) != 0 {
|
||||||
param = &freightTemplate_create_request.FreightTemplateCreateParam{
|
columns := []freightTemplate_create_request.ColumnsItem{
|
||||||
Columns: []freightTemplate_create_request.ColumnsItem{
|
{
|
||||||
{
|
RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]),
|
||||||
RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]),
|
IsOverFree: true, //是否包邮
|
||||||
IsOverFree: true, //是否包邮
|
IsLimited: false,
|
||||||
IsLimited: false,
|
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
|
||||||
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
|
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
|
||||||
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
|
{
|
||||||
{
|
Id: int64(storeDetail.ProvinceCode),
|
||||||
Id: int64(storeDetail.ProvinceCode),
|
Children: []freightTemplate_create_request.ChildrenItem_4{
|
||||||
Children: []freightTemplate_create_request.ChildrenItem_4{
|
{
|
||||||
{
|
Id: int64(storeDetail.CityCode),
|
||||||
Id: int64(storeDetail.CityCode),
|
Children: []freightTemplate_create_request.ChildrenItem_5{
|
||||||
Children: []freightTemplate_create_request.ChildrenItem_5{
|
{
|
||||||
{
|
Id: int64(storeDetail.DistrictCode),
|
||||||
Id: int64(storeDetail.DistrictCode),
|
Children: []freightTemplate_create_request.ChildrenItem{
|
||||||
Children: []freightTemplate_create_request.ChildrenItem{
|
{Id: 0},
|
||||||
{Id: 0},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}},
|
},
|
||||||
},
|
}},
|
||||||
}},
|
},
|
||||||
}
|
}}
|
||||||
|
param.Columns = columns
|
||||||
}
|
}
|
||||||
resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param)
|
resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -467,7 +463,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// /freightTemplate/update 修改运费模板
|
// /freightTemplate/update 修改运费模板
|
||||||
func UpdateFreightTemplate(vendorStoreCode string, storeCode int) error {
|
func UpdateFreightTemplate(storeCode int) error {
|
||||||
globals.SugarLogger.Debugf("进入UpdateFreightTemplate")
|
globals.SugarLogger.Debugf("进入UpdateFreightTemplate")
|
||||||
var (
|
var (
|
||||||
columns []freightTemplate_update_request.ColumnsItem
|
columns []freightTemplate_update_request.ColumnsItem
|
||||||
@@ -519,7 +515,7 @@ func UpdateFreightTemplate(vendorStoreCode string, storeCode int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// /freightTemplate/create 创建运费模板
|
// /freightTemplate/create 创建运费模板 暂时未使用
|
||||||
func (P *PurchaseHandler) CreateFreightTemplateDirectly(templateInfo freightTemplate_create_request.FreightTemplateCreateParam, storeID, vendorStoreID int64) error {
|
func (P *PurchaseHandler) CreateFreightTemplateDirectly(templateInfo freightTemplate_create_request.FreightTemplateCreateParam, storeID, vendorStoreID int64) error {
|
||||||
var (
|
var (
|
||||||
db *dao.DaoDB
|
db *dao.DaoDB
|
||||||
@@ -575,7 +571,7 @@ func ShopBindStoreFreight(vendorOrgCode string, storeID, freightID int64) error
|
|||||||
func GetStoreFreight(vendorOrgCode string, storeID int64) (int64, error) {
|
func GetStoreFreight(vendorOrgCode string, storeID int64) (int64, error) {
|
||||||
resp, err := getAPI(vendorOrgCode, int(storeID), "").GetStoreFreight(storeID)
|
resp, err := getAPI(vendorOrgCode, int(storeID), "").GetStoreFreight(storeID)
|
||||||
if err != nil || len(resp) == 0 {
|
if err != nil || len(resp) == 0 {
|
||||||
return 0, errors.New(fmt.Sprintf("获取门店绑定运费模板失败:%v", err))
|
return 0, err
|
||||||
}
|
}
|
||||||
return resp[0], nil
|
return resp[0], nil
|
||||||
}
|
}
|
||||||
@@ -614,33 +610,63 @@ func (P *PurchaseHandler) GetAddressList(param *address_list_request.AddressList
|
|||||||
return listInfo, nil
|
return listInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// /trade/createTradeLimitTemplate 创建限售模板
|
// /trade/createTradeLimitTemplate 创建限售模板 默认模板
|
||||||
func CreateTradeLimitTemplate(appOrgCode string, storeID int64) (tradeLimitID int64, err error) {
|
func CreateTradeLimitTemplate(appOrgCode string, vendorStoreID int64) (tradeLimitID int64, err error) {
|
||||||
var (
|
|
||||||
items []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem
|
|
||||||
)
|
|
||||||
item := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
|
|
||||||
TradeLimitModel: tiktok_api.TradeLimitModelQuantity,
|
|
||||||
TradeLimitResource: tiktok_api.TradeLimitResourceDouDian,
|
|
||||||
TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{
|
|
||||||
Minimum: 1,
|
|
||||||
Maximum: 1000,
|
|
||||||
CumulativeMax: 10000,
|
|
||||||
},
|
|
||||||
TradeLimitSubjectList: []int32{tiktok_api.TradeLimitSubjectBuyMobile},
|
|
||||||
}
|
|
||||||
items = append(items, item)
|
|
||||||
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
|
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
|
||||||
StoreId: storeID,
|
StoreId: vendorStoreID,
|
||||||
TradeLimitRuleRequestList: items,
|
TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
|
||||||
|
{
|
||||||
|
TradeLimitModel: tiktok_api.TradeLimitModelQuantity,
|
||||||
|
TradeLimitResource: tiktok_api.TradeLimitResourceDouDian,
|
||||||
|
TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{
|
||||||
|
Minimum: 1,
|
||||||
|
Maximum: 1000,
|
||||||
|
CumulativeMax: 10000,
|
||||||
|
},
|
||||||
|
TradeLimitSubjectList: []int32{tiktok_api.TradeLimitSubjectBuyMobile},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
resp, err := getAPI(appOrgCode, 0, utils.Int64ToStr(storeID)).CreateTradeLimitTemplate(param)
|
resp, err := getAPI(appOrgCode, 0, utils.Int64ToStr(vendorStoreID)).CreateTradeLimitTemplate(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
return resp.TradeLimitId, nil
|
return resp.TradeLimitId, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//创建起送价的 运费模板以及绑定
|
||||||
|
func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum int64) error {
|
||||||
|
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
|
||||||
|
StoreId: vendorStoreID,
|
||||||
|
TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
|
||||||
|
{
|
||||||
|
TradeLimitModel: tiktok_api.TradeLimitModelMoney,
|
||||||
|
TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{
|
||||||
|
Minimum: minimum,
|
||||||
|
},
|
||||||
|
TradeLimitSubjectList: []int32{
|
||||||
|
tiktok_api.TradeLimitSubjectEndUser,
|
||||||
|
tiktok_api.TradeLimitSubjectUserGroup,
|
||||||
|
tiktok_api.TradeLimitSubjectDevice,
|
||||||
|
tiktok_api.TradeLimitSubjectBuyMobile,
|
||||||
|
tiktok_api.TradeLimitSubjectReceivingMobile,
|
||||||
|
tiktok_api.TradeLimitSubjectIDCard,
|
||||||
|
tiktok_api.TradeLimitSubjectPayAccount,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(param)
|
||||||
|
if err != nil || resp.TradeLimitId == 0 {
|
||||||
|
return errors.New(fmt.Sprintf("创建门店(%d)的起送价失败:%v", vendorStoreID, err))
|
||||||
|
} else { //绑定
|
||||||
|
if err := BindStoreSaleLimit(vendorOrgCode, vendorStoreID, resp.TradeLimitId); err != nil {
|
||||||
|
return errors.New(fmt.Sprintf("门店(%d)绑定 起送价限售模板失败:%v", vendorStoreID, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// /shop/bindStoreSaleLimit 门店绑定限售模板
|
// /shop/bindStoreSaleLimit 门店绑定限售模板
|
||||||
func BindStoreSaleLimit(appOrgCode string, storeID, saleLimitTemplateID int64) error {
|
func BindStoreSaleLimit(appOrgCode string, storeID, saleLimitTemplateID int64) error {
|
||||||
info := &shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{
|
info := &shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{
|
||||||
@@ -808,6 +834,14 @@ func (P *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendo
|
|||||||
return retVal, nil
|
return retVal, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置门店打包费
|
||||||
|
func SetStorePackageFee(vendorOrgCode string, vendorStoreID, packageFee int64) error {
|
||||||
|
if err := getAPI(vendorOrgCode, 0, "").SetStorePackageFee(vendorStoreID, packageFee); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (P *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) {
|
func (P *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) {
|
||||||
return "", errors.New("抖店暂不支持此操作")
|
return "", errors.New("抖店暂不支持此操作")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,6 +130,8 @@ func CreateFenceByStore(appOrgCode string, storeID int64) (fenceID string, err e
|
|||||||
}
|
}
|
||||||
param.FenceInfo.Circular = circular
|
param.FenceInfo.Circular = circular
|
||||||
param.FenceInfo.Shape = tiktok_api.ShapeCircular
|
param.FenceInfo.Shape = tiktok_api.ShapeCircular
|
||||||
|
globals.SugarLogger.Debug("圆:lat,lng", circular.Center.Latitude, circular.Center.Longitude)
|
||||||
|
|
||||||
} else if localStore.DeliveryRangeType == LocalShapePolygon {
|
} else if localStore.DeliveryRangeType == LocalShapePolygon {
|
||||||
tempStr := strings.Split(localStore.DeliveryRange, ";")
|
tempStr := strings.Split(localStore.DeliveryRange, ";")
|
||||||
for v := len(tempStr) - 1; v >= 0; v-- {
|
for v := len(tempStr) - 1; v >= 0; v-- {
|
||||||
@@ -142,6 +144,7 @@ func CreateFenceByStore(appOrgCode string, storeID int64) (fenceID string, err e
|
|||||||
}
|
}
|
||||||
param.FenceInfo.Polygon.Vertices = vertex
|
param.FenceInfo.Polygon.Vertices = vertex
|
||||||
param.FenceInfo.Shape = tiktok_api.ShapePolygon
|
param.FenceInfo.Shape = tiktok_api.ShapePolygon
|
||||||
|
globals.SugarLogger.Debug("多边形:vertex", param.FenceInfo.Polygon.Vertices)
|
||||||
}
|
}
|
||||||
param.FenceInfo.OutFenceId = utils.Int64ToStr(storeID) //绑定基于此id
|
param.FenceInfo.OutFenceId = utils.Int64ToStr(storeID) //绑定基于此id
|
||||||
resp, err := getAPI(appOrgCode, 0, "").CreateFence(param)
|
resp, err := getAPI(appOrgCode, 0, "").CreateFence(param)
|
||||||
@@ -245,7 +248,7 @@ func GetFence(appOrgCode, outFenceID string) (warehouse_getFences_response.Fence
|
|||||||
}
|
}
|
||||||
|
|
||||||
//单独处理运费模板
|
//单独处理运费模板
|
||||||
func FreightSpecialTreat(vendorOrgCode string, vendorStoreID, storeID int64) error {
|
func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeductionFee, minPrice int64) error {
|
||||||
var (
|
var (
|
||||||
errList = errlist.New()
|
errList = errlist.New()
|
||||||
FreightTemplate = &model.FreightTemplate{}
|
FreightTemplate = &model.FreightTemplate{}
|
||||||
@@ -270,11 +273,19 @@ func FreightSpecialTreat(vendorOrgCode string, vendorStoreID, storeID int64) err
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if err := UpdateFreightTemplate(vendorOrgCode, int(storeID)); err != nil {
|
if err := UpdateFreightTemplate(int(storeID)); err != nil {
|
||||||
globals.SugarLogger.Debug("更新运费模板失败:", err)
|
globals.SugarLogger.Debug("更新运费模板失败:", err)
|
||||||
errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err))
|
errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//设置门店打包费 默认为0
|
||||||
|
if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil {
|
||||||
|
errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err))
|
||||||
|
}
|
||||||
|
//设置门店起送价 默认为0
|
||||||
|
if err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil {
|
||||||
|
errList.AddErr(fmt.Errorf("设置门店起送价失败:%v", err))
|
||||||
|
}
|
||||||
err1 := dao.CreateEntity(db, FreightTemplate)
|
err1 := dao.CreateEntity(db, FreightTemplate)
|
||||||
if err1 != nil {
|
if err1 != nil {
|
||||||
_, err2 := dao.UpdateEntity(db, FreightTemplate, "TemplateID")
|
_, err2 := dao.UpdateEntity(db, FreightTemplate, "TemplateID")
|
||||||
@@ -283,6 +294,6 @@ func FreightSpecialTreat(vendorOrgCode string, vendorStoreID, storeID int64) err
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
endErr := errList.GetErrListAsOne()
|
endErr := errList.GetErrListAsOne()
|
||||||
globals.SugarLogger.Debugf("errList===============%s", endErr)
|
globals.SugarLogger.Debugf("endErr===============%s", endErr)
|
||||||
return endErr
|
return endErr
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user