Files
jx-callback/business/model/const.go
gazebo 16c8aa018f - defsch调度器的timer添加条件函数ShouldSetTimer
- 饿百发三方需要在订单创建30分钟后才可以
2019-05-14 12:04:45 +08:00

400 lines
12 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package model
import (
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
)
// VendorIDJD, VendorIDMTWM与VendorIDELM的定义和老系统是兼容的
const (
VendorIDUnknown = -1
VendorIDPurchaseBegin = 0
VendorIDJD = 0
VendorIDMTWM = 1
VendorIDELM = 2
VendorIDEBAI = 3
VendorIDJX = 9 // 这是一个假的京西VendorID
VendorIDWSC = 11 // 微盟微商城
VendorIDPurchaseEnd = 11
VendorIDDeliveryBegin = 101
VendorIDDada = 101
VendorIDMTPS = 102
VendorIDFengNiao = 103
VendorIDDeliveryEnd = VendorIDFengNiao
VendorIDPrinterBegin = 201
VendorIDFeiE = 201 // 飞鹅打印机
VendorIDXiaoWM = 202 // 外卖管家打印机
VendorIDYiLianYun = 203 // 易联云
VendorIDZhongWu = 204 // 中午云打印
VendorIDPrinterEnd = 204
)
var (
VendorNames = map[int]string{
VendorIDJD: "Jd",
VendorIDMTWM: "Mtwm",
VendorIDELM: "Elm",
VendorIDEBAI: "Ebai",
VendorIDWSC: "Wsc",
VendorIDDada: "Dada",
VendorIDMTPS: "Mtps",
VendorIDFeiE: "Feie",
VendorIDXiaoWM: "XiaoWM",
VendorIDYiLianYun: "Yilianyun",
VendorIDZhongWu: "ZhongWu",
}
VendorChineseNames = map[int]string{
VendorIDJD: "京东到家",
VendorIDMTWM: "美团外卖",
VendorIDELM: "饿了么",
VendorIDEBAI: "饿百新零售",
VendorIDWSC: "微盟微商城",
VendorIDDada: "达达众包",
VendorIDMTPS: "美团配送",
VendorIDFeiE: "飞鹅",
VendorIDXiaoWM: "外卖管家",
VendorIDYiLianYun: "易联云",
VendorIDZhongWu: "中午云",
}
PurchaseVendorInfo = map[int]map[string]interface{}{
VendorIDJD: map[string]interface{}{
"chineseName": VendorChineseNames[VendorIDJD],
"userApplyCancelWaitMinute": jdapi.UserApplyCancelWaitMinute,
},
VendorIDMTWM: map[string]interface{}{
"chineseName": VendorChineseNames[VendorIDMTWM],
"userApplyCancelWaitMinute": mtwmapi.UserApplyCancelWaitMinute,
},
VendorIDEBAI: map[string]interface{}{
"chineseName": VendorChineseNames[VendorIDEBAI],
"userApplyCancelWaitMinute": ebaiapi.UserApplyCancelWaitMinute,
},
}
ShopChineseNames = map[int]string{
VendorIDJD: "京西菜市",
VendorIDMTWM: "美好菜市",
VendorIDELM: "好菜鲜生",
VendorIDEBAI: "好菜鲜生",
VendorIDWSC: "京西菜市",
}
OrderStatusName = map[int]string{
OrderStatusMsg: "通知消息",
OrderStatusRefuseFailedGetGoods: "取货失败审核驳回",
OrderStatusAdjust: "订单调整完成",
OrderStatusWait4Pay: "待付款",
OrderStatusApplyUrgeOrder: "催单",
OrderStatusUnlocked: "解锁",
OrderStatusLocked: "锁定",
// OrderStatusApplyRefund: "申请退款",
OrderStatusUndoApplyCancel: "取消申请取消",
OrderStatusApplyCancel: "申请取消",
OrderStatusUnknown: "一般事件",
OrderStatusNew: "新订单",
OrderStatusAccepted: "已接单",
OrderStatusFinishedPickup: "已拣货",
OrderStatusApplyFailedGetGoods: "取货失败待审核",
OrderStatusAgreeFailedGetGoods: "取货失败",
OrderStatusDelivering: "配送中",
OrderStatusDeliverFailed: "投递失败",
OrderStatusFinished: "完成",
OrderStatusCanceled: "取消",
AfsOrderStatusWait4Approve: "售后待审",
AfsOrderStatusNew: "新售后单",
AfsOrderStatusWait4ReceiveGoods: "售后待确认收货",
AfsOrderStatusReceivedGoods: "售后已收货",
AfsOrderStatusFinished: "售后成功",
AfsOrderStatusFailed: "售后失败",
}
WaybillStatusName = map[int]string{
WaybillStatusUnknown: "一般事件",
WaybillStatusNew: "新运单",
WaybillStatusPending: "压单",
WaybillStatusAcceptCanceled: "取消接受",
WaybillStatusAccepted: "已接单",
WaybillStatusCourierArrived: "已到店",
WaybillStatusApplyFailedGetGoods: "取货失败待审核",
WaybillStatusAgreeFailedGetGoods: "取货失败",
WaybillStatusDelivering: "配送中",
WaybillStatusDeliverFailed: "投递失败",
WaybillStatusDelivered: "送达",
WaybillStatusCanceled: "取消",
WaybillStatusFailed: "失败",
}
OrderTypeName = map[int]string{
OrderTypeOrder: "订单",
OrderTypeWaybill: "运单",
OrderTypeAfsOrder: "售后单",
}
MultiStoresVendorMap = map[int]int{
VendorIDJD: 1,
VendorIDMTWM: 0,
VendorIDELM: 0,
VendorIDEBAI: 0,
}
PrinterVendorInfo = map[int][]string{
VendorIDFeiE: []string{
VendorChineseNames[VendorIDFeiE],
"序列号",
"KEY",
},
VendorIDXiaoWM: []string{
VendorChineseNames[VendorIDXiaoWM],
"打印机编号",
"不填",
},
VendorIDYiLianYun: []string{
VendorChineseNames[VendorIDYiLianYun],
"终端号",
"密钥",
},
VendorIDZhongWu: []string{
VendorChineseNames[VendorIDZhongWu],
"打印机ID",
"打印机密钥",
},
}
AfsReasonTypeName = map[int]string{
AfsReasonTypeGoodsQuality: "商品质量",
AfsReasonTypeWrongGoods: "错误的商品",
AfsReasonTypeMissingGoods: "缺少部分商品",
AfsReasonTypeNoGoods: "全部商品未收到",
AfsReasonTypeDamagedGoods: "商品有损伤",
AfsReasonTypeGoodsQuantity: "缺斤少两",
AfsReasonTypeAgreedByMerchant: "与商家协商一致",
AfsReasonTypeGoodsNoSame: "商品与描述不符",
AfsReasonWrongPurchase: "误购",
AfsReasonNotReceivedIntime: "未在时效内送达",
AfsReasonNotOthers: "其它",
}
AfsAppealTypeName = map[int]string{
AfsAppealTypeRefund: "仅退款",
AfsAppealTypeReturnAndRefund: "退货退款",
AfsAppealTypeNewGoods: "重发商品",
}
)
const (
OrderTypeOrder = 1
OrderTypeWaybill = 2
OrderTypeAfsOrder = 3
)
// https://blog.csdn.net/a13570320979/article/details/51366355
// 美团配送:
// 坐标类型0火星坐标高德腾讯地图均采用火星坐标 1百度坐标 默认值为0
// 京东:
// 收货人地址定位类型buyerCoordType值为空或为1时定位类型为gps如为其他值时定位类型为非gps类型。)
// 饿了么:
// 只支持高德坐标
// 达达:
// 只支持高德坐标
// 如下定义与美团配送兼容
const (
CoordinateTypeMars = 0 // 火星坐标高德坐标GCJ02坐标系
CoordinateTypeBaiDu = 1 // 百度坐标bd-09在GCJ02坐标系上再次偏移加密的坐标
CoordinateTypeMapbar = 2
CoordinateTypeGPS = 84 // 真实坐标WGS84原始坐标系
)
const (
OrderStatusMsg = -100
OrderStatusRefuseFailedGetGoods = -70 // 取货失败审核驳回
OrderStatusAdjust = -65 // 原值-35 订单调整完成
OrderStatusWait4Pay = -60 // 原值-30 下单待支付,微盟在这个时间发新订单事件
OrderStatusApplyUrgeOrder = -55 // 原值-15
OrderStatusUnlocked = -25
OrderStatusLocked = -20
// OrderStatusApplyRefund = -10
OrderStatusUndoApplyCancel = -10
OrderStatusApplyCancel = -5
OrderStatusUnknown = 0
OrderStatusNew = 5 // 新订单
OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货
OrderStatusFinishedPickup = 15 // 拣货完成
OrderStatusApplyFailedGetGoods = 17 // 取货失败待审核
OrderStatusAgreeFailedGetGoods = 18 // 取货失败
OrderStatusDelivering = 20 // 开始配送,配送员已取货,从这里开始就是运单消息了
OrderStatusDeliverFailed = 22 // 投递失败
OrderStatusEndBegin = 100 // 以下的状态就是结束状态
OrderStatusFinished = 110 // 订单已完成
OrderStatusCanceled = 115 // 订单已取消
OrderStatusEndEnd = 120
AfsOrderStatusWait4Approve = 155 // 待审核售后单
AfsOrderStatusNew = 160 // 已审核或不需要审核售后单
AfsOrderStatusWait4ReceiveGoods = 165 // 退款退货的,需要商家确认收到货
AfsOrderStatusReceivedGoods = 167 // 已确认收到货
AfsOrderStatusFinished = 180 // 售后单成功完成
AfsOrderStatusFailed = 190 // 售后单失败
)
const (
LockStatusUnlocked = 0
LockStatusLocked = 1
)
const (
WaybillStatusRefuseFailedGetGoods = -70
WaybillStatusUnknown = 0
WaybillStatusNew = 5
WaybillStatusPending = 7
WaybillStatusAcceptCanceled = 8
WaybillStatusAccepted = 10
WaybillStatusCourierArrived = 15 // 此状态是可选的,明确写出来是因为还是较重要的状态,但业务逻辑不应依赖此状态
WaybillStatusApplyFailedGetGoods = 17 // 取货失败待审核
WaybillStatusAgreeFailedGetGoods = 18 // 取货失败
WaybillStatusDelivering = 20
WaybillStatusDeliverFailed = 22
WaybillStatusEndBegin = 100 // 以下的状态就是结束状态
WaybillStatusDelivered = 105 // todo 这个应该改为110与订单对应
WaybillStatusCanceled = 115
WaybillStatusFailed = 120 // 这个状态存在的意义是区分于WaybillStatusCanceled比如达达平台在这种状态下再次创建运单的方式不一样
)
const (
BusinessTypeImmediate = 1
BusinessTypeDingshida = 2
)
var (
ElmSkuPromotion = map[int]int{
11: 1,
200: 1,
}
)
const (
JdPlatformFeeRate = 10
MtPlatformFeeRate = 10
)
const (
OrderDeliveryFlagMaskScheduleDisabled = 1 // 禁止三方配送调度
OrderDeliveryFlagMaskPurcahseDisabled = 2 // 购物平台已不配送(一般为门店配送类型本身为自配送,或已经转自配送)
OrderDeliveryFlagMaskDada = 16 // 创建达达运单中
OrderDeliveryFlagMaskMtps = 32 // 创建美团配送运单中
)
const (
WaybillDeliveryFlagMaskActiveCancel = 1 // 主动取消
)
const (
OrderFlagMaskPrinted = 1 // 已经打印
OrderFlagMaskUserApplyCancel = 6
OrderFlagAgreeUserApplyCancel = 2
OrderFlagRefuseUserApplyCancel = 6
OrderFlagMaskFailedGetGoods = 24
OrderFlagAgreeFailedGetGoods = 8
OrderFlagRefuseFailedGetGoods = 24
OrderFlagMaskFailedDeliver = 32
OrderFlagMaskCallPMCourier = 64 // 取货失败后召唤平台配送
)
const (
AfsAppealTypeRefund = 1 // 仅退款
AfsAppealTypeReturnAndRefund = 2 // 退货退款
AfsAppealTypeNewGoods = 3 // 重发新商品(即京东到家的直赔)
)
const (
AfsReasonTypeGoodsQuality = 1 // 商品质量
AfsReasonTypeWrongGoods = 2 // 错误的商品
AfsReasonTypeMissingGoods = 3 // 缺少部分商品
AfsReasonTypeNoGoods = 4 // 全部商品未收到
AfsReasonTypeDamagedGoods = 5 // 商品有损伤
AfsReasonTypeGoodsQuantity = 6 // 缺斤少两
AfsReasonTypeAgreedByMerchant = 7 // 与商家协商一致
AfsReasonTypeGoodsNoSame = 8 // 商品与描述不符
AfsReasonWrongPurchase = 9 // 误购
AfsReasonNotReceivedIntime = 10 // 未在时效内送达
AfsReasonNotOthers = 0 // 其它
)
const (
AfsTypeUnknown = 0 // 未知
AfsTypePartRefund = 1 // 部分退款
AfsTypeFullRefund = 2 // 全额退款
)
func IsPurchaseVendorExist(vendorID int) bool {
_, ok := VendorNames[vendorID]
return ok && vendorID >= VendorIDPurchaseBegin && vendorID <= VendorIDPurchaseEnd
}
func IsDeliveryVendorExist(vendorID int) bool {
_, ok := VendorNames[vendorID]
return ok && vendorID >= VendorIDDeliveryBegin && vendorID <= VendorIDDeliveryEnd
}
func IsPrinterVendorExist(vendorID int) bool {
_, ok := VendorNames[vendorID]
return ok && vendorID >= VendorIDPrinterBegin && vendorID <= VendorIDPrinterEnd
}
func IsOrderLockStatus(status int) bool {
return status == OrderStatusLocked || status == OrderStatusApplyCancel
}
func IsOrderUnlockStatus(status int) bool {
return status == OrderStatusUnlocked || status == OrderStatusUndoApplyCancel
}
func IsOrderMainStatus(status int) bool {
return status > OrderStatusUnknown
}
func IsOrderFinalStatus(status int) bool {
return status >= OrderStatusEndBegin && status <= OrderStatusEndEnd
}
func IsOrderImportantStatus(status int) bool {
return IsOrderMainStatus(status) || IsOrderLockStatus(status) || IsOrderUnlockStatus(status)
}
func WaybillVendorID2Mask(vendorID int) (mask int8) {
if vendorID == VendorIDDada {
mask = OrderDeliveryFlagMaskDada
} else if vendorID == VendorIDMTPS {
mask = OrderDeliveryFlagMaskMtps
}
return mask
}
func IsAfsOrderFinalStatus(status int) bool {
return status >= AfsOrderStatusFinished && status <= AfsOrderStatusFailed
}