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

@@ -121,19 +121,32 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
} }
// 重量超标减少配送费 // 重量超标减少配送费
weight := 4.9500 weight := 4.9500
if utils.Int2Float64(order.Weight)/1000 >= weight { reallyWeight := utils.Int2Float64(order.Weight) / 1000
if reallyWeight >= weight || reallyWeight <= model.NO {
parameter.GoodsWeight = weight parameter.GoodsWeight = weight
} else {
parameter.GoodsWeight = reallyWeight
} }
var goodsList []*fnpsapi.GoodsItemsList var goodsList []*fnpsapi.GoodsItemsList
for _, v := range order.Skus { if len(order.Skus) == model.NO {
goodsList = append(goodsList, &fnpsapi.GoodsItemsList{ goodsList = append(goodsList, &fnpsapi.GoodsItemsList{
ItemName: v.SkuName, ItemName: "平台商品(本地暂无储存信息)",
ItemQuantity: v.Count, ItemQuantity: model.YES,
ItemAmountCent: v.SalePrice, ItemAmountCent: model.YES,
ItemActualAmountCent: v.SalePrice, ItemActualAmountCent: model.YES,
ItemId: utils.Int2Str(v.SkuID), ItemId: utils.Int2Str(9527),
}) })
} else {
for _, v := range order.Skus {
goodsList = append(goodsList, &fnpsapi.GoodsItemsList{
ItemName: v.SkuName,
ItemQuantity: v.Count,
ItemAmountCent: v.SalePrice,
ItemActualAmountCent: v.SalePrice,
ItemId: utils.Int2Str(v.SkuID),
})
}
} }
parameter.GoodsItemList = goodsList parameter.GoodsItemList = goodsList
@@ -181,20 +194,34 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
} }
// 重量超标减少配送费 // 重量超标减少配送费
weight := 4.9500 weight := 4.9500
if utils.Int2Float64(order.Weight)/1000 >= weight { reallyWeight := utils.Int2Float64(order.Weight) / 1000
if reallyWeight >= weight || reallyWeight <= model.NO {
preCreateOrder.GoodsWeight = weight preCreateOrder.GoodsWeight = weight
} else {
preCreateOrder.GoodsWeight = reallyWeight
} }
var goodsList []*fnpsapi.GoodsItemsList var goodsList []*fnpsapi.GoodsItemsList
for _, v := range order.Skus { if len(order.Skus) == model.NO {
goodsList = append(goodsList, &fnpsapi.GoodsItemsList{ goodsList = append(goodsList, &fnpsapi.GoodsItemsList{
ItemName: v.SkuName, ItemName: "平台商品(本地暂无储存信息)",
ItemQuantity: v.Count, ItemQuantity: model.YES,
ItemAmountCent: v.SalePrice, ItemAmountCent: model.YES,
ItemActualAmountCent: v.SalePrice, ItemActualAmountCent: model.YES,
ItemId: utils.Int2Str(v.SkuID), ItemId: utils.Int2Str(9527),
}) })
} else {
for _, v := range order.Skus {
goodsList = append(goodsList, &fnpsapi.GoodsItemsList{
ItemName: v.SkuName,
ItemQuantity: v.Count,
ItemAmountCent: v.SalePrice,
ItemActualAmountCent: v.SalePrice,
ItemId: utils.Int2Str(v.SkuID),
})
}
} }
preCreateOrder.GoodsItemList = goodsList preCreateOrder.GoodsItemList = goodsList
deliveryFeeInfo = &partner.WaybillFeeInfo{} deliveryFeeInfo = &partner.WaybillFeeInfo{}

View File

@@ -270,7 +270,7 @@ func (c *DeliveryHandler) callbackMsg2Waybill(msg *mtpsapi.CallbackOrderMsg) (re
// return deliveryFeeInfo, err // return deliveryFeeInfo, err
//} //}
// 新方法平台返回 // GetWaybillFee 新方法平台返回(预下单)
func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) { func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) {
shopWeight := float64(order.Weight) / float64(order.Weight) shopWeight := float64(order.Weight) / float64(order.Weight)
if shopWeight > 50 { if shopWeight > 50 {
@@ -285,7 +285,7 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
return nil, err return nil, err
} }
deliveryFeeInfo.RefDeliveryFee, deliveryFeeInfo.RefAddFee, err = api.MtpsAPI.PreCreateByShop(&mtpsapi.PreCreateByShopParam{ param := &mtpsapi.PreCreateByShopParam{
DeliveryID: deliveryID, DeliveryID: deliveryID,
OrderID: order.VendorOrderID, OrderID: order.VendorOrderID,
ShopID: shopId, ShopID: shopId,
@@ -300,13 +300,19 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
PayTypeCode: 0, PayTypeCode: 0,
ExpectedDeliveryTime: mtpsapi.DeliveryServiceCodeRapid, // 4002飞速达,4011快速达,4012及时达,4013集中送 ExpectedDeliveryTime: mtpsapi.DeliveryServiceCodeRapid, // 4002飞速达,4011快速达,4012及时达,4013集中送
OuterOrderSourceDesc: "101", OuterOrderSourceDesc: "101",
}) }
if param.GoodsWidth <= model.NO {
param.GoodsWidth = model.YES
}
deliveryFeeInfo.RefDeliveryFee, deliveryFeeInfo.RefAddFee, err = api.MtpsAPI.PreCreateByShop(param)
deliveryFeeInfo.DeliveryFee = deliveryFeeInfo.RefDeliveryFee deliveryFeeInfo.DeliveryFee = deliveryFeeInfo.RefDeliveryFee
return deliveryFeeInfo, err return deliveryFeeInfo, err
} }
// IDeliveryPlatformHandler(美团配送) // CreateWaybill(美团配送)
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) { func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
db := dao.GetDB() db := dao.GetDB()
// 检查配送平台是否被禁用 // 检查配送平台是否被禁用
@@ -318,16 +324,6 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment) return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
} }
// 自定义计算预估费用
//deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
//if err != nil {
// return nil, err
//}
// 运费预警
//if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDMTPS); err != nil {
// return nil, err
//}
// 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出 // 忽略坐标转换错误,即使是转换出错,也只能当成转换成功来处理,底层会有错误日志输出
lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType) lngFloat, latFloat, _ := jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
billParams := &mtpsapi.CreateOrderByShopParam{ billParams := &mtpsapi.CreateOrderByShopParam{
@@ -344,6 +340,9 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
// ExpectedDeliveryTime: order.ExpectedDeliveredTime.Unix(), // ExpectedDeliveryTime: order.ExpectedDeliveredTime.Unix(),
OrderType: mtpsapi.OrderTypeASAP, OrderType: mtpsapi.OrderTypeASAP,
} }
if billParams.GoodsWidth <= model.NO {
billParams.GoodsWidth = model.YES
}
// 获取送货单id // 获取送货单id
billParams.DeliveryID = c.getDeliveryID(order) billParams.DeliveryID = c.getDeliveryID(order)
@@ -357,12 +356,27 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
Goods: []*mtpsapi.GoodsItem{}, Goods: []*mtpsapi.GoodsItem{},
} }
goodItemMap := map[string]*mtpsapi.GoodsItem{} goodItemMap := map[string]*mtpsapi.GoodsItem{}
for _, sku := range order.Skus { if len(order.Skus) > model.NO {
goodItem := &mtpsapi.GoodsItem{ for _, sku := range order.Skus {
GoodCount: sku.Count, goodItem := &mtpsapi.GoodsItem{
GoodPrice: jxutils.IntPrice2Standard(sku.SalePrice), GoodCount: sku.Count,
GoodPrice: jxutils.IntPrice2Standard(sku.SalePrice),
}
goodItem.GoodName, goodItem.GoodUnit = jxutils.GetNameAndUnitFromSkuName(sku.SkuName)
// 好像SKU名不能重复否则会报错尝试处理一下
if item, ok := goodItemMap[goodItem.GoodName]; !ok {
goods.Goods = append(goods.Goods, goodItem)
goodItemMap[goodItem.GoodName] = goodItem
} else {
item.GoodCount += goodItem.GoodCount
}
} }
goodItem.GoodName, goodItem.GoodUnit = jxutils.GetNameAndUnitFromSkuName(sku.SkuName) } else {
goodItem := &mtpsapi.GoodsItem{
GoodCount: model.YES,
GoodPrice: jxutils.IntPrice2Standard(model.YES),
}
goodItem.GoodName, goodItem.GoodUnit = jxutils.GetNameAndUnitFromSkuName("本地暂无商品信息 500g/份")
// 好像SKU名不能重复否则会报错尝试处理一下 // 好像SKU名不能重复否则会报错尝试处理一下
if item, ok := goodItemMap[goodItem.GoodName]; !ok { if item, ok := goodItemMap[goodItem.GoodName]; !ok {
goods.Goods = append(goods.Goods, goodItem) goods.Goods = append(goods.Goods, goodItem)

View File

@@ -90,7 +90,7 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
weight int weight int
productDetail []*sfps2.ProductDetail productDetail []*sfps2.ProductDetail
) )
if order.Weight >= 49500 { if order.Weight >= 49500 || order.Weight <= model.NO {
weight = 49500 weight = 49500
} else { } else {
weight = order.Weight weight = order.Weight
@@ -127,10 +127,17 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
}, },
} }
for _, v := range order.Skus { if len(order.Skus) != model.NO {
for _, v := range order.Skus {
productDetail = append(productDetail, &sfps2.ProductDetail{
ProductName: v.SkuName,
ProductNum: int64(v.Count),
})
}
} else {
productDetail = append(productDetail, &sfps2.ProductDetail{ productDetail = append(productDetail, &sfps2.ProductDetail{
ProductName: v.SkuName, ProductName: "本地暂无商品储存信息",
ProductNum: int64(v.Count), ProductNum: int64(model.YES),
}) })
} }
param.OrderDetail.ProductDetail = productDetail param.OrderDetail.ProductDetail = productDetail
@@ -192,13 +199,15 @@ func (d DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int,
func (d DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) { func (d DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) {
var ( var (
weight int weight int
//productDetail []*sfps2.ProductDetail
) )
if order.Weight >= 49500 {
// 默认重量
if order.Weight >= 49500 || order.Weight <= 0 {
weight = 49500 weight = 49500
} else { } else {
weight = order.Weight weight = order.Weight
} }
store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "") store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")
if err != nil { if err != nil {
return nil, err return nil, err

View File

@@ -255,11 +255,11 @@ func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITa
} }
func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) {
for _, v := range mtwmapi.ActTypeList { //for _, v := range mtwmapi.ActTypeList {
//1表示进行中 // //1表示进行中
if actList, err := getAPI(vendorOrgCode, 0, vendorStoreID).GetByAppPoiCodeAndType(vendorOrgCode, 1, v); err == nil { // if actList, err := getAPI(vendorOrgCode, 0, vendorStoreID).GetByAppPoiCodeAndType(vendorOrgCode, 1, v); err == nil {
ample += len(actList) // ample += len(actList)
} // }
} //}
return ample, err return ample, err
} }

View File

@@ -522,22 +522,14 @@ func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
// SelfDeliverDelivering 自配送订单配送中 // SelfDeliverDelivering 自配送订单配送中
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
param, err := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDelivery) param := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDelivery)
if err != nil {
return err
}
return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param) return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param)
} }
// SelfDeliverDelivered 自配送订单送达 // SelfDeliverDelivered 自配送订单送达
func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
param, err := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDeliveryOver) param := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDeliveryOver)
if err != nil { return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param)
return err
}
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param)
return err
} }
func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) { func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) {

View File

@@ -4,16 +4,9 @@ import (
"strings" "strings"
"time" "time"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
) )
const ( const (
@@ -42,71 +35,73 @@ func formalizeTagList(mtwmTagList string) (outTagList string) {
return outTagList return outTagList
} }
// 获取评价信息
func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) { func (c *PurchaseHandler) RefreshComment(fromTime, toTime time.Time) (err error) {
//storeMapList, err2 := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDMTWM}, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "", "", "") ////storeMapList, err2 := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDMTWM}, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "", "", "")
////if err = err2; err != nil {
//// return err
////}
//endDateStr := time.Now().Add(-24 * time.Hour).Format("20060102")
//startDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102")
//storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDMTWM)
//task := tasksch.NewParallelTask("mtwm RefreshComment", nil, jxcontext.AdminCtx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// storeID := batchItemList[0].(int)
// storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "")
// commentList, err2 := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied)
// var orderCommentList []*model.OrderComment
// if err = err2; err != nil {
// return nil, err
// }
// for _, mtwmComment := range commentList {
// createdTime, err := utils.TryStr2Time(mtwmComment.CommentTime)
// if err == nil {
// orderComment := &model.OrderComment{
// VendorOrderID: utils.Int64ToStr(mtwmComment.CommentID), // 美团评价不能得到订单号以评价ID代替
// VendorID: model.VendorIDMTWM,
// UserCommentID: utils.Int64ToStr(mtwmComment.CommentID),
// VendorStoreID: storeDetail.VendorStoreID,
// TagList: formalizeTagList(mtwmComment.CommentLables),
// Score: int8(mtwmComment.FoodCommentScore),
// ModifyDuration: BAD_COMMENTS_MAX_MODIFY_TIME,
// OriginalMsg: string(utils.MustMarshal(mtwmComment)),
// IsReplied: int8(mtwmComment.ReplyStatus),
// StoreID: storeDetail.ID,
// }
// if orderComment.IsReplied == 0 {
// orderComment.Content = mtwmComment.CommentContent
// orderComment.CommentCreatedAt = createdTime
// } else {
// orderComment.Content = mtwmComment.AddComment
// if updatedTime, err := utils.TryStr2Time(mtwmComment.CommentTime); err == nil {
// orderComment.CommentCreatedAt = updatedTime
// }
// }
// orderCommentList = append(orderCommentList, orderComment)
// }
// }
// return orderCommentList, nil
// }, storeIDs)
//task.Run()
//resultList, err2 := task.GetResult(0)
//if err = err2; err != nil { //if err = err2; err != nil {
// return err // return err
//} //}
endDateStr := time.Now().Add(-24 * time.Hour).Format("20060102") //var orderCommentList []*model.OrderComment
startDateStr := time.Now().Add(-RefreshCommentTime).Format("20060102") //for _, result := range resultList {
storeIDs, _ := dao.GetOrderStoreIDs(dao.GetDB(), fromTime, toTime, model.VendorIDMTWM) // orderComment := result.(*model.OrderComment)
task := tasksch.NewParallelTask("mtwm RefreshComment", nil, jxcontext.AdminCtx, // orderCommentList = append(orderCommentList, orderComment)
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { //}
storeID := batchItemList[0].(int) //if len(orderCommentList) > 0 {
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDMTWM, "") // err = partner.CurOrderManager.OnOrderComments(orderCommentList)
commentList, err2 := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).CommentQuery(storeDetail.VendorStoreID, startDateStr, endDateStr, 0, 0, mtwmapi.CommentReplyStatusNotReplied) //}
var orderCommentList []*model.OrderComment
if err = err2; err != nil {
return nil, err
}
for _, mtwmComment := range commentList {
createdTime, err := utils.TryStr2Time(mtwmComment.CommentTime)
if err == nil {
orderComment := &model.OrderComment{
VendorOrderID: utils.Int64ToStr(mtwmComment.CommentID), // 美团评价不能得到订单号以评价ID代替
VendorID: model.VendorIDMTWM,
UserCommentID: utils.Int64ToStr(mtwmComment.CommentID),
VendorStoreID: storeDetail.VendorStoreID,
TagList: formalizeTagList(mtwmComment.CommentLables),
Score: int8(mtwmComment.FoodCommentScore),
ModifyDuration: BAD_COMMENTS_MAX_MODIFY_TIME,
OriginalMsg: string(utils.MustMarshal(mtwmComment)),
IsReplied: int8(mtwmComment.ReplyStatus),
StoreID: storeDetail.ID,
}
if orderComment.IsReplied == 0 {
orderComment.Content = mtwmComment.CommentContent
orderComment.CommentCreatedAt = createdTime
} else {
orderComment.Content = mtwmComment.AddComment
if updatedTime, err := utils.TryStr2Time(mtwmComment.CommentTime); err == nil {
orderComment.CommentCreatedAt = updatedTime
}
}
orderCommentList = append(orderCommentList, orderComment)
}
}
return orderCommentList, nil
}, storeIDs)
task.Run()
resultList, err2 := task.GetResult(0)
if err = err2; err != nil {
return err
}
var orderCommentList []*model.OrderComment
for _, result := range resultList {
orderComment := result.(*model.OrderComment)
orderCommentList = append(orderCommentList, orderComment)
}
if len(orderCommentList) > 0 {
err = partner.CurOrderManager.OnOrderComments(orderCommentList)
}
return err return err
} }
// ReplyOrderComment 评价回复
func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) { func (c *PurchaseHandler) ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) {
if globals.EnableMtwmStoreWrite { //if globals.EnableMtwmStoreWrite {
err = getAPI(vendorOrgCode, orderComment.StoreID, orderComment.VendorStoreID).CommentAddReply(orderComment.VendorStoreID, utils.Str2Int64(orderComment.UserCommentID), replyComment) // err = getAPI(vendorOrgCode, orderComment.StoreID, orderComment.VendorStoreID).CommentAddReply(orderComment.VendorStoreID, utils.Str2Int64(orderComment.UserCommentID), replyComment)
} //}
return err return err
} }

View File

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