488 lines
16 KiB
Go
488 lines
16 KiB
Go
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: "新订单",
|
||
OrderStatusWaitAccepted: "待接单",
|
||
OrderStatusAccepted: "待拣货",
|
||
OrderStatusFinishedPickup: "待配送",
|
||
OrderStatusApplyFailedGetGoods: "取货失败待审核",
|
||
OrderStatusAgreeFailedGetGoods: "取货失败",
|
||
OrderStatusDelivering: "配送中",
|
||
OrderStatusDeliverFailed: "投递失败",
|
||
OrderStatusFinished: "完成",
|
||
OrderStatusCanceled: "取消",
|
||
|
||
AfsOrderStatusWait4Approve: "待审核",
|
||
AfsOrderStatusNew: "已审核",
|
||
AfsOrderStatusWait4ReceiveGoods: "退货待确认",
|
||
AfsOrderStatusReceivedGoods: "退货已收到",
|
||
AfsOrderStatusFinished: "售后成功",
|
||
AfsOrderStatusFailed: "售后失败",
|
||
}
|
||
WaybillStatusName = map[int]string{
|
||
WaybillStatusUnknown: "一般事件",
|
||
|
||
WaybillStatusNew: "新运单",
|
||
WaybillStatusPending: "压单",
|
||
WaybillStatusAcceptCanceled: "取消接受",
|
||
WaybillStatusAccepted: "已接单",
|
||
WaybillStatusCourierAssigned: "已分配骑手",
|
||
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": "每日订单打款",
|
||
"SyncStoresQualify": "上传门店营业资质",
|
||
"CancelOrder": "取消订单",
|
||
"UpdateSku": "修改sku",
|
||
"UpdateSkuName": "修改skuName",
|
||
}
|
||
|
||
MultiStoresVendorMap = map[int]int{
|
||
VendorIDJD: 1,
|
||
VendorIDMTWM: 0,
|
||
VendorIDELM: 0,
|
||
VendorIDEBAI: 0,
|
||
}
|
||
|
||
ZXCityCodeMap = map[int]string{
|
||
310100: "上海市",
|
||
110100: "北京市",
|
||
120100: "天津市",
|
||
440300: "深圳市",
|
||
500100: "重庆市",
|
||
441900: "东莞",
|
||
}
|
||
|
||
PrinterVendorInfo = map[int][]string{
|
||
VendorIDFeiE: []string{
|
||
VendorChineseNames[VendorIDFeiE],
|
||
"序列号",
|
||
"KEY",
|
||
},
|
||
VendorIDXiaoWM: []string{
|
||
VendorChineseNames[VendorIDXiaoWM],
|
||
"打印机编号",
|
||
"不填",
|
||
},
|
||
VendorIDYiLianYun: []string{
|
||
VendorChineseNames[VendorIDYiLianYun],
|
||
"终端号",
|
||
"密钥",
|
||
},
|
||
VendorIDZhongWu: []string{
|
||
VendorChineseNames[VendorIDZhongWu],
|
||
"打印机ID",
|
||
"打印机密钥",
|
||
},
|
||
VendorIDJxprint: []string{
|
||
VendorChineseNames[VendorIDJxprint],
|
||
"打印机编号",
|
||
"不填",
|
||
},
|
||
}
|
||
AfsReasonTypeName = map[int]string{
|
||
AfsReasonTypeGoodsQuality: "商品质量",
|
||
AfsReasonTypeWrongGoods: "错误的商品",
|
||
AfsReasonTypeMissingGoods: "缺少部分商品",
|
||
AfsReasonTypeNoGoods: "全部商品未收到",
|
||
AfsReasonTypeDamagedGoods: "商品有损伤",
|
||
AfsReasonTypeGoodsQuantity: "缺斤少两",
|
||
AfsReasonTypeGoodsAbsent: "商家通知我缺货",
|
||
AfsReasonTypeGoodsNoSame: "商品与描述不符",
|
||
AfsReasonWrongPurchase: "误购",
|
||
AfsReasonNotReceivedIntime: "未在时效内送达",
|
||
AfsReasonNotOthers: "其它",
|
||
}
|
||
AfsAppealTypeName = map[int]string{
|
||
AfsAppealTypeRefund: "仅退款",
|
||
AfsAppealTypeReturnAndRefund: "退款", // 这个其实是退货退款,强制显示成退款
|
||
AfsAppealTypeNewGoods: "退款.", // 这个其实是重发商品,强制显示成退款
|
||
}
|
||
VendorStatus = map[int]string{
|
||
0: "休息",
|
||
1: "营业",
|
||
}
|
||
)
|
||
|
||
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 // 火星坐标,高德坐标,GCJ-02坐标系
|
||
CoordinateTypeBaiDu = 1 // 百度坐标,bd-09,在GCJ-02坐标系上再次偏移加密的坐标
|
||
CoordinateTypeMapbar = 2
|
||
CoordinateTypeGPS = 84 // 真实坐标,WGS-84原始坐标系
|
||
)
|
||
|
||
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 下单待支付
|
||
OrderStatusWaitAccepted = 3 // 待接单,目前饿百用
|
||
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
|
||
WaybillStatusCourierAssigned = 12 //已分配骑手
|
||
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
|
||
)
|
||
|
||
const (
|
||
YES = 1 //通用
|
||
NO = 0
|
||
DISABLED = -1
|
||
)
|
||
|
||
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
|
||
}
|