Files
jx-callback/business/model/const.go

456 lines
15 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 (
"fmt"
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/globals"
)
var (
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: globals.StoreName,
VendorIDMTWM: globals.StoreNameMtwm,
VendorIDELM: globals.StoreNameEbai,
VendorIDEBAI: globals.StoreNameEbai,
VendorIDJX: fmt.Sprintf("%s商城", globals.StoreName),
VendorIDWSC: "微盟微商城",
}
OrderStatusName = map[int]string{
OrderStatusMsg: "通知消息",
OrderStatusWaybillTipChanged: "小费变动",
OrderStatusRefuseFailedGetGoods: "取货失败审核驳回",
OrderStatusAdjust: "订单调整完成",
OrderStatusApplyUrgeOrder: "催单",
OrderStatusUnlocked: "解锁",
OrderStatusLocked: "锁定",
// OrderStatusApplyRefund: "申请退款",
OrderStatusUndoApplyCancel: "取消申请取消",
OrderStatusVendorRejectCancel: "拒绝取消",
OrderStatusVendorAgreeCancel: "同意取消",
OrderStatusApplyCancel: "申请取消",
OrderStatusUnknown: "一般事件",
OrderStatusWait4Pay: "待付款",
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: "售后单",
}
ComplaintReasons = map[int]string{
ComplaintReasons1: "骑手态度恶劣",
ComplaintReasons2: "骑手接单后未取货",
ComplaintReasons3: "骑手取货太慢",
ComplaintReasons4: "骑手送货太慢",
ComplaintReasons5: "货品未送达",
ComplaintReasons6: "货品有损坏",
ComplaintReasons7: "骑手违规收取顾客其他费用",
ComplaintReasons69: "骑手恶意取消订单",
ComplaintReasons71: "骑手提前点击取货/送达",
}
SupplementTypeName = map[int]string{
BadAppraiseSupplement: "差评退款",
Coupon: "优惠券",
}
OperateTypeName = map[int]string{
OperateAdd: "新增",
OperateUpdate: "修改",
OperateDelete: "删除",
// OperateCopyStoreSkus: "复制门店商品",
}
ThingTypeName = map[int]string{
ThingTypeCategory: "分类",
ThingTypeSku: "门店商品",
ThingTypeSkuName: "商品库",
ThingTypeStore: "门店",
}
ApiFunctionName = map[string]string{
"UpdateStoresSkus": "门店商品管理",
"UpdateStoresSkusSale": "门店商品可售状态修改",
"CopyStoreSkus": "京西门店商品复制到京西",
"UpdateStore": "门店管理-更新门店信息",
"CreateStore": "门店管理-创建门店",
"DeleteStore": "门店管理-删除门店",
"DeleteStoreVendorMap": "门店解绑",
"AddStoreVendorMap": "门店绑定",
"UpdateStoreVendorMap": "门店修改平台绑定信息",
"DeleteStoreCourierMap": "门店解绑三方配送平台",
"AddStoreCourierMap": "门店绑定三方配送平台",
"UpdateStoreCourierMap": "门店修改三方配送平台绑定信息",
"Login": "登录",
"RegisterUser": "注册",
"AutoPayForPopluarMan": "每日订单打款",
}
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: "缺斤少两",
AfsReasonTypeGoodsAbsent: "商家通知我缺货",
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
OrderStatusWaybillTipChanged = -80 // 订单小费变化
OrderStatusRefuseFailedGetGoods = -70 // 取货失败审核驳回
OrderStatusAdjust = -65 // 原值-35 订单调整完成
OrderStatusApplyUrgeOrder = -55 // 原值-15
OrderStatusUnlocked = -25
OrderStatusLocked = -20
OrderStatusUndoApplyCancel = -10
OrderStatusVendorRejectCancel = -7
OrderStatusVendorAgreeCancel = -6
OrderStatusApplyCancel = -5
OrderStatusUnknown = 0
OrderStatusWait4Pay = 2 // 原值-60 下单待支付
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 (
ComplaintReasons1 = 1 //"骑手态度恶劣",
ComplaintReasons2 = 2 //"骑手接单后未取货"
ComplaintReasons3 = 3 //"骑手取货太慢",
ComplaintReasons4 = 4 //"骑手送货太慢",
ComplaintReasons5 = 5 //"货品未送达",
ComplaintReasons6 = 6 //"货品有损坏",
ComplaintReasons7 = 7 //"骑手违规收取顾客其他费用",
ComplaintReasons69 = 69 //"骑手恶意取消订单",
ComplaintReasons71 = 71 //"骑手提前点击取货/送达",
)
const (
BadAppraiseSupplement = 1 //差评退款
Coupon = 2 //优惠券
)
const (
OperateAdd = 2 //新增操作
OperateUpdate = 1 //修改操作
OperateDelete = 4 //删除操作
OperateCopyStoreSkus = 3 //复制门店商品
)
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比如达达平台在这种状态下再次创建运单的方式不一样
WaybillStatusEndEnd = 120
)
const (
BusinessTypeImmediate = 1
BusinessTypeDingshida = 2
)
var (
ElmSkuPromotion = map[int]int{
11: 1,
200: 1,
}
)
const (
JdPlatformFeeRate = 10
MtPlatformFeeRate = 10
)
const (
OrderDeliveryFlagMaskScheduleDisabled = 1 // 禁止三方配送调度
OrderDeliveryFlagMaskPurcahseDisabled = 2 // 购物平台已不配送(一般为门店配送类型本身为自配送,或已经转自配送)
OrderDeliveryFlagMaskAutoPickup = 4 // 是否是自动拣货的
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 // 取货失败后召唤平台配送
OrderFlagMaskSetDelivered = 128 // 设置送达
OrderFlagMaskFake = 256 // 假订单,即刷单用的
OrderFlagMaskTempJX = 512 // 临时京西订单
)
const (
AfsOrderFlagMaskUserRefund = 3 // 门店处理售后单申请
AfsOrderFlagAgreeUserRefund = 1 // 门店同意售后单申请
AfsOrderFlagRefuseUserRefund = 3 // 门店拒绝售后单申请
AfsOrderFlagMaskReturnGoods = 4 // 门店确认收到退货
)
const (
AfsAppealTypeRefund = 1 // 仅退款
AfsAppealTypeReturnAndRefund = 2 // 退货退款
AfsAppealTypeNewGoods = 3 // 重发新商品(即京东到家的直赔)
)
const (
AfsReasonTypeGoodsQuality = 1 // 商品质量
AfsReasonTypeWrongGoods = 2 // 错误的商品
AfsReasonTypeMissingGoods = 3 // 缺少部分商品
AfsReasonTypeNoGoods = 4 // 全部商品未收到
AfsReasonTypeDamagedGoods = 5 // 商品有损伤
AfsReasonTypeGoodsQuantity = 6 // 缺斤少两
AfsReasonTypeGoodsAbsent = 7 // 商家通知缺货
AfsReasonTypeGoodsNoSame = 8 // 商品与描述不符
AfsReasonWrongPurchase = 9 // 误购
AfsReasonNotReceivedIntime = 10 // 未在时效内送达
AfsReasonNotOthers = 0 // 其它
)
const (
AfsTypeUnknown = 0 // 未知
AfsTypePartRefund = 1 // 部分退款
AfsTypeFullRefund = 2 // 全额退款
)
const (
DefaultEarningPricePercentage = 70 // 门店缺省结算百分比
MinVendorPricePercentage = 10
DefVendorPricePercentage = 100 // 平台缺省调价比例
MaxVendorPricePercentage = 400
)
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 || status == OrderStatusVendorAgreeCancel || status == OrderStatusVendorRejectCancel
}
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 IsVendorRemote(vendorID int) bool {
return vendorID >= VendorIDJD && vendorID <= VendorIDEBAI
}
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
}
func IsWaybillFinalStatus(status int) bool {
return status >= WaybillStatusEndBegin && status <= WaybillStatusEndEnd
}