新增京西商城自提单
This commit is contained in:
@@ -1211,7 +1211,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice")
|
dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice", "LastOperator")
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
return retVal, err
|
return retVal, err
|
||||||
}, list)
|
}, list)
|
||||||
|
|||||||
@@ -194,8 +194,8 @@ func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, sta
|
|||||||
return countInfo, err
|
return countInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int) (outJxOrder *JxOrderInfo, err error) {
|
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, "")
|
outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID, "", IsDeliverySelf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -207,7 +207,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
|
|||||||
return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单")
|
return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单")
|
||||||
}
|
}
|
||||||
outJxOrder.OrderID = GenOrderNo(ctx)
|
outJxOrder.OrderID = GenOrderNo(ctx)
|
||||||
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "")
|
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "", IsDeliverySelf)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
order.AddressID = addressID
|
order.AddressID = addressID
|
||||||
order.Status = model.OrderStatusWait4Pay
|
order.Status = model.OrderStatusWait4Pay
|
||||||
@@ -407,7 +407,7 @@ func isTimeInOpTime(openTime1, closeTime1, openTime2, closeTime2 int16, time2Che
|
|||||||
return false
|
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()
|
db := dao.GetDB()
|
||||||
if jxOrder.StoreID == 0 {
|
if jxOrder.StoreID == 0 {
|
||||||
return nil, nil, fmt.Errorf("没有指定门店信息")
|
return nil, nil, fmt.Errorf("没有指定门店信息")
|
||||||
@@ -683,7 +683,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
}
|
}
|
||||||
if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) {
|
if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) {
|
||||||
outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee)
|
outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee)
|
||||||
if outJxOrder.FreightPrice < 0 {
|
if outJxOrder.FreightPrice < 0 || IsDeliverySelf {
|
||||||
outJxOrder.FreightPrice = 0
|
outJxOrder.FreightPrice = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -732,7 +732,7 @@ func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) {
|
|||||||
return err
|
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{
|
order = &model.GoodsOrder{
|
||||||
VendorOrderID: utils.Int64ToStr(jxOrder.OrderID),
|
VendorOrderID: utils.Int64ToStr(jxOrder.OrderID),
|
||||||
VendorID: model.VendorIDJX,
|
VendorID: model.VendorIDJX,
|
||||||
@@ -791,6 +791,10 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd
|
|||||||
order.ConsigneeAddress = deliveryAddress.Address
|
order.ConsigneeAddress = deliveryAddress.Address
|
||||||
order.Flag = 1
|
order.Flag = 1
|
||||||
}
|
}
|
||||||
|
//如果是自提单就设置
|
||||||
|
if IsDeliverySelf {
|
||||||
|
order.DeliveryType = model.OrderDeliveryTypeSelfTake
|
||||||
|
}
|
||||||
return order, err
|
return order, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -880,14 +884,14 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
|
|||||||
outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus))
|
||||||
//以下为仿照CreateOrder,改了一些参数
|
//以下为仿照CreateOrder,改了一些参数
|
||||||
for k, v := range outOrders {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
//分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断
|
//分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断
|
||||||
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1)
|
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1)
|
||||||
checkMatterDeliveryAddress(deliveryAddress)
|
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 {
|
if err = err2; err == nil {
|
||||||
order2.AddressID = order.AddressID
|
order2.AddressID = order.AddressID
|
||||||
order2.Status = model.OrderStatusDelivering
|
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) {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + newOrderIDSuffix
|
outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + newOrderIDSuffix
|
||||||
checkMatterDeliveryAddress(deliveryAddress)
|
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 {
|
if err = err2; err == nil {
|
||||||
order2.AddressID = order.AddressID
|
order2.AddressID = order.AddressID
|
||||||
order2.Status = model.OrderStatusDelivering
|
order2.Status = model.OrderStatusDelivering
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ type JxOrderController struct {
|
|||||||
// @Param addressID formData int64 true "配送地址ID"
|
// @Param addressID formData int64 true "配送地址ID"
|
||||||
// @Param fromStoreID formData int fasle "物料配送门店"
|
// @Param fromStoreID formData int fasle "物料配送门店"
|
||||||
// @Param createType formData int false "创建类型, 0:预创建, 1:创建"
|
// @Param createType formData int false "创建类型, 0:预创建, 1:创建"
|
||||||
|
// @Param isDeliverySelf formData bool false "是否是自提单"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /CreateOrder [post]
|
// @router /CreateOrder [post]
|
||||||
@@ -25,7 +26,7 @@ func (c *JxOrderController) CreateOrder() {
|
|||||||
c.callCreateOrder(func(params *tJxorderCreateOrderParams) (retVal interface{}, errCode string, err error) {
|
c.callCreateOrder(func(params *tJxorderCreateOrderParams) (retVal interface{}, errCode string, err error) {
|
||||||
var jxOrder *localjx.JxOrderInfo
|
var jxOrder *localjx.JxOrderInfo
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params.JxOrder), &jxOrder); err == nil {
|
if err = utils.UnmarshalUseNumber([]byte(params.JxOrder), &jxOrder); err == nil {
|
||||||
retVal, err = localjx.CreateOrder(params.Ctx, jxOrder, int64(params.AddressID), params.CreateType, params.FromStoreID)
|
retVal, err = localjx.CreateOrder(params.Ctx, jxOrder, int64(params.AddressID), params.CreateType, params.FromStoreID, params.IsDeliverySelf)
|
||||||
}
|
}
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user