- 在创建快递门店时,处理PayeeName为空的情况

This commit is contained in:
gazebo
2019-07-24 17:39:37 +08:00
parent 464692ae0b
commit ac7c086b7a
4 changed files with 31 additions and 35 deletions

View File

@@ -989,7 +989,6 @@ func AddStoreCourierMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendorID
func addStoreCourierMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendorID int, storeCourierMap *model.StoreCourierMap, isNeedUpdateRemote bool) (outStoreCourierMap *model.StoreCourierMap, err error) {
globals.SugarLogger.Debugf("addStoreCourierMap %s, storeID:%d, isNeedUpdateRemote:%t", model.VendorChineseNames[vendorID], storeCourierMap, isNeedUpdateRemote)
userName := ctx.GetUserName()
if handler := partner.GetDeliveryPlatformFromVendorID(vendorID); handler != nil {
if db == nil {
db = dao.GetDB()
@@ -999,31 +998,21 @@ func addStoreCourierMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendorID
if err = err2; err != nil {
return nil, err
}
if storeDetail.VendorStoreID != "" && storeDetail.VendorStoreID != storeCourierMap.VendorStoreID {
if storeDetail.VendorStoreID != "" {
return nil, fmt.Errorf("门店已经绑定了%s, ID:%s, 如需重新绑定, 请先解绑", model.VendorChineseNames[vendorID], storeDetail.VendorStoreID)
}
dao.WrapAddIDCULDEntity(storeCourierMap, userName)
storeCourierMap.StoreID = storeID
storeCourierMap.VendorID = vendorID
storeDetail.VendorStoreID = storeCourierMap.VendorStoreID
if err = updateCourierStore(ctx, storeDetail); err != nil {
return nil, err
}
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
if r != nil {
panic(r)
}
}
}()
dao.WrapAddIDCULDEntity(storeCourierMap, ctx.GetUserName())
storeCourierMap.StoreID = storeID
storeCourierMap.VendorID = vendorID
if err = dao.CreateEntity(db, storeCourierMap); err != nil {
return nil, err
}
outStoreCourierMap = storeCourierMap
dao.Commit(db)
} else {
err = ErrCanNotFindVendor
}
@@ -1074,8 +1063,7 @@ func updateCourierStore(ctx *jxcontext.Context, storeDetail *dao.StoreDetail2) (
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(storeDetail.VendorID); handlerInfo != nil && handlerInfo.Use4CreateWaybill {
if updateHandler, ok := handlerInfo.Handler.(partner.IDeliveryUpdateStoreHandler); ok {
storeDetail.CourierStoreName = composeCourierStoreName(storeDetail)
err = updateHandler.UpdateStore(ctx, storeDetail)
err = updateHandler.UpdateStore(ctx, formalizeStore4Courier(storeDetail))
}
}
return err
@@ -1110,11 +1098,13 @@ func updateOrCreateCourierStore(ctx *jxcontext.Context, storeDetail *dao.StoreDe
if storeDetail.CityName == "" {
return false, fmt.Errorf("门店的城市码有问题,请检查")
}
storeDetail.CourierStoreName = composeCourierStoreName(storeDetail)
storeDetail = formalizeStore4Courier(storeDetail)
if _, err = handlerInfo.Handler.GetStore(ctx, 0, storeDetail.VendorStoreID); err != nil {
if handlerInfo.Handler.IsErrStoreNotExist(err) {
storeDetail.VendorStoreID, storeDetail.AuditStatus, err = handlerInfo.Handler.CreateStore(ctx, storeDetail)
isCreated = true
if err == nil {
isCreated = true
}
}
} else {
if updateHandler, _ := handlerInfo.Handler.(partner.IDeliveryUpdateStoreHandler); updateHandler != nil {
@@ -1183,7 +1173,7 @@ func UpdateOrCreateCourierStores(ctx *jxcontext.Context, storeID int, isForceUpd
}
}
}
return resultList, err
return resultList, errList.GetErrListAsOne()
}, storeIDs)
tasksch.HandleTask(task, nil, len(storeIDs) > 1).Run()
if !isAsync {
@@ -1197,8 +1187,14 @@ func UpdateOrCreateCourierStores(ctx *jxcontext.Context, storeID int, isForceUpd
return hint, err
}
func composeCourierStoreName(storeDetail *dao.StoreDetail2) (storeName string) {
return storeDetail.Name + "-" + storeDetail.VendorStoreID
func formalizeStore4Courier(storeDetail *dao.StoreDetail2) (newStoreDetail *dao.StoreDetail2) {
tmp := *storeDetail
newStoreDetail = &tmp
newStoreDetail.Name = storeDetail.Name + "-" + storeDetail.VendorStoreID
if newStoreDetail.PayeeName == "" {
newStoreDetail.PayeeName = "店主"
}
return newStoreDetail
}
func ExportShopsHealthInfo(ctx *jxcontext.Context, vendorIDs, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {

View File

@@ -41,9 +41,8 @@ type StoreDetail2 struct {
CourierStatus int `json:"courierStatus"`
AuditStatus int `json:"auditStatus"`
CourierStoreName string `json:"courierStoreName"`
DistrictName string `json:"districtName"`
CityName string `json:"cityName"`
DistrictName string `json:"districtName"`
CityName string `json:"cityName"`
}
func (s *StoreDetail) GetPricePerentage(price int) (pricePercentage int) {

View File

@@ -131,7 +131,8 @@ func StoreDetail2ShopInfo(storeDetail *dao.StoreDetail2) (shopInfo *dadaapi.Shop
}
shopInfo = &dadaapi.ShopInfo{
OriginShopID: storeDetail.VendorStoreID,
StationName: storeDetail.CourierStoreName,
StationName: storeDetail.Name,
Business: dadaapi.BusinessTypeConvStore, // 故意设置成这个的
CityName: cityName,
AreaName: districtName,
StationAddress: storeDetail.Address,
@@ -165,17 +166,17 @@ func (c *DeliveryHandler) GetStore(ctx *jxcontext.Context, storeID int, vendorSt
if err == nil {
storeDetail = &dao.StoreDetail2{
Store: model.Store{
Name: shopInfo.StationName,
Address: shopInfo.StationAddress,
Lng: jxutils.StandardCoordinate2Int(shopInfo.Lng),
Lat: jxutils.StandardCoordinate2Int(shopInfo.Lat),
PayeeName: shopInfo.ContactName,
Tel1: shopInfo.Phone,
},
VendorID: model.VendorIDDada,
VendorStoreID: shopInfo.OriginShopID,
CourierStoreName: shopInfo.StationName,
CityName: shopInfo.CityName,
DistrictName: shopInfo.AreaName,
VendorID: model.VendorIDDada,
VendorStoreID: shopInfo.OriginShopID,
CityName: shopInfo.CityName,
DistrictName: shopInfo.AreaName,
}
}
return storeDetail, err

View File

@@ -41,7 +41,7 @@ func (c *DeliveryHandler) CreateStore(ctx *jxcontext.Context, storeDetail *dao.S
}
shopInfo := &mtpsapi.ShopInfo{
ShopID: storeDetail.VendorStoreID,
ShopName: storeDetail.CourierStoreName,
ShopName: storeDetail.Name,
Category: mtpsapi.ShopCategoryFruit,
SecondCategory: mtpsapi.ShopCategoryFruitFruit,
ContactName: storeDetail.PayeeName,
@@ -67,6 +67,7 @@ func (c *DeliveryHandler) GetStore(ctx *jxcontext.Context, storeID int, vendorSt
if err == nil {
storeDetail = &dao.StoreDetail2{
Store: model.Store{
Name: shopInfo.ShopName,
CityCode: shopInfo.City,
PayeeName: shopInfo.ContactName,
Tel1: shopInfo.ContactPhone,
@@ -74,9 +75,8 @@ func (c *DeliveryHandler) GetStore(ctx *jxcontext.Context, storeID int, vendorSt
Lng: shopInfo.ShopLng,
Lat: shopInfo.ShopLat,
},
VendorID: model.VendorIDMTPS,
VendorStoreID: shopInfo.ShopID,
CourierStoreName: shopInfo.ShopName,
VendorID: model.VendorIDMTPS,
VendorStoreID: shopInfo.ShopID,
}
}
return storeDetail, err