订单列表
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
package order
|
||||
|
||||
import "fusenapi/constants"
|
||||
import (
|
||||
"fusenapi/constants"
|
||||
"fusenapi/utils/configs"
|
||||
"fusenapi/utils/format"
|
||||
)
|
||||
|
||||
// 获取订单生产状态
|
||||
func GetOrderStatus(orderStatus constants.Order, deliveryMethod constants.DeliveryMethod) constants.Order {
|
||||
@@ -28,3 +32,144 @@ func GetOrderStatus(orderStatus constants.Order, deliveryMethod constants.Delive
|
||||
return constants.STATUS_FONT_CLOSED
|
||||
}
|
||||
}
|
||||
|
||||
type GetOrderStatusAndLogisticsReq struct {
|
||||
OrderStatus constants.Order
|
||||
DeliveryMethod constants.DeliveryMethod
|
||||
IsPayCompleted int64
|
||||
SureTime int64
|
||||
ProductTime int64
|
||||
ProductEndtime int64
|
||||
DeliverTime int64
|
||||
UpsDeliverTime int64
|
||||
UpsTime int64
|
||||
ArrivalTime int64
|
||||
RecevieTime int64
|
||||
|
||||
OrderCtime int64
|
||||
WebSetTimeInfo configs.WebSetTimeInfo
|
||||
}
|
||||
|
||||
type GetOrderStatusAndLogisticsRes struct {
|
||||
OrderStatus constants.Order
|
||||
LogisticsStatus constants.Order
|
||||
|
||||
Times []GetOrderStatusAndLogisticsResTimes
|
||||
}
|
||||
|
||||
type GetOrderStatusAndLogisticsResTimes struct {
|
||||
Key int `json:"key"`
|
||||
Time string `json:"time"`
|
||||
}
|
||||
|
||||
// 获取订单物流状态
|
||||
func GetOrderStatusAndLogistics(req GetOrderStatusAndLogisticsReq) (res GetOrderStatusAndLogisticsRes) {
|
||||
var status constants.Order
|
||||
logisticsStatus := constants.LOGISTICS_STATUS_DRAW
|
||||
|
||||
times := make([]GetOrderStatusAndLogisticsResTimes, 5)
|
||||
m := 1
|
||||
for i := 0; i < 5; i++ {
|
||||
m++
|
||||
times[i] = GetOrderStatusAndLogisticsResTimes{
|
||||
Key: m,
|
||||
Time: "",
|
||||
}
|
||||
}
|
||||
|
||||
switch req.OrderStatus {
|
||||
//已支付
|
||||
case constants.STATUS_NEW_PART_PAY, constants.STATUS_NEW_PAY_COMPLETED, constants.STATUS_NEW_SURE:
|
||||
status = constants.STATUS_FONT_PAID
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_DRAW
|
||||
//生产中
|
||||
case constants.STATUS_NEW_PRODUTING, constants.STATUS_NEW_PRODUT_COMPLETED:
|
||||
//直邮单有完成的物流状态
|
||||
if req.DeliveryMethod == constants.DELIVERY_METHOD_ADDRESS {
|
||||
if req.OrderStatus == constants.STATUS_NEW_PRODUTING {
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_DRAW
|
||||
} else {
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_SHIPPING
|
||||
}
|
||||
}
|
||||
status = constants.STATUS_FONT_PRODUCTION
|
||||
//运输中-直邮单
|
||||
case constants.STATUS_NEW_DELIVER, constants.STATUS_NEW_UPS:
|
||||
if req.DeliveryMethod == constants.DELIVERY_METHOD_ADDRESS {
|
||||
if req.OrderStatus == constants.STATUS_NEW_DELIVER {
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_UPS
|
||||
} else {
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_UPS_ARRIVAL
|
||||
}
|
||||
}
|
||||
status = constants.STATUS_FONT_SHIPPED
|
||||
//到达-云仓
|
||||
case constants.STATUS_NEW_ARRIVAL:
|
||||
if req.DeliveryMethod == constants.DELIVERY_METHOD_CLOUD {
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_SHIPPING
|
||||
}
|
||||
status = constants.STATUS_FONT_INVENTORY
|
||||
//订单完成
|
||||
case constants.STATUS_NEW_COMPLETED:
|
||||
if req.DeliveryMethod == constants.DELIVERY_METHOD_CLOUD {
|
||||
status = constants.STATUS_FONT_COMPLETED_CLOUD
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_UPS
|
||||
} else {
|
||||
status = constants.STATUS_FONT_COMPLETED
|
||||
logisticsStatus = constants.LOGISTICS_STATUS_ARRIVAL
|
||||
}
|
||||
|
||||
//订单关闭
|
||||
default:
|
||||
status = constants.STATUS_FONT_CLOSED
|
||||
}
|
||||
res.OrderStatus = status
|
||||
res.LogisticsStatus = logisticsStatus
|
||||
|
||||
var daySecond int64 = 3600 * 24
|
||||
|
||||
if req.DeliveryMethod == constants.DELIVERY_METHOD_ADDRESS {
|
||||
switch logisticsStatus {
|
||||
case constants.LOGISTICS_STATUS_DRAW:
|
||||
times[1].Time = format.TimeIntToFormat(req.OrderCtime + req.WebSetTimeInfo.ProductDay*daySecond)
|
||||
case constants.LOGISTICS_STATUS_SHIPPING:
|
||||
if req.ProductEndtime > 0 {
|
||||
times[2].Time = format.TimeIntToFormat(req.ProductEndtime + req.WebSetTimeInfo.FactoryDeliverDay*daySecond)
|
||||
} else {
|
||||
times[2].Time = format.TimeIntToFormat(req.OrderCtime + req.WebSetTimeInfo.FactoryDeliverDay*daySecond)
|
||||
}
|
||||
case constants.LOGISTICS_STATUS_UPS:
|
||||
if req.DeliverTime > 0 {
|
||||
times[2].Time = format.TimeIntToFormat(req.DeliverTime)
|
||||
times[3].Time = format.TimeIntToFormat(req.DeliverTime + req.WebSetTimeInfo.DeliverUpsDay*daySecond)
|
||||
}
|
||||
case constants.LOGISTICS_STATUS_UPS_ARRIVAL:
|
||||
if req.DeliverTime > 0 {
|
||||
times[2].Time = format.TimeIntToFormat(req.DeliverTime)
|
||||
}
|
||||
if req.UpsDeliverTime > 0 {
|
||||
times[3].Time = format.TimeIntToFormat(req.UpsDeliverTime)
|
||||
times[4].Time = format.TimeIntToFormat(req.UpsDeliverTime + req.WebSetTimeInfo.UpsTransDay*daySecond)
|
||||
}
|
||||
case constants.LOGISTICS_STATUS_ARRIVAL:
|
||||
if req.DeliverTime > 0 {
|
||||
times[2].Time = format.TimeIntToFormat(req.DeliverTime)
|
||||
}
|
||||
if req.UpsDeliverTime > 0 {
|
||||
times[3].Time = format.TimeIntToFormat(req.UpsDeliverTime)
|
||||
}
|
||||
if req.UpsTime > 0 {
|
||||
times[4].Time = format.TimeIntToFormat(req.UpsTime)
|
||||
}
|
||||
}
|
||||
res.Times = times
|
||||
} else {
|
||||
timesData := times[0:3]
|
||||
if logisticsStatus == constants.LOGISTICS_STATUS_DRAW {
|
||||
timesData[1].Time = format.TimeIntToFormat(req.OrderCtime + req.WebSetTimeInfo.ProductDay*daySecond)
|
||||
}
|
||||
res.Times = timesData
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user