1
This commit is contained in:
@@ -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{}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user