新增京西商城自提单
This commit is contained in:
@@ -194,8 +194,8 @@ func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, sta
|
||||
return countInfo, err
|
||||
}
|
||||
|
||||
func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int) (outJxOrder *JxOrderInfo, err error) {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID, "")
|
||||
func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int, IsDeliverySelf bool) (outJxOrder *JxOrderInfo, err error) {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID, "", IsDeliverySelf)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -207,7 +207,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
|
||||
return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单")
|
||||
}
|
||||
outJxOrder.OrderID = GenOrderNo(ctx)
|
||||
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "")
|
||||
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "", IsDeliverySelf)
|
||||
if err = err2; err == nil {
|
||||
order.AddressID = addressID
|
||||
order.Status = model.OrderStatusWait4Pay
|
||||
@@ -407,7 +407,7 @@ func isTimeInOpTime(openTime1, closeTime1, openTime2, closeTime2 int16, time2Che
|
||||
return false
|
||||
}
|
||||
|
||||
func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int, userID string) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) {
|
||||
func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int, userID string, IsDeliverySelf bool) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) {
|
||||
db := dao.GetDB()
|
||||
if jxOrder.StoreID == 0 {
|
||||
return nil, nil, fmt.Errorf("没有指定门店信息")
|
||||
@@ -683,7 +683,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
}
|
||||
if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) {
|
||||
outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee)
|
||||
if outJxOrder.FreightPrice < 0 {
|
||||
if outJxOrder.FreightPrice < 0 || IsDeliverySelf {
|
||||
outJxOrder.FreightPrice = 0
|
||||
}
|
||||
}
|
||||
@@ -732,7 +732,7 @@ func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, userID string) (order *model.GoodsOrder, err error) {
|
||||
func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, userID string, IsDeliverySelf bool) (order *model.GoodsOrder, err error) {
|
||||
order = &model.GoodsOrder{
|
||||
VendorOrderID: utils.Int64ToStr(jxOrder.OrderID),
|
||||
VendorID: model.VendorIDJX,
|
||||
@@ -791,6 +791,10 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd
|
||||
order.ConsigneeAddress = deliveryAddress.Address
|
||||
order.Flag = 1
|
||||
}
|
||||
//如果是自提单就设置
|
||||
if IsDeliverySelf {
|
||||
order.DeliveryType = model.OrderDeliveryTypeSelfTake
|
||||
}
|
||||
return order, err
|
||||
}
|
||||
|
||||
@@ -880,14 +884,14 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
||||
outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
||||
//以下为仿照CreateOrder,改了一些参数
|
||||
for k, v := range outOrders {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID)
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID, false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断
|
||||
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1)
|
||||
checkMatterDeliveryAddress(deliveryAddress)
|
||||
order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID)
|
||||
order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false)
|
||||
if err = err2; err == nil {
|
||||
order2.AddressID = order.AddressID
|
||||
order2.Status = model.OrderStatusDelivering
|
||||
@@ -1635,13 +1639,13 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er
|
||||
}
|
||||
|
||||
func createMatterOrder(jxOrder *JxOrderInfo, order *model.GoodsOrder, newOrderIDSuffix int64) (order2 *model.GoodsOrder, err error) {
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, jxOrder, order.AddressID, order.FromStoreID, order.UserID)
|
||||
outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, jxOrder, order.AddressID, order.FromStoreID, order.UserID, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + newOrderIDSuffix
|
||||
checkMatterDeliveryAddress(deliveryAddress)
|
||||
order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID)
|
||||
order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID, false)
|
||||
if err = err2; err == nil {
|
||||
order2.AddressID = order.AddressID
|
||||
order2.Status = model.OrderStatusDelivering
|
||||
|
||||
Reference in New Issue
Block a user