From e5bd36ded028c21a65394fde64e2a5fd4ac9ec8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 18 Feb 2021 15:45:06 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store.go | 4 -- business/partner/purchase/jd/store.go | 59 ++++++++++++++++++++++++- business/partner/purchase/mtwm/store.go | 49 ++++++++++++++++++-- 3 files changed, 104 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 1dd50da56..ad88136bf 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -3903,10 +3903,6 @@ func CreateVendorStore(ctx *jxcontext.Context, storeID, vendorID int, payload ma db = dao.GetDB() storeDetail *dao.StoreDetail ) - if vendorID != model.VendorIDEBAI { - return fmt.Errorf("当前只允许创建饿百门店!") - } - if storeDetail, err = dao.GetStoreDetail(db, storeID, vendorID, ""); err != nil { return fmt.Errorf("获取门店信息失败,请联系技术部!") } diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index a9c162c4a..fb07c83ff 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -523,7 +523,64 @@ func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgC } func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName string, params map[string]interface{}, storeDetail *dao.StoreDetail) (vendorStoreID string, err error) { - return vendorStoreID, err + vendorOrgCode := params["vendorOrgCode"].(string) + if vendorOrgCode == "" { + return "", fmt.Errorf("平台账号必传!") + } + place, err := dao.GetPlaceByCode(db, storeDetail.DistrictCode) + if err != nil { + return "", err + } + county := place.JdCode + + //营业时间1开始;传值规则:每30分钟加1,即00:00为0,00:30为1,以此类推,23:30为47,23:59为48 + serviceTimeStart1, serviceTimeStart2, serviceTimeEnd1, serviceTimeEnd2 := 0, 0, 0, 0 + if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 { + serviceTimeStart1 = (int(storeDetail.OpenTime1)/100)*2 + int(storeDetail.OpenTime1)%100/30 + serviceTimeEnd1 = (int(storeDetail.CloseTime1)/100)*2 + int(storeDetail.CloseTime1)%100/30 + if storeDetail.OpenTime1 == 2359 || (storeDetail.OpenTime1 < 30 && storeDetail.OpenTime1 > 0) { + serviceTimeStart1++ + } + if storeDetail.CloseTime1 == 2359 || (storeDetail.CloseTime1 < 30 && storeDetail.CloseTime1 > 0) { + serviceTimeEnd1++ + } + if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { + serviceTimeStart2 = (int(storeDetail.OpenTime2)/100)*2 + int(storeDetail.OpenTime2)%100/30 + serviceTimeEnd2 = (int(storeDetail.CloseTime2)/100)*2 + int(storeDetail.CloseTime2)%100/30 + if storeDetail.OpenTime2 == 2359 || (storeDetail.OpenTime2 < 30 && storeDetail.OpenTime2 > 0) { + serviceTimeStart2++ + } + if storeDetail.CloseTime2 == 2359 || (storeDetail.CloseTime2 < 30 && storeDetail.CloseTime2 > 0) { + serviceTimeEnd2++ + } + } + } + + createParams := &jdapi.OpStoreParams{ + StationName: params["vendorStoreName"].(string), + OutSystemID: utils.Int2Str(storeDetail.ID), + Phone: storeDetail.Tel1, + Mobile: storeDetail.Tel1, + City: storeDetail.JdCode, + County: county, + StationAddress: storeDetail.Address, + Operator: vendorOrgCode, + ServiceTimeStart1: serviceTimeStart1, + ServiceTimeStart2: serviceTimeStart2, + ServiceTimeEnd1: serviceTimeEnd1, + ServiceTimeEnd2: serviceTimeEnd2, + Lat: jxutils.IntCoordinate2Standard(storeDetail.Lat), + Lng: jxutils.IntCoordinate2Standard(storeDetail.Lng), + CoordinateType: 3, //使用的地图类型(1,谷歌), (2,百度), (3,高德), (4,腾讯) + DeliveryRangeType: storeDetail.DeliveryRangeType, + DeliveryRangeRadius: utils.Str2Int(storeDetail.DeliveryRange), + StandByPhone: storeDetail.Tel1 + "," + "18048531223", + } + result, err := getAPI(vendorOrgCode).CreateStore(createParams) + if err != nil { + return "", err + } + return result.StationNo, err } func (p *PurchaseHandler) DeleteStore(db *dao.DaoDB, storeID int, userName string) (err error) { diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index 98f6d8c09..3811b7a52 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -2,6 +2,7 @@ package mtwm import ( "errors" + "fmt" "math" "regexp" "strings" @@ -21,7 +22,12 @@ import ( ) var ( - opTimeErrReg = regexp.MustCompile(`当前配送营业时间为:([\d:~,]*)`) + opTimeErrReg = regexp.MustCompile(`当前配送营业时间为:([\d:~,]*)`) + storeVendorOrgCodeMap = map[string]string{ + "589": mtwmapi.MtwmC4Tag, + "5873": mtwmapi.MtwmSCTag, + "4123": mtwmapi.MtwmSGTag, + } ) type tEbaiStoreInfo struct { @@ -97,6 +103,27 @@ func (p *PurchaseHandler) CreateStore(db *dao.DaoDB, storeID int, userName strin } func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName string, params map[string]interface{}, storeDetail *dao.StoreDetail) (vendorStoreID string, err error) { + vendorOrgCode := params["vendorOrgCode"].(string) + if vendorOrgCode == "" { + return "", fmt.Errorf("平台账号必传!") + } + cityName := storeDetail.CityName + if strings.Contains(cityName, "市") { + cityName = strings.Replace(cityName, "市", "", strings.LastIndex(cityName, "市")) + } + shippingTime := "" + if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 { + shippingTime += jxutils.JxOperationTime2StrTime(storeDetail.OpenTime1) + shippingTime += "-" + shippingTime += jxutils.JxOperationTime2StrTime(storeDetail.CloseTime1) + if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { + shippingTime += "," + shippingTime += jxutils.JxOperationTime2StrTime(storeDetail.OpenTime2) + shippingTime += "-" + shippingTime += jxutils.JxOperationTime2StrTime(storeDetail.CloseTime2) + } + } + poiSettleSaveParam := &mtwmapi.PoiSettleSaveParam{ Type: 0, //创建 ApplyInfos: []*mtwmapi.ApplyInfo{ @@ -104,12 +131,28 @@ func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri AppPoiCode: utils.Int2Str(storeDetail.ID), SettlementID: 0, //结算ID,暂时还没得 MultiPoiBasicInfo: &mtwmapi.MultiPoiBasicInfo{ - Name: params["vendorStoreName"].(string), + Name: params["vendorStoreName"].(string), + City: cityName, + Address: storeDetail.Address, + Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)), + Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)), + FirstTag: storeVendorOrgCodeMap[vendorOrgCode], + CallCenter: storeDetail.Tel1, + ContactPhone: storeDetail.Tel1, + ContactName: storeDetail.IDName, + EcommerceAccountPhone: "18048531223", + ShippingTime: shippingTime, }, + MultiPoiShippingInfo: &mtwmapi.MultiPoiShippingInfo{ + ShippingType: 5, //1:商家自配 5:美团专送,101:美团快送 + MinPrice: params["minPrice"].(float64), + ShippingFee: params["shippingFee"].(float64), + }, + //资质 }, }, } - mtapi := getAPI(storeDetail.VendorOrgCode, storeDetail.ID, "") + mtapi := getAPIWithoutToken(storeDetail.VendorOrgCode) mtapi.PoiSettleSave(poiSettleSaveParam) return vendorStoreID, err }