@@ -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
}