Files
jx-callback/business/model/job.go
suyl 29a15b55cd aa
2021-05-24 16:20:40 +08:00

341 lines
14 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 (
"time"
"git.rosy.net.cn/baseapi/platformapi/txcloudapi"
)
const (
JobStatusDoing = 0 //正在进行中
JobStatusFinished = 1 //任务所有都被完成
JobStatusFailed = -1 //任务发布失败
JobStatusOverdue = -2 //任务过期
JobLimitCountTypePO = 1 //每人一次
JobLimitCountTypePDO = 2 //每人每天一次
JobLimitCountTypePWO = 3 //每人每周一次
JobLimitCountTypeNoLimit = 4 //不限制
JobOrderStatusSpec = 1 //特殊状态(联盟任务)
JobOrderStatusAccept = 5
JobOrderStatusWaitAudit = 10
JobOrderStatusAuditPass = 15
JobOrderStatusAuditUnPass = 20
JobOrderStatusFinish = 110
JobOrderStatusCancel = 115
JobTimerTypeAccept = 1 //接受任务
JobTimerTypeSubmit = 2 //交任务
JobTimerTypeDropShipping = 3 //一件代发限时发货
JobTimerStatusWait = 0 //正在进行
JobTimerStatusFinish = 1 //定时任务已完成
JobTypeNormal = 0 //普通任务
JobTypeMtMember = 1 //美团会员任务
JobTypeJdDelivery = 2 //京东快递任务
JobTypeOther = 3 //其他任务(可能是存储信息用的
JobCashbackPrice = 1 //返现类型固定返现
JobCashbackPercentage = 2 //返现类型比例返现
JobCategoryIDwmtg = 3 //任务类型外卖推广
JobCategoryIDOther = 4 //其他任务类型
JobCategoryIDDropShipping = 5 //一件代发
JobCategoryIDUnion = 6 //联盟任务
JobSpanTop = 1 //置顶
JobSpanRecommend = 2 //推荐
JobCountrywideCode = 999
)
const (
/*消费类型*/
ConsumeTypePublishJob = 1 //发任务
ConsumeTypeMember = 2 //充会员
ConsumeTypeDelivery = 3 //发快递
)
var (
DeliveryStatusName = map[int]string{
OrderStatusNew: "上门取件中",
OrderStatusDelivering: "配送中",
OrderStatusFinished: "已妥投",
OrderStatusCanceled: "已取消",
}
CashbackName = map[int]string{
JobCashbackPrice: "固定返现",
JobCashbackPercentage: "比例返现",
}
ConsumeName = map[int]string{
ConsumeTypePublishJob: "发任务",
ConsumeTypeMember: "充会员",
ConsumeTypeDelivery: "发快递",
}
TxWaybillNames = map[int]string{
txcloudapi.StatusErr: "单号或代码错误",
txcloudapi.StatusNull: "暂无轨迹",
txcloudapi.StatusAccept: "快递收件",
txcloudapi.StatusDelivering: "在途中",
txcloudapi.StatusFinished: "已签收",
txcloudapi.StatusProblem: "问题件 (派件不成功或要求择日派送)",
txcloudapi.StatusException: "疑难件(收件人拒绝签收,地址有误或不能送达派送区域,收费等原因无法正常派送)",
txcloudapi.StatusFailed: "退件签收",
}
)
type Job struct {
ModelIDCULD
UserID string `orm:"column(user_id)" json:"userID"` //发布人ID
JobCategoryID int `orm:"column(job_category_id)" json:"jobCategoryID"` //任务类型
JobSpanTop int `json:"jobSpanTop"` //置顶标签
TopSeq int `json:"topSeq"` //置顶顺序
JobSpanRecmd int `json:"jobSpanRecmd"` //推荐标签
RecmdSeq int `json:"recmdSeq"` //推荐顺序
Title string `orm:"size(255)" json:"title"` //任务标题
Content string `orm:"size(500)" json:"content"` //任务内容
Count int `json:"count"` //任务数量
SurplusCount int `json:"surplusCount"` //剩余数量
AvgPrice int `json:"avgPrice"` //单个任务金额或预估金额
DropShippingSkuPrice int `json:"dropShippingSkuPrice"` //一件代发任务商品价格
Percentage int `json:"percentage"` //如果是比例返现,返现比例
CashbackType int `json:"cashbackType"` //返现方式1为固定返现2为比例返现
TotalPrice int `json:"totalPrice"` //任务总金额
Status int `json:"status"` //任务状态
Address string `orm:"size(500)" json:"address"` //门店地址
Lng int `json:"lng"` //乘了10的6次方
Lat int `json:"lat"` //乘了10的6次方
JobLng float64 `json:"jobLng"` //任务发布地址
JobLat float64 `json:"jobLat"` //任务发布地址
JobCityCode int `json:"jobCityCode"` //任务所属城市,999代表全国
DropShippingAt int `json:"dropShippingAt"` //承诺一件代发几天内发货,小时数
JobLimitAt int `json:"jobLimitAt"` //任务限时完成小时数
AuditLimitAt int `json:"auditLimitAt"` //任务审核限时小时数
FinishedAt *time.Time `orm:"null" json:"finishedAt"` //接单截止日期
LimitCountType int `json:"limitCountType"` //任务限次类型1为每人一次2为每人每天一次3为每人每周一次4为不限制
VendorID int `orm:"column(vendor_id)" json:"vendorID"` //推广平台
StoreURL string `orm:"column(store_url)" json:"storeURL"` //门店链接
SkuURL string `orm:"column(sku_url)" json:"skuURL"` //商品优惠券链接
Type int `json:"type"` //任务类型0为普通任务1为特殊任务
BrowseCount int `json:"browseCount"` //任务浏览量,点一下加一下
UnionImg string `json:"unionImg"` //联盟任务分享链接的背景图
UnionQrcodePosition string `json:"unionQrcodePosition"` //联盟任务分享链接的二维码图的方位
UnionActID string `orm:"column(union_act_id)" json:"unionActID"` //联盟任务ID
// JobSteps []*JobStep `orm:"-" json:"jobSteps"`
// JobImgs []*JobImg `orm:"-" json:"jobImgs"`
}
func (v *Job) TableIndex() [][]string {
return [][]string{
[]string{"UserID"},
[]string{"CreatedAt"},
}
}
type JobExt struct {
FinishedAtStr string `json:"finishedAtStr"` //接单截止日期
Job
JobSteps []*JobStep `orm:"-" json:"jobSteps"`
JobImgs []*JobImg `orm:"-" json:"jobImgs"`
}
type JobImg struct {
ModelIDCUL
JobID int `orm:"column(job_id)" json:"jobID"` //任务ID
Img string `orm:"size(500)" json:"img"` //图片
}
func (v *JobImg) TableIndex() [][]string {
return [][]string{
[]string{"JobID"},
}
}
type JobCategory struct {
ModelIDCULD
Name string `orm:"size(48)" json:"name"` //类型名称
Img string `orm:"size(500)" json:"img"` //类型图片
}
func (v *JobCategory) TableUnique() [][]string {
return [][]string{
[]string{"Name"},
}
}
type JobStep struct {
ModelIDCULD
JobID int `orm:"column(job_id)" json:"jobID"` //任务ID
StepCount int `json:"stepCount"` //步骤数
Content string `orm:"size(500)" json:"content"` //步骤内容
Img string `orm:"size(500)" json:"img"` //步骤图片
Type int `json:"type"` //步骤类型1为任务步骤2为收集信息
}
func (v *JobStep) TableIndex() [][]string {
return [][]string{
[]string{"JobID"},
}
}
type JobOrder struct {
ModelIDCUL
JobID int `orm:"column(job_id)" json:"jobID"` //任务ID
JobOrderID int64 `orm:"column(job_order_id)" json:"jobOrderID"` //任务订单号
UserID string `orm:"column(user_id)" json:"userID"` //接任务人ID
Status int `json:"status"` //任务订单状态,接单,待审核,已审核,已结算等
SubmitAuditAt time.Time `json:"submitAuditTime"` //提交审核日期
AuditAt time.Time `json:"auditAt"` //审核日期
Content string `josn:"content"` //任务审核内容
Imgs string `json:"imgs"` //任务审核图片
Comment string `json:"comment"` //审核理由
UserActualPrice int `json:"userActualPrice"` //用户订单实际支付(用户自填)
DropShippingCount int `json:"dropShippingCount"` //一件代发购买商品数量
DropShippingDeliveryID int `orm:"column(drop_shipping_delivery_id)" json:"dropShippingDeliveryID"`
DropShippingName string `json:"dropShippingName"`
DropShippingMobile string `json:"dropShippingMobile"`
DropShippingAddress string `json:"dropShippingAddress"`
DropShippingDetailAddress string `json:"dropShippingDetailAddress"`
DropShippingLng float64 `json:"dropShippingLng"`
DropShippingLat float64 `json:"dropShippingLat"`
DropShippingAutoAddress string `json:"dropShippingAutoAddress"`
DropShippingCityCode int `json:"dropShippingCityCode"`
DropShippingDistrictCode int `json:"dropShippingDistrictCode"`
VendorWaybillID string `orm:"column(vendor_waybill_id)" json:"vendorWaybillID"` //运单号
WaybillInfo string `orm:"type(text)" json:"waybillInfo"` //物流信息
WaybillQueryTime time.Time `json:"waybillQueryTime"` //上次查询时间
WaybillStatus int `json:"waybillStatus"` //运单状态(一件代发)
DropShippingConfirmTime time.Time `orm:"type(datetime);null" json:"dropShippingConfirmTime"` //确认收货时间
DropShippingConfirmUser string `json:"dropShippingConfirmUser"` //确认收货人
}
func (v *JobOrder) TableIndex() [][]string {
return [][]string{
[]string{"JobID"},
[]string{"JobOrderID"},
[]string{"UserID"},
}
}
type JobTimer struct {
ModelIDCUL
JobID int `orm:"column(job_id)" json:"jobID"` //任务ID
JobOrderID int64 `orm:"column(job_order_id)" json:"jobOrderID"` //任务订单号
Type int `json:"type"` //定时任务类型1为接受任务2为提交审核
Status int `json:"status"` //定时任务的状态0表示正在进行1表示已经结束
StartAt time.Time `json:"startAt"` //定时任务开始时间
LimitAt int `json:"limitAt"` //定时任务时长(小时数)
}
func (v *JobTimer) TableIndex() [][]string {
return [][]string{
[]string{"JobID"},
[]string{"JobOrderID"},
}
}
type JobSpan struct {
ModelIDCULD
JobID int `orm:"column(job_id)" json:"jobID"` //任务ID
EndAt *time.Time `json:"endAt"` //生效时间范围
SpanType int `json:"spanType"` //1为置顶2为推荐
}
func (v *JobSpan) TableIndex() [][]string {
return [][]string{
[]string{"JobID", "DeletedAt"},
}
}
type MtMember struct {
ModelIDCULD
URL string `orm:"column(url)" json:"url"` //网址
ExpiryDate time.Time `json:"expiryDate"` //有效期
ShortLink string `json:"shortLink"` //密钥?
}
func (v *MtMember) TableUnique() [][]string {
return [][]string{
[]string{"URL"},
}
}
func (v *MtMember) TableIndex() [][]string {
return [][]string{
[]string{"DeletedAt"},
}
}
type StationInfo struct {
ModelIDCUL
StationID string `orm:"column(station_id)" json:"stationID"`
StationName string `json:"stationName"`
ProvinceName string `json:"provinceName"`
ProvinceID int `orm:"column(province_id)" json:"provinceID"`
CityName string `json:"cityName"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Location string `json:"location"`
StarNum string `json:"starNum"`
Phone string `json:"phone"`
StationPic string `json:"stationPic"`
StationBannerPic string `json:"stationBannerPic"`
Prices string `orm:"type(text)" json:"prices"`
Adverts string `orm:"type(text)" json:"adverts"`
District string `json:"district"`
CityID int `orm:"column(city_id)" json:"cityID"`
StationType int `json:"stationType"`
Distance float64 `json:"distance"`
OilInfo []*OilInfo `orm:"-" json:"oilInfo"`
}
func (v *StationInfo) TableUnique() [][]string {
return [][]string{
[]string{"StationID"},
}
}
func (v *StationInfo) TableIndex() [][]string {
return [][]string{
[]string{"CityID", "ProvinceID"},
}
}
type OilInfo struct {
OilID string `json:"oilId"`
StationPrice string `json:"stationPrice"`
OilType string `json:"oilType"`
DiscountPrice string `json:"discountPrice"`
CountryPrice string `json:"countryPrice"`
OilgunCodes []string `json:"oilgunCodes"`
OilCode string `json:"oilCode"`
}
type AddressDistinguish struct {
ModelIDCUL
Address string `json:"address"`
Info string `orm:"type(text)" json:"info"`
}
func (v *AddressDistinguish) TableUnique() [][]string {
return [][]string{
[]string{"Address"},
}
}