This commit is contained in:
richboo111
2022-10-25 11:28:05 +08:00
parent ff513b2dcf
commit 03691b5e0f
2 changed files with 103 additions and 80 deletions

View File

@@ -32,15 +32,14 @@ import (
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
) )
func SplicingTimeToDoudian(openTime1, closeTime1, openTime2, closeTime2 int16) (timeList string) { func SplicingTimeToDoudian(openTime1, closeTime1, openTime2, closeTime2 int16, flag bool) (timeList string) {
//700 1200 -> 07:00-12:00 //700 1200 -> 07:00-12:00
var ( var (
s1 = "" s1 = ""
ts1 = "" ts1 = ""
s2 = "" s2 = ""
ts2 = "" ts2 = ""
s3 = "" //ts3 = ""//暂不支持多时间段
ts3 = ""
s4 = "" s4 = ""
ts4 = "" ts4 = ""
timeStr = "" timeStr = ""
@@ -52,34 +51,32 @@ func SplicingTimeToDoudian(openTime1, closeTime1, openTime2, closeTime2 int16) (
ts1 = "0" ts1 = "0"
} }
s1 = ts1 + tOpenTime1[:len1] + ":" + tOpenTime1[len1:] s1 = ts1 + tOpenTime1[:len1] + ":" + tOpenTime1[len1:]
globals.SugarLogger.Debug("tOpenTime1[:len1]==============", tOpenTime1[:len1])
globals.SugarLogger.Debug("tOpenTime1[len1+1:]==============", tOpenTime1[len1:])
globals.SugarLogger.Debug("s1==============", s1)
globals.SugarLogger.Debug("ts1+tOpenTime1[:len1]+\":\"+tOpenTime1[len1+1:]====", ts1+tOpenTime1[:len1]+":"+tOpenTime1[len1+1:])
tCloseTime1 := utils.Int64ToStr(int64(closeTime1)) tCloseTime1 := utils.Int64ToStr(int64(closeTime1))
len2 := len(tCloseTime1) - 2 len2 := len(tCloseTime1) - 2
if utils.Str2Int(tCloseTime1[:len2]) <= 9 { if utils.Str2Int(tCloseTime1[:len2]) <= 9 {
ts2 = "0" ts2 = "0"
} }
s2 = ts2 + tCloseTime1[:len2] + ":" + tCloseTime1[len2+1:] + "0" s2 = ts2 + tCloseTime1[:len2] + ":" + tCloseTime1[len2:]
timeStr += s1 + "-" + s2
if openTime2 != 0 && closeTime2 != 0 { if openTime2 != 0 && closeTime2 != 0 {
tOpenTime2 := utils.Int64ToStr(int64(openTime2)) //tOpenTime2 := utils.Int64ToStr(int64(openTime2))
len3 := len(tOpenTime2) - 2 //len3 := len(tOpenTime2) - 2
if utils.Str2Int(tOpenTime2[:len3]) <= 9 { //if utils.Str2Int(tOpenTime2[:len3]) <= 9 {
ts3 = "0" // ts3 = "0"
} //}
s3 = ts3 + tOpenTime2[:len3] + ":" + tOpenTime2[len3+1:] + "0" //s3 = ts3 + tOpenTime2[:len3] + ":" + tOpenTime2[len3:]
tCloseTime2 := utils.Int64ToStr(int64(closeTime2)) tCloseTime2 := utils.Int64ToStr(int64(closeTime2))
len4 := len(tCloseTime2) - 2 len4 := len(tCloseTime2) - 2
if utils.Str2Int(tCloseTime2[:len4]) <= 9 { if utils.Str2Int(tCloseTime2[:len4]) <= 9 {
ts4 = "0" ts4 = "0"
} }
s4 = ts4 + tCloseTime2[:len4] + ":" + tCloseTime2[len4+1:] + "0" s4 = ts4 + tCloseTime2[:len4] + ":" + tCloseTime2[len4:]
timeStr += " " + s3 + "-" + s4
} }
} }
if flag {
timeStr += s1 + "-" + s4
} else {
timeStr += s1 + "-" + s2
}
return timeStr return timeStr
} }
@@ -91,20 +88,24 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
lists []shop_batchCreateStore_request.StoreListItem lists []shop_batchCreateStore_request.StoreListItem
ShopBatchCreateStoreParam *shop_batchCreateStore_request.ShopBatchCreateStoreParam ShopBatchCreateStoreParam *shop_batchCreateStore_request.ShopBatchCreateStoreParam
FreightTemplate = &model.FreightTemplate{} FreightTemplate = &model.FreightTemplate{}
errList = errlist.New()
) )
errList := errlist.New()
a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID) a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
timeStr := "" timeStr := ""
m := make(map[int64]string)
if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 { if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 {
return "", fmt.Errorf("营业时间必填") return "", fmt.Errorf("营业时间必填")
} else { } else {
timeStr = SplicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2) if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 {
globals.SugarLogger.Debug("storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2timeStr===========", storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, timeStr) timeStr = SplicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, true)
} else {
timeStr = SplicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, 0, 0, false)
} }
m := make(map[int64]string)
for j := 1; j <= 7; j++ { for j := 1; j <= 7; j++ {
m[int64(j)] = timeStr m[int64(j)] = timeStr
} }
globals.SugarLogger.Debug("storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2timeStr===========", storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, timeStr)
}
list := shop_batchCreateStore_request.StoreListItem{ list := shop_batchCreateStore_request.StoreListItem{
RowId: 1, RowId: 1,
Name: storeDetail.Name, Name: storeDetail.Name,
@@ -127,15 +128,6 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
if resp, err := a.BatchCreateStore(ShopBatchCreateStoreParam); err != nil { if resp, err := a.BatchCreateStore(ShopBatchCreateStoreParam); err != nil {
return "", err return "", err
} else { } else {
//if len(resp.ResultList) == 0 {
// return "", errors.New(fmt.Sprintf("创建店铺失败:%v", err))
//}
//for k, v := range resp.ResultList {
// if k != len(resp.ResultList) {
// storeIDs = utils.Int64ToStr(v.Store.StoreId) + ","
// }
// storeIDs = utils.Int64ToStr(v.Store.StoreId)
//}
storeIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId) storeIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId)
if utils.Str2Int(storeIDs) == 0 || len(resp.ResultList) == 0 { if utils.Str2Int(storeIDs) == 0 || len(resp.ResultList) == 0 {
return "", errors.New(fmt.Sprintf("创建店铺失败,storeIDs = 0:%v,%v", err, resp.ResultList[0].Msg)) return "", errors.New(fmt.Sprintf("创建店铺失败,storeIDs = 0:%v,%v", err, resp.ResultList[0].Msg))
@@ -146,7 +138,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
} else { } else {
if freightTemplateID == 0 { if freightTemplateID == 0 {
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err))
} } else {
if err = ShopBindStoreFreight(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), freightTemplateID); err != nil { if err = ShopBindStoreFreight(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), freightTemplateID); err != nil {
errList.AddErr(fmt.Errorf("本地门店:%d 绑定运费模板:%d失败%v", int64(storeDetail.Store.ID), freightTemplateID, err)) errList.AddErr(fmt.Errorf("本地门店:%d 绑定运费模板:%d失败%v", int64(storeDetail.Store.ID), freightTemplateID, err))
} else { } else {
@@ -156,6 +148,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
} }
} }
} }
}
//创建并绑定仓库 //创建并绑定仓库
if warehouse, err := CreateWarehouse(storeDetail.VendorOrgCode, utils.Int2Str(storeDetail.Store.ID)); err != nil { if warehouse, err := CreateWarehouse(storeDetail.VendorOrgCode, utils.Int2Str(storeDetail.Store.ID)); err != nil {
errList.AddErr(fmt.Errorf("创建仓库失败:%v", err)) errList.AddErr(fmt.Errorf("创建仓库失败:%v", err))
@@ -221,10 +214,16 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
timeStr := "" timeStr := ""
m := make(map[int64]string) m := make(map[int64]string)
if storeInfo.OpenTime1 != 0 && storeInfo.CloseTime1 != 0 { if storeInfo.OpenTime1 != 0 && storeInfo.CloseTime1 != 0 {
timeStr = SplicingTimeToDoudian(storeInfo.OpenTime1, storeInfo.CloseTime1, storeInfo.OpenTime2, storeInfo.CloseTime2) if storeInfo.OpenTime2 != 0 && storeInfo.CloseTime2 != 0 {
timeStr = SplicingTimeToDoudian(storeInfo.OpenTime1, storeInfo.CloseTime1, storeInfo.OpenTime2, storeInfo.CloseTime2, true)
} else {
timeStr = SplicingTimeToDoudian(storeInfo.OpenTime1, storeInfo.CloseTime1, 0, 0, false)
}
for j := 1; j <= 7; j++ { for j := 1; j <= 7; j++ {
m[int64(j)] = timeStr m[int64(j)] = timeStr
} }
} else {
return fmt.Errorf("营业时间必填")
} }
vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{ vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: utils.Str2Int64(storeInfo.VendorStoreID), StoreId: utils.Str2Int64(storeInfo.VendorStoreID),
@@ -323,29 +322,42 @@ func (p *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCod
//默认 运费模板只创建 固定运费模板 //默认 运费模板只创建 固定运费模板
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
} }
param := &freightTemplate_create_request.FreightTemplateCreateParam{ if int64(storeDetail.DeliveryFeeDeductionSill) == 0 {
param = &freightTemplate_create_request.FreightTemplateCreateParam{
Template: &freightTemplate_create_request.Template{ Template: &freightTemplate_create_request.Template{
TemplateName: "门店编码:" + utils.Int2Str(storeCode) + "的运费模板", TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板",
ProductProvince: int64(storeDetail.ProvinceCode), ProductProvince: int64(storeDetail.ProvinceCode),
ProductCity: int64(storeDetail.CityCode), ProductCity: int64(storeDetail.CityCode),
CalculateType: 2, //计价方式-1.按重量 2.按数量 CalculateType: 2, //计价方式-1.按重量 2.按数量
TransferType: 1, TransferType: 1,
RuleType: 1, //卖家包邮 RuleType: 1, //固定运费
FixedAmount: 500, //固定运费 单位:分
},
}
} else {
param = &freightTemplate_create_request.FreightTemplateCreateParam{
Template: &freightTemplate_create_request.Template{
TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板",
ProductProvince: int64(storeDetail.ProvinceCode),
ProductCity: int64(storeDetail.CityCode),
CalculateType: 2, //计价方式-1.按重量 2.按数量
TransferType: 1,
RuleType: 1, //固定运费&卖家包邮
FixedAmount: 500, //固定运费 单位:分 FixedAmount: 500, //固定运费 单位:分
}, },
Columns: []freightTemplate_create_request.ColumnsItem{ Columns: []freightTemplate_create_request.ColumnsItem{
{ {
FirstNum: 1,
FirstNumPrice: 0.00,
AddNum: 1,
AddNumPrice: 0.00,
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,
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{
{ {
@@ -366,6 +378,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
}, },
}}, }},
} }
}
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 {
return 0, err return 0, err
@@ -567,7 +580,16 @@ func (P *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCod
t2 := opTimeList[1] t2 := opTimeList[1]
t3 := opTimeList[2] t3 := opTimeList[2]
t4 := opTimeList[4] t4 := opTimeList[4]
timeStr := SplicingTimeToDoudian(t1, t2, t3, t4) timeStr := ""
if t1 != 0 && t2 != 0 {
if t3 != 0 && t4 != 0 {
timeStr = SplicingTimeToDoudian(t1, t2, t3, t4, true)
} else {
timeStr = SplicingTimeToDoudian(t1, t2, t3, t4, false)
}
} else {
return fmt.Errorf("营业时间必填")
}
m := make(map[int64]string) m := make(map[int64]string)
for j := 1; j <= 7; j++ { for j := 1; j <= 7; j++ {
m[int64(j)] = timeStr m[int64(j)] = timeStr

View File

@@ -83,8 +83,9 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao
}, },
Columns: []freightTemplate_create_request.ColumnsItem{ Columns: []freightTemplate_create_request.ColumnsItem{
{ {
RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":nil}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)), RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":[0]}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)),
IsOverFree: true, IsOverFree: true,
IsLimited: false,
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), OverAmount: int64(storeDetail.DeliveryFeeDeductionSill),
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
{ {