Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop

This commit is contained in:
邹宗楠
2023-06-13 09:32:34 +08:00
6 changed files with 51 additions and 19 deletions

View File

@@ -589,7 +589,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa
storeIDs2 = append(storeIDs2, k) storeIDs2 = append(storeIDs2, k)
} }
} else { } else {
//storeIDs2 = append(storeIDs2, -1) //storeIDs2 = append(storeIDs2, -1)l
// 商家小程序用户切换门店,如果角色storeIDsMap没有数据则查询传入数据 // 商家小程序用户切换门店,如果角色storeIDsMap没有数据则查询传入数据
storeIDs2 = append(storeIDs2, int(utils.Interface2Int64WithDefault(params["storeID"], 0))) storeIDs2 = append(storeIDs2, int(utils.Interface2Int64WithDefault(params["storeID"], 0)))
} }
@@ -1074,6 +1074,11 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
for k, _ := range valid { for k, _ := range valid {
if earningInfoMap[k] != "" || marketInfoMap[k] != "" { if earningInfoMap[k] != "" || marketInfoMap[k] != "" {
//增加权限校验
userRole, err := dao.GetUserRole(dao.GetDB(), []string{ctx.GetUserID()}, []int{model.RoleUpdateSettle})
if err != nil || len(userRole) == 0 {
return 0, errors.New(fmt.Sprintf("当前用户 [%v] 无权限修改此字段!", ctx.GetUserName()))
} else {
menus, _ := dao.GetMenuWithUser(dao.GetDB(), "结算权限", 0, 1, ctx.GetUserID()) menus, _ := dao.GetMenuWithUser(dao.GetDB(), "结算权限", 0, 1, ctx.GetUserID())
if len(menus) == 0 { if len(menus) == 0 {
if marketInfoMap[k] != "" { if marketInfoMap[k] != "" {
@@ -1087,6 +1092,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
} }
} }
} }
}
if len(valid) > 0 { if len(valid) > 0 {
if globals.IsAddEvent { if globals.IsAddEvent {

View File

@@ -17,6 +17,8 @@ const (
UserTypeOperator = 4 UserTypeOperator = 4
UserTypeBoss = 8 UserTypeBoss = 8
UserTypeRole = 16 UserTypeRole = 16
RoleUpdateSettle = 19 //修改市场权限
UserTypeNonConsumer = ^1 UserTypeNonConsumer = ^1
MemberTypeDiscountCard = 1 //会员折扣卡 MemberTypeDiscountCard = 1 //会员折扣卡

View File

@@ -156,6 +156,8 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
delivery.OnWaybillCreated(bill) delivery.OnWaybillCreated(bill)
//todo 模拟新运单回调 //todo 模拟新运单回调
if _, err = partner.CurOrderManager.LoadWaybill(sfOrderID, model.VendorIDSFPS); fmt.Sprintf("%s", err) == "找不到相应运单" { if _, err = partner.CurOrderManager.LoadWaybill(sfOrderID, model.VendorIDSFPS); fmt.Sprintf("%s", err) == "找不到相应运单" {
//忽略找不到运单错误
err = nil
resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{ resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{
ShopId: utils.Str2Float64(sfps2.SFShopStoreID), ShopId: utils.Str2Float64(sfps2.SFShopStoreID),
SFOrderID: sfOrderID, SFOrderID: sfOrderID,
@@ -253,7 +255,9 @@ func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeison
sfOrder, err := api.SfPsAPI.GetOrderStatus(order[0].VendorWaybillID) sfOrder, err := api.SfPsAPI.GetOrderStatus(order[0].VendorWaybillID)
//获取顺丰骑手实时位置 //获取顺丰骑手实时位置
sfRider, err := api.SfPsAPI.GetRiderLatestPosition(sfOrder.OrderID) sfRider, err := api.SfPsAPI.GetRiderLatestPosition(sfOrder.OrderID)
if sfRider == nil {
return nil, errors.New("顺丰派送暂无骑手信息")
}
result := &mtpsapi.RiderInfo{ result := &mtpsapi.RiderInfo{
OrderId: orderId, OrderId: orderId,
ThirdCarrierOrderId: sfOrder.OrderID, ThirdCarrierOrderId: sfOrder.OrderID,
@@ -298,6 +302,15 @@ func (c *DeliveryHandler) GetWaybillTip(ctx *jxcontext.Context, vendorOrgCode, v
return api.SfPsAPI.QueryTipFee(vendorWaybillID) return api.SfPsAPI.QueryTipFee(vendorWaybillID)
} }
func (c *DeliveryHandler) GetRidderPosition(ctx *jxcontext.Context, vendorOrgCode, vendorOrderID, vendorWaybillID, vendorWaybillID2 string) (lng, lat float64, err error) {
if rider, err := api.SfPsAPI.GetRiderLatestPosition(vendorWaybillID); err == nil && len(rider.RiderLng) > 0 && len(rider.RiderLat) > 0 {
lng = utils.Str2Float64(rider.RiderLng)
lat = utils.Str2Float64(rider.RiderLat)
return lng, lat, nil
}
return 0, 0, err
}
func (c *DeliveryHandler) UpdateWaybillTip(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorOrderID, vendorWaybillID, vendorWaybillID2, cityCode string, tipFee int64) (err error) { func (c *DeliveryHandler) UpdateWaybillTip(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorOrderID, vendorWaybillID, vendorWaybillID2, cityCode string, tipFee int64) (err error) {
return api.SfPsAPI.AddTipFee(vendorWaybillID, tipFee) return api.SfPsAPI.AddTipFee(vendorWaybillID, tipFee)
} }
@@ -397,7 +410,7 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
case sfps2.OrderStatusFinished: case sfps2.OrderStatusFinished:
result.LogisticsStatus = model.WaybillStatusDelivered result.LogisticsStatus = model.WaybillStatusDelivered
result.LogisticsContext = model.RiderGetOrderDelivered result.LogisticsContext = model.RiderGetOrderDelivered
case sfps2.OrderStatusOrderCancel: case sfps2.OrderStatusOrderCancel, sfps2.OrderStatusRiderCancel:
result.LogisticsStatus = model.WaybillStatusCanceled result.LogisticsStatus = model.WaybillStatusCanceled
result.LogisticsContext = model.RiderGetOrderCanceled result.LogisticsContext = model.RiderGetOrderCanceled
case sfps2.OrderStatusError: case sfps2.OrderStatusError:

View File

@@ -259,6 +259,18 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
return api.UuAPI.GetOrderLiquidatedDamages(deliverId, orderId) return api.UuAPI.GetOrderLiquidatedDamages(deliverId, orderId)
} }
func (c *DeliveryHandler) GetRidderPosition(ctx *jxcontext.Context, vendorOrgCode, vendorOrderID, vendorWaybillID, vendorWaybillID2 string) (lng, lat float64, err error) {
if rider, err := api.UuAPI.GetOrderDetail(vendorWaybillID); err == nil && len(rider.DriverLastloc) > 0 {
te := strings.Split(rider.DriverLastloc, ",")
if len(te) > 0 {
lng = utils.Str2Float64(te[0])
lat = utils.Str2Float64(te[1])
}
return lng, lat, nil
}
return 0, 0, err
}
//辅助函数 //辅助函数
func getOrderPrice(order *model.GoodsOrder) (orderPrice *uuptapi.GetOrderPriceResp, err error) { func getOrderPrice(order *model.GoodsOrder) (orderPrice *uuptapi.GetOrderPriceResp, err error) {
store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "") store, err := dao.GetStoreDetail(dao.GetDB(), getReallyStoreID(order.StoreID, order.JxStoreID), 0, "")

View File

@@ -92,6 +92,7 @@ func PingTimer() {
} }
globals.SugarLogger.Debugf("PingTimer jx clientID ") globals.SugarLogger.Debugf("PingTimer jx clientID ")
} else { } else {
fmt.Printf("PingTimer mt心跳conn%s,%s", conn.ClientId, conn.ClientType)
if err := conn.Socket.WriteMessage(websocket.TextMessage, []byte(HeartCheckMsg)); err != nil { if err := conn.Socket.WriteMessage(websocket.TextMessage, []byte(HeartCheckMsg)); err != nil {
fmt.Printf("PingTimer mtHeartBeat err:%v", err) fmt.Printf("PingTimer mtHeartBeat err:%v", err)
//对美团重新建立连接 //对美团重新建立连接

View File

@@ -24,15 +24,13 @@ func (c *SFPSController) SfOrder() {
c.ServeJSON() c.ServeJSON()
return return
} }
// 订单回调 // 订单回调
for k, v := range msg { for k, v := range msg {
callbackResponse = sfps.OnWaybillMsg(k, v) callbackResponse = sfps.OnWaybillMsg(k, v)
c.Data["data"] = callbackResponse c.Data["data"] = callbackResponse
fmt.Printf("SfOrder callbackResponse=%s", utils.Format4Output(callbackResponse, false)) fmt.Printf("SfOrder callbackResponse=%s", utils.Format4Output(callbackResponse, false))
err := c.ServeJSON() c.ServeJSON()
if err != nil {
fmt.Printf("serveJSON err=%v", err)
}
} }
} else { } else {
c.Abort("404") c.Abort("404")