From b13071a824bb9c85bfa842f2858c3a01f2560141 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 22 Nov 2022 14:10:53 +0800 Subject: [PATCH] tomap --- .../partner/purchase/tiktok_store/store.go | 165 ++++++++++++++---- controllers/cms_store.go | 26 ++- 2 files changed, 152 insertions(+), 39 deletions(-) diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 104ac2e82..337fb1545 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -31,6 +31,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" + "reflect" ) func SplicingTimeToDoudian(openTime1, closeTime1, openTime2, closeTime2 int16, flag bool) (timeList string) { @@ -669,43 +670,119 @@ func UpdateFreightTemplate(storeCode int) error { return nil } -// /freightTemplate/create 创建运费模板 暂时未使用 -func (P *PurchaseHandler) CreateFreightTemplateDirectly(templateInfo freightTemplate_create_request.FreightTemplateCreateParam, storeID, vendorStoreID int64) error { - var ( - db *dao.DaoDB - ) - if templateInfo.Template.RuleType > 0 { - templateInfo.Template.CalculateType = tiktok_api.CalculateTypeNum - } - info := &freightTemplate_create_request.FreightTemplateCreateParam{ - Template: templateInfo.Template, - Columns: templateInfo.Columns, - } - api := getAPI("", int(storeID), utils.Int64ToStr(vendorStoreID)) - resp, err := api.FreightTemplateCreate(info) - if err != nil { - return err - } - //创建成功后进行绑定 - bindInfo := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{ - StoreId: vendorStoreID, - FreightId: resp.TemplateId, - } - err = api.BindFreightTemplate(bindInfo) - if err != nil { - return err - } - //并写入数据库 - freightInfo := model.FreightTemplate{ - StoreID: int(storeID), - VendorStoreID: utils.Int64ToStr(vendorStoreID), - TemplateID: resp.TemplateId, - } - if err = dao.CreateEntity(db, freightInfo); err != nil { - return err - } - return nil -} +// /freightTemplate/create 批量创建 满x包邮 运费模板 +//func (P *PurchaseHandler) BatchCreateFreightTemplate(relInfo map[string]map[string]string, shipFee int64) error { +// var ( +// errList = errlist.New() +// flag = make(map[string]bool) +// ) +// for i, j := range relInfo { +// for k, v := range j { +// if bindFreightID, err := getAPI(i, utils.Str2Int(k), v).GetStoreFreight(utils.Str2Int64(v)); err != nil || len(bindFreightID) == 0 { +// flag[v] = false +// } +// flag[v] = true +// } +// } +// storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "") +// if err != nil { +// return errors.New("获取门店信息失败,请重试") +// } +// //预处理(1)更新 (2)创建 +// param := &freightTemplate_create_request.FreightTemplateCreateParam{ +// Template: &freightTemplate_create_request.Template{ +// TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeID) + ")_", +// ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), +// CalculateType: 2, //计价方式-1.按重量 2.按数量 +// TransferType: 1, +// RuleType: 1, //固定运费&卖家包邮 +// FixedAmount: 500, //固定运费 单位:分 +// }, +// } +// //直辖市特殊处理 +// flag := false +// if storeDetail.CityName == tiktok_api.MunicipalityBeiJin || storeDetail.CityName == tiktok_api.MunicipalityShangHai || storeDetail.CityName == tiktok_api.MunicipalityTianJin || storeDetail.CityName == tiktok_api.MunicipalityChongQing { +// flag = true +// param.Template.ProductCity = int64(storeDetail.ProvinceCode) +// } else { +// param.Template.ProductCity = int64(storeDetail.CityCode) +// } +// 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 +// if flag { +// 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.ProvinceCode), +// Children: []freightTemplate_create_request.ChildrenItem_5{ +// { +// Id: int64(storeDetail.DistrictCode), +// Children: []freightTemplate_create_request.ChildrenItem{ +// {Id: 0}, +// }, +// }, +// }, +// }, +// }}, +// } +// } else { +// 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}, +// }, +// }, +// }, +// }, +// }}, +// } +// } +// } else { +// param.Columns = nil +// param.Template.TemplateName += "固定运费模板" +// } +// globals.SugarLogger.Debugf(" param.Template.ProductCity==%d,param.Template.ProductProvince==%d", param.Template.ProductCity, param.Template.ProductProvince) +// resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param) +// if err != nil { +// return 0, err +// } +// return resp.TemplateId, nil +// +// bindInfo := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{ +// StoreId: vendorStoreID, +// FreightId: resp.TemplateId, +// } +// err = api.BindFreightTemplate(bindInfo) +// if err != nil { +// return err +// } +// //并写入数据库 +// freightInfo := model.FreightTemplate{ +// StoreID: int(storeID), +// VendorStoreID: utils.Int64ToStr(vendorStoreID), +// TemplateID: resp.TemplateId, +// } +// if err = dao.CreateEntity(db, freightInfo); err != nil { +// return err +// } +// return nil +//} // /shop/bindStoreFreight 门店绑定运费模版 //门店绑定运费模版,运费模版必须属于门店关联的抖店,且门店与运费模版是一对一关系 @@ -1020,3 +1097,17 @@ func (P *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (s func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, skuID int, vendorSkuID string) (skuNameList []*partner.SkuNameInfo, err error) { return nil, err } + +//以下为辅助函数 + +func ToMap(actual interface{}) ([]string, error) { + var res []string + value := reflect.ValueOf(actual) + if value.Kind() != reflect.Slice && value.Kind() != reflect.Array { + return nil, errors.New("parse error") + } + for i := 0; i < value.Len(); i++ { + res = append(res, value.Index(i).Interface().(string)) + } + return res, nil +} diff --git a/controllers/cms_store.go b/controllers/cms_store.go index 690e7be2e..a57afb334 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -9,6 +9,8 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/model" + "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" ) @@ -1518,9 +1520,29 @@ func (c *StoreController) GetDDScope() { func (c *StoreController) CreateDDStoreFence() { c.callCreateDDStoreFence(func(params *tStoreCreateDDStoreFenceParams) (retVal interface{}, errCode string, err error) { payload := make(map[string]map[string]string) - if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil { - retVal, err = cms.AssistCreateFence(payload) + info := make(map[string]map[string]string) + if result, err := utils.Unmarshal2Map([]byte(params.Payload), &payload); err == nil { + for i, j := range result { + if temp, err := tiktok_store.ToMap(j); err != nil { + globals.SugarLogger.Debugf("tomap err==============%v", err) + return nil, "", err + } else { + for k, v := range temp { + info[i] = map[string]string{utils.Int2Str(k): v} + } + } + } + retVal, err = cms.AssistCreateFence(info) } return retVal, "", err }) } + +// @Title 批量创建抖店包邮运费模板 +// @Description 批量创建抖店包邮运费模板 +// @Param token header string true "认证token" +// @Param shipFee formData int true "包邮金额" +// @Param payload formData string true "json数据,[]string对象" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /CreateFreeShipTemplates [post]