diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 5fdfecf4a..3befca3ce 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -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) return retVal, err }, list) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index fd38be4a0..f942aef73 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -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 diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 62b9fe70b..2b5c561f0 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -18,6 +18,7 @@ type JxOrderController struct { // @Param addressID formData int64 true "配送地址ID" // @Param fromStoreID formData int fasle "物料配送门店" // @Param createType formData int false "创建类型, 0:预创建, 1:创建" +// @Param isDeliverySelf formData bool false "是否是自提单" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /CreateOrder [post] @@ -25,7 +26,7 @@ func (c *JxOrderController) CreateOrder() { c.callCreateOrder(func(params *tJxorderCreateOrderParams) (retVal interface{}, errCode string, err error) { var jxOrder *localjx.JxOrderInfo 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 })