This commit is contained in:
邹宗楠
2023-06-28 11:24:09 +08:00
parent 1952a934f8
commit 10036ef262
7 changed files with 430 additions and 396 deletions

View File

@@ -6,8 +6,6 @@ import (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/utils/errlist"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"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/jxcontext"
@@ -15,8 +13,6 @@ import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"math"
"regexp"
"strings"
@@ -62,58 +58,58 @@ type tEbaiStoreInfo struct {
}
func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorStoreName string) (retVal *dao.StoreDetail, err error) {
result, err := getAPIWithoutToken(vendorOrgCode).PoiGet(vendorStoreID)
if err == nil {
retVal = &dao.StoreDetail{
Store: model.Store{
Address: result.Address,
Tel1: result.Phone,
},
}
retVal.OriginalName = result.Name
_, retVal.Name = jxutils.SplitStoreName(retVal.OriginalName, partner.StoreNameSeparator, globals.StoreNameMtwm)
retVal.SetOpTime(openTimeMtwm2JX(result.ShippingTime))
retVal.Status = bizStatusMtwm2JX(result.OpenLevel, result.IsOnline)
tel2 := result.StandbyTel
if tel2 != "" && tel2 != retVal.Tel1 {
retVal.Tel2 = tel2
}
retVal.Lng = int(result.Longitude)
retVal.Lat = int(result.Latitude)
lng := jxutils.IntCoordinate2Standard(retVal.Lng)
lat := jxutils.IntCoordinate2Standard(retVal.Lat)
db := dao.GetDB()
retVal.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(lng, lat)
city, err := dao.GetPlaceByCode(db, result.CityID)
retVal.CityName = city.Name
retVal.CityCode = result.CityID
poiCode := result.AppPoiCode
retVal.VendorStoreID = vendorStoreID
retVal.ID = int(utils.Str2Int64WithDefault(poiCode, 0))
retVal.DeliveryRangeType = model.DeliveryRangeTypePolygon
var deliveryRangeInfo []map[string]interface{}
deliveryRangeInfo, err = getAPIWithoutToken(vendorOrgCode).ShippingFetch(poiCode)
if err != nil {
deliveryRangeInfo, err = getAPIWithoutToken(vendorOrgCode).ShippingList(poiCode)
}
if err == nil {
if len(deliveryRangeInfo) > 0 {
retVal.DeliveryRange = rangeMtwm2JX(deliveryRangeInfo[0]["area"].(string))
logisticsCode := utils.Interface2String(deliveryRangeInfo[0]["logistics_code"])
if logisticsCode == "" || logisticsCode == mtwmapi.PeiSongTypeSelf {
retVal.DeliveryType = scheduler.StoreDeliveryTypeByStore
} else {
retVal.DeliveryType = scheduler.StoreDeliveryTypeByPlatform
}
}
}
return retVal, nil
}
//result, err := getAPIWithoutToken(vendorOrgCode).PoiGet(vendorStoreID)
//if err == nil {
// retVal = &dao.StoreDetail{
// Store: model.Store{
// Address: result.Address,
// Tel1: result.Phone,
// },
// }
// retVal.OriginalName = result.Name
// _, retVal.Name = jxutils.SplitStoreName(retVal.OriginalName, partner.StoreNameSeparator, globals.StoreNameMtwm)
//
// retVal.SetOpTime(openTimeMtwm2JX(result.ShippingTime))
// retVal.Status = bizStatusMtwm2JX(result.OpenLevel, result.IsOnline)
//
// tel2 := result.StandbyTel
// if tel2 != "" && tel2 != retVal.Tel1 {
// retVal.Tel2 = tel2
// }
//
// retVal.Lng = int(result.Longitude)
// retVal.Lat = int(result.Latitude)
//
// lng := jxutils.IntCoordinate2Standard(retVal.Lng)
// lat := jxutils.IntCoordinate2Standard(retVal.Lat)
// db := dao.GetDB()
// retVal.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(lng, lat)
// city, err := dao.GetPlaceByCode(db, result.CityID)
// retVal.CityName = city.Name
// retVal.CityCode = result.CityID
//
// poiCode := result.AppPoiCode
// retVal.VendorStoreID = vendorStoreID
// retVal.ID = int(utils.Str2Int64WithDefault(poiCode, 0))
// retVal.DeliveryRangeType = model.DeliveryRangeTypePolygon
// var deliveryRangeInfo []map[string]interface{}
// deliveryRangeInfo, err = getAPIWithoutToken(vendorOrgCode).ShippingFetch(poiCode)
// if err != nil {
// deliveryRangeInfo, err = getAPIWithoutToken(vendorOrgCode).ShippingList(poiCode)
// }
// if err == nil {
// if len(deliveryRangeInfo) > 0 {
// retVal.DeliveryRange = rangeMtwm2JX(deliveryRangeInfo[0]["area"].(string))
// logisticsCode := utils.Interface2String(deliveryRangeInfo[0]["logistics_code"])
// if logisticsCode == "" || logisticsCode == mtwmapi.PeiSongTypeSelf {
// retVal.DeliveryType = scheduler.StoreDeliveryTypeByStore
// } else {
// retVal.DeliveryType = scheduler.StoreDeliveryTypeByPlatform
// }
// }
// }
// return retVal, nil
//}
return nil, err
}
func (p *PurchaseHandler) CreateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
@@ -121,103 +117,103 @@ 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)
}
}
vendorInfoMap := storeVendorOrgCodeMap[vendorOrgCode]
poiSettleSaveParam := &mtwmapi.PoiSettleSaveParam{
Type: 1, //创建
ApplyInfos: []*mtwmapi.ApplyInfo{
&mtwmapi.ApplyInfo{
AppPoiCode: utils.Int2Str(storeDetail.ID),
SettlementID: utils.Str2Int(vendorInfoMap["settlementID"]), //结算ID暂时还没得
MultiPoiBasicInfo: &mtwmapi.MultiPoiBasicInfo{
Name: params["vendorStoreName"].(string),
City: cityName,
Address: storeDetail.Address,
Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)),
Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)),
FirstTag: vendorInfoMap["firstTag"],
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),
},
//资质
},
},
}
switchCertType := func(certType string) (licensePic, licenseSocialCreditCode, licenseNumber, licenseLegalPerson, licenseAddress, licenseValidStartDate, licenseValidity string, isLongTime int) {
switch certType {
case "1":
licensePic = storeDetail.StoreFrontPic
case "2":
licensePic = storeDetail.StoreInPic
case "5":
licensePic = storeDetail.Licence
licenseSocialCreditCode = storeDetail.LicenceCode
licenseNumber = storeDetail.LicenceCode
licenseLegalPerson = storeDetail.LicenceOwnerName
licenseAddress = storeDetail.LicenceAddress
licenseValidStartDate = storeDetail.LicenceValid
if storeDetail.LicenceExpire == "" {
isLongTime = 1
} else {
licenseValidity = storeDetail.LicenceExpire
}
case "6":
licensePic = storeDetail.Licence2Image
licenseSocialCreditCode = storeDetail.Licence2Code
licenseNumber = storeDetail.Licence2Code
licenseLegalPerson = storeDetail.LicenceOwnerName
licenseAddress = storeDetail.LicenceAddress
licenseValidStartDate = storeDetail.Licence2Valid
if storeDetail.Licence2Expire == "" {
isLongTime = 1
} else {
licenseValidity = storeDetail.Licence2Expire
}
}
return licensePic, licenseSocialCreditCode, licenseNumber, licenseLegalPerson, licenseAddress, licenseValidStartDate, licenseValidity, isLongTime
}
var certs []*mtwmapi.MultiPoiCertInfo
for _, v := range strings.Split(vendorInfoMap["poiCert"], ",") {
cert := &mtwmapi.MultiPoiCertInfo{
Type: utils.Str2Int(v),
LicenseName: poiCertMap[v],
}
cert.LicensePic, cert.LicenseSocialCreditCode, cert.LicenseNumber, cert.LicenseLegalPerson, cert.LicenseAddress, cert.LicenseValidStartDate, cert.LicenseValidity, cert.IsLongTime = switchCertType(v)
certs = append(certs, cert)
}
poiSettleSaveParam.ApplyInfos[0].MultiPoiCertInfos = certs
mtapi := getAPIWithoutToken(vendorOrgCode)
if vendorStoreID, err = mtapi.PoiSettleSave(poiSettleSaveParam); err == nil {
err = mtapi.PoiSettleAuditSubmit([]string{vendorStoreID})
}
//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)
// }
//}
//vendorInfoMap := storeVendorOrgCodeMap[vendorOrgCode]
//poiSettleSaveParam := &mtwmapi.PoiSettleSaveParam{
// Type: 1, //创建
// ApplyInfos: []*mtwmapi.ApplyInfo{
// &mtwmapi.ApplyInfo{
// AppPoiCode: utils.Int2Str(storeDetail.ID),
// SettlementID: utils.Str2Int(vendorInfoMap["settlementID"]), //结算ID暂时还没得
// MultiPoiBasicInfo: &mtwmapi.MultiPoiBasicInfo{
// Name: params["vendorStoreName"].(string),
// City: cityName,
// Address: storeDetail.Address,
// Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)),
// Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)),
// FirstTag: vendorInfoMap["firstTag"],
// 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),
// },
// //资质
// },
// },
//}
//switchCertType := func(certType string) (licensePic, licenseSocialCreditCode, licenseNumber, licenseLegalPerson, licenseAddress, licenseValidStartDate, licenseValidity string, isLongTime int) {
// switch certType {
// case "1":
// licensePic = storeDetail.StoreFrontPic
// case "2":
// licensePic = storeDetail.StoreInPic
// case "5":
// licensePic = storeDetail.Licence
// licenseSocialCreditCode = storeDetail.LicenceCode
// licenseNumber = storeDetail.LicenceCode
// licenseLegalPerson = storeDetail.LicenceOwnerName
// licenseAddress = storeDetail.LicenceAddress
// licenseValidStartDate = storeDetail.LicenceValid
// if storeDetail.LicenceExpire == "" {
// isLongTime = 1
// } else {
// licenseValidity = storeDetail.LicenceExpire
// }
// case "6":
// licensePic = storeDetail.Licence2Image
// licenseSocialCreditCode = storeDetail.Licence2Code
// licenseNumber = storeDetail.Licence2Code
// licenseLegalPerson = storeDetail.LicenceOwnerName
// licenseAddress = storeDetail.LicenceAddress
// licenseValidStartDate = storeDetail.Licence2Valid
// if storeDetail.Licence2Expire == "" {
// isLongTime = 1
// } else {
// licenseValidity = storeDetail.Licence2Expire
// }
// }
// return licensePic, licenseSocialCreditCode, licenseNumber, licenseLegalPerson, licenseAddress, licenseValidStartDate, licenseValidity, isLongTime
//}
//var certs []*mtwmapi.MultiPoiCertInfo
//for _, v := range strings.Split(vendorInfoMap["poiCert"], ",") {
// cert := &mtwmapi.MultiPoiCertInfo{
// Type: utils.Str2Int(v),
// LicenseName: poiCertMap[v],
// }
// cert.LicensePic, cert.LicenseSocialCreditCode, cert.LicenseNumber, cert.LicenseLegalPerson, cert.LicenseAddress, cert.LicenseValidStartDate, cert.LicenseValidity, cert.IsLongTime = switchCertType(v)
// certs = append(certs, cert)
//}
//poiSettleSaveParam.ApplyInfos[0].MultiPoiCertInfos = certs
//mtapi := getAPIWithoutToken(vendorOrgCode)
//if vendorStoreID, err = mtapi.PoiSettleSave(poiSettleSaveParam); err == nil {
// err = mtapi.PoiSettleAuditSubmit([]string{vendorStoreID})
//}
return vendorStoreID, err
}
@@ -226,75 +222,76 @@ func (p *PurchaseHandler) DeleteStore(db *dao.DaoDB, storeID int, userName strin
}
func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
var name string
if db == nil {
db = dao.GetDB()
}
mtapi := getAPI(getStoreVendorOrgCode(storeID), storeID, "")
//获取本地store信息
storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDMTWM, "")
if err != nil {
return err
}
errList := errlist.New()
//获取平台store信息
remoteStoreInfo, err := mtapi.PoiGet(storeDetail.VendorStoreID)
if err != nil {
return err
}
mergedStoreStatus := jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)
name = remoteStoreInfo.Name
if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 {
if storeDetail.VendorStoreName != "" {
name = storeDetail.VendorStoreName
}
// else {
// name = jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM)
// }
}
store := fmt.Sprintf("门店id:%d,门店名称:%s,第三方门店状态:%d,本地修改前门店状态%d,本地门店修改后状态:%d,第三方平台Id(美团):%s", storeID, remoteStoreInfo.Name, remoteStoreInfo.IsOnline, storeDetail.Status, mergedStoreStatus, storeDetail.VendorOrgCode)
event.AddOperateEvent(jxcontext.AdminCtx, jxcontext.AdminCtx.GetTrackInfo(), store, "", "", 10, "UpdateStore")
// openLevel, isOnline := bizStatusJX2Mtwm(mergedStoreStatus)
//TODO 美团暂时不用那个电话
phone := storeDetail.Tel1
// if storeDetail.MarketManPhone != "" {
// phone = storeDetail.MarketManPhone
// } else {
// phone = model.VendorStoreTel
// }
params := map[string]interface{}{
"name": name, //jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
"address": storeDetail.Address, // 美团好像地址也不能改的?
"longitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Longitude)),
"latitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Latitude)),
"phone": phone,
"shipping_fee": remoteStoreInfo.ShippingFee,
"shipping_time": remoteStoreInfo.ShippingTime,
"open_level": remoteStoreInfo.OpenLevel,
"is_online": remoteStoreInfo.IsOnline,
"third_tag_name": remoteStoreInfo.ThirdTagName,
"promotion_info": storeDetail.PromoteInfo,
}
if globals.EnableMtwmStoreWrite {
errList.AddErr(mtapi.PoiSave(storeDetail.VendorStoreID, params))
}
// PoiSave有时会报错商家已接入美团配送不可修改门店配送相关信息这里放弃信息修改
// if err != nil {
// if utils.IsErrMatch(err, utils.Int2Str(mtwmapi.ErrCodeCanNotModifyStoreDeliveryInfo), nil) {
// if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
// err = p.UpdateStoreStatus(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, mergedStoreStatus)
// } else {
// err = nil
// }
// }
// errList.AddErr(err)
// }
if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, mergedStoreStatus))
}
errList.AddErr(p.UpdateStoreOpTime(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, storeDetail.GetOpTimeList()))
// errList.AddErr(p.UpdateStoreBoxFee(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID))
return errList.GetErrListAsOne()
//var name string
//if db == nil {
// db = dao.GetDB()
//}
//mtapi := getAPI(getStoreVendorOrgCode(storeID), storeID, "")
////获取本地store信息
//storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDMTWM, "")
//if err != nil {
// return err
//}
//errList := errlist.New()
////获取平台store信息
//remoteStoreInfo, err := mtapi.PoiGet(storeDetail.VendorStoreID)
//if err != nil {
// return err
//}
//mergedStoreStatus := jxutils.MergeStoreStatus(storeDetail.Status, storeDetail.VendorStatus)
//name = remoteStoreInfo.Name
//if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 {
// if storeDetail.VendorStoreName != "" {
// name = storeDetail.VendorStoreName
// }
// // else {
// // name = jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM)
// // }
//}
//store := fmt.Sprintf("门店id:%d,门店名称:%s,第三方门店状态:%d,本地修改前门店状态%d,本地门店修改后状态:%d,第三方平台Id(美团):%s", storeID, remoteStoreInfo.Name, remoteStoreInfo.IsOnline, storeDetail.Status, mergedStoreStatus, storeDetail.VendorOrgCode)
//event.AddOperateEvent(jxcontext.AdminCtx, jxcontext.AdminCtx.GetTrackInfo(), store, "", "", 10, "UpdateStore")
//// openLevel, isOnline := bizStatusJX2Mtwm(mergedStoreStatus)
////TODO 美团暂时不用那个电话
//phone := storeDetail.Tel1
//// if storeDetail.MarketManPhone != "" {
//// phone = storeDetail.MarketManPhone
//// } else {
//// phone = model.VendorStoreTel
//// }
//params := map[string]interface{}{
// "name": name, //jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM),
// "address": storeDetail.Address, // 美团好像地址也不能改的?
// "longitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Longitude)),
// "latitude": jxutils.IntCoordinate2Standard(int(remoteStoreInfo.Latitude)),
// "phone": phone,
// "shipping_fee": remoteStoreInfo.ShippingFee,
// "shipping_time": remoteStoreInfo.ShippingTime,
// "open_level": remoteStoreInfo.OpenLevel,
// "is_online": remoteStoreInfo.IsOnline,
// "third_tag_name": remoteStoreInfo.ThirdTagName,
// "promotion_info": storeDetail.PromoteInfo,
//}
//if globals.EnableMtwmStoreWrite {
// errList.AddErr(mtapi.PoiSave(storeDetail.VendorStoreID, params))
//}
//// PoiSave有时会报错商家已接入美团配送不可修改门店配送相关信息这里放弃信息修改
//// if err != nil {
//// if utils.IsErrMatch(err, utils.Int2Str(mtwmapi.ErrCodeCanNotModifyStoreDeliveryInfo), nil) {
//// if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
//// err = p.UpdateStoreStatus(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, mergedStoreStatus)
//// } else {
//// err = nil
//// }
//// }
//// errList.AddErr(err)
//// }
//if storeDetail.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
// errList.AddErr(p.UpdateStoreStatus(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, mergedStoreStatus))
//}
//errList.AddErr(p.UpdateStoreOpTime(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID, storeDetail.GetOpTimeList()))
//// errList.AddErr(p.UpdateStoreBoxFee(jxcontext.AdminCtx, storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID))
//return errList.GetErrListAsOne()
return nil
}
func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) {
@@ -357,10 +354,10 @@ func (p *PurchaseHandler) onStoreStatusChanged(msg *mtwmapi.CallbackMsg) (respon
}
func (p *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (storeStatus int, err error) {
result, err := getAPI(vendorOrgCode, storeID, "").PoiGet(vendorStoreID)
if err == nil {
return bizStatusMtwm2JX(result.OpenLevel, result.IsOnline), nil
}
//result, err := getAPI(vendorOrgCode, storeID, "").PoiGet(vendorStoreID)
//if err == nil {
// return bizStatusMtwm2JX(result.OpenLevel, result.IsOnline), nil
//}
return 0, err
}
@@ -369,30 +366,30 @@ func (p *PurchaseHandler) EnableAutoAcceptOrder(ctx *jxcontext.Context, vendorOr
}
func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, status int) (err error) {
openLevel, isOnline := bizStatusJX2Mtwm(status)
if globals.EnableMtwmStoreWrite {
if isOnline != mtwmapi.PoiStatusOnline {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID)
} else {
if err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID); err == nil { // 这个函数成功返回也并不表示上线成功。。。
remoteStoreInfo, err2 := getAPI(vendorOrgCode, storeID, vendorStoreID).PoiGet(vendorStoreID)
if err = err2; err != nil {
return err
}
if remoteStoreInfo.IsOnline == mtwmapi.PoiStatusOnline {
if openLevel == mtwmapi.PoiOpenLevelHaveRest {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiClose(vendorStoreID)
} else {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOpen(vendorStoreID)
}
} else {
err = errors.New("门店还未上线,不能修改营业状态")
}
store := fmt.Sprintf("美团外卖回调门店改变回调(营业状态/审核状态):门店id:%s,美团门店状态:%d.[121营业,120休息,18上线,19下线],本地修改后状态[%d]", vendorStoreID, remoteStoreInfo.OpenLevel, openLevel)
event.AddOperateEvent(ctx, ctx.GetTrackInfo(), store, "", "", 10, "UpdateStore")
}
}
}
//openLevel, isOnline := bizStatusJX2Mtwm(status)
//if globals.EnableMtwmStoreWrite {
// if isOnline != mtwmapi.PoiStatusOnline {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID)
// } else {
// if err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID); err == nil { // 这个函数成功返回也并不表示上线成功。。。
// remoteStoreInfo, err2 := getAPI(vendorOrgCode, storeID, vendorStoreID).PoiGet(vendorStoreID)
// if err = err2; err != nil {
// return err
// }
// if remoteStoreInfo.IsOnline == mtwmapi.PoiStatusOnline {
// if openLevel == mtwmapi.PoiOpenLevelHaveRest {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiClose(vendorStoreID)
// } else {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOpen(vendorStoreID)
// }
// } else {
// err = errors.New("门店还未上线,不能修改营业状态")
// }
// store := fmt.Sprintf("美团外卖回调门店改变回调(营业状态/审核状态):门店id:%s,美团门店状态:%d.[121营业,120休息,18上线,19下线],本地修改后状态[%d]", vendorStoreID, remoteStoreInfo.OpenLevel, openLevel)
// event.AddOperateEvent(ctx, ctx.GetTrackInfo(), store, "", "", 10, "UpdateStore")
// }
// }
//}
return err
}
@@ -440,24 +437,24 @@ func constrainOpTimeList(opTimeList, validOpTimeList []int16) (newOpTimeList []i
}
func (c *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
shippingTime := openTimeJX2Mtwm(opTimeList)
if globals.EnableMtwmStoreWrite {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiShipTimeUpdate(vendorStoreID, shippingTime)
if err != nil {
shippingTime = ""
if validOpTimeList := getOpTimeListFromErr(err); len(validOpTimeList) > 0 {
shippingTime = openTimeJX2Mtwm(constrainOpTimeList(opTimeList, validOpTimeList))
}
if shippingTime != "" {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiShipTimeUpdate(vendorStoreID, shippingTime)
}
}
}
//shippingTime := openTimeJX2Mtwm(opTimeList)
//if globals.EnableMtwmStoreWrite {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiShipTimeUpdate(vendorStoreID, shippingTime)
// if err != nil {
// shippingTime = ""
// if validOpTimeList := getOpTimeListFromErr(err); len(validOpTimeList) > 0 {
// shippingTime = openTimeJX2Mtwm(constrainOpTimeList(opTimeList, validOpTimeList))
// }
// if shippingTime != "" {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiShipTimeUpdate(vendorStoreID, shippingTime)
// }
// }
//}
return err
}
func (c *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrgCode string) (vendorStoreIDs []string, err error) {
vendorStoreIDs, err = getAPIWithoutToken(vendorOrgCode).PoiGetIDs()
//vendorStoreIDs, err = getAPIWithoutToken(vendorOrgCode).PoiGetIDs()
return vendorStoreIDs, err
}
@@ -466,20 +463,20 @@ func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgC
}
func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (err error) {
boxFee, err := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysMtwmBoxFee)
if err == nil {
if globals.EnableMtwmStoreWrite && globals.IsProductEnv() {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PackagePriceUpdate(vendorStoreID, 1, int(boxFee))
}
}
//boxFee, err := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysMtwmBoxFee)
//if err == nil {
// if globals.EnableMtwmStoreWrite && globals.IsProductEnv() {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PackagePriceUpdate(vendorStoreID, 1, int(boxFee))
// }
//}
return err
}
func (c *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, lineStatus int) (err error) {
if lineStatus == model.StoreStatusOpened {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID)
} else {
err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID)
}
//if lineStatus == model.StoreStatusOpened {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID)
//} else {
// err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID)
//}
return err
}