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 {
timeStr = SplicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, true)
} else {
timeStr = SplicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, 0, 0, false)
}
for j := 1; j <= 7; j++ {
m[int64(j)] = timeStr
}
globals.SugarLogger.Debug("storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2timeStr===========", storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, timeStr) globals.SugarLogger.Debug("storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2timeStr===========", storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, timeStr)
} }
m := make(map[int64]string)
for j := 1; j <= 7; j++ {
m[int64(j)] = 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,13 +138,14 @@ 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))
}
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))
} else { } else {
FreightTemplate.TemplateID = freightTemplateID if err = ShopBindStoreFreight(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), freightTemplateID); err != nil {
if err = dao.CreateEntity(db, FreightTemplate); err != nil { errList.AddErr(fmt.Errorf("本地门店:%d 绑定运费模板:%d失败%v", int64(storeDetail.Store.ID), freightTemplateID, err))
errList.AddErr(fmt.Errorf("运费模板ID存入数据库失败%v", err)) } else {
FreightTemplate.TemplateID = freightTemplateID
if err = dao.CreateEntity(db, FreightTemplate); err != nil {
errList.AddErr(fmt.Errorf("运费模板ID存入数据库失败%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,48 +322,62 @@ 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 {
Template: &freightTemplate_create_request.Template{ param = &freightTemplate_create_request.FreightTemplateCreateParam{
TemplateName: "门店编码:" + 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, //固定运费 单位:分
Columns: []freightTemplate_create_request.ColumnsItem{ },
{ }
FirstNum: 1, } else {
FirstNumPrice: 0.00, param = &freightTemplate_create_request.FreightTemplateCreateParam{
AddNum: 1, Template: &freightTemplate_create_request.Template{
AddNumPrice: 0.00, TemplateName: storeDetail.VendorStoreName + "_" + utils.Int2Str(storeCode) + "的运费模板",
RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]), ProductProvince: int64(storeDetail.ProvinceCode),
IsOverFree: true, //是否包邮 ProductCity: int64(storeDetail.CityCode),
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 CalculateType: 2, //计价方式-1.按重量 2.按数量
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ TransferType: 1,
{ RuleType: 1, //固定运费&卖家包邮
Id: int64(storeDetail.ProvinceCode), FixedAmount: 500, //固定运费 单位:分
Children: []freightTemplate_create_request.ChildrenItem_4{ },
{ Columns: []freightTemplate_create_request.ColumnsItem{
Id: int64(storeDetail.CityCode), {
Children: []freightTemplate_create_request.ChildrenItem_5{ RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]),
{ IsOverFree: true, //是否包邮
Id: int64(storeDetail.DistrictCode), IsLimited: false,
Children: []freightTemplate_create_request.ChildrenItem{ OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
{Id: 0}, ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
{
Id: int64(storeDetail.ProvinceCode),
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},
},
}, },
}, },
}, },
}, }},
}}, },
}, }},
}}, }
} }
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 {
@@ -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{
{ {