Merge remote-tracking branch 'origin/jdshop' into jxact

This commit is contained in:
苏尹岚
2020-08-18 15:10:21 +08:00
4 changed files with 44 additions and 25 deletions

View File

@@ -736,7 +736,10 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
// if order.VendorID == model.VendorIDJX {
// excludeVendorIDs = append(excludeVendorIDs, model.VendorIDMTPS)
// }
//TODO 2020-08-18 饿百美团订单暂时不自动发送三方
if order.VendorID == model.VendorIDEBAI || order.VendorID == model.VendorIDMTWM {
excludeVendorIDs = append(excludeVendorIDs, model.VendorIDMTPS, model.VendorIDDada)
}
if savedOrderInfo != nil {
//TODO 2020-07-21 发单时间要在门店的营业时间内
if savedOrderInfo.storeDetail != nil {

View File

@@ -1077,7 +1077,7 @@ func DeleteStoresFromAct(ctx *jxcontext.Context, vendorID int, actTypes, storeID
task := tasksch.NewParallelTask("将门店从所有活动中删除", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
storeID := batchItemList[0].(int)
acts, _ := dao.QueryActs(db, 0, 0, 50, 0, "", vendorID, []int{1}, actTypes, nil, storeID, nil, 0, utils.ZeroTimeValue, utils.ZeroTimeValue, time.Now().AddDate(0, -3, 0), time.Now())
acts, _ := dao.QueryActs(db, 0, 0, 50, -1, "", vendorID, []int{1}, actTypes, nil, storeID, nil, 0, utils.ZeroTimeValue, utils.ZeroTimeValue, time.Now().AddDate(0, -3, 0), time.Now())
for _, v := range acts.Data {
var actStoreSkuParam []*ActStoreSkuParam
_, actStoreSkus, _ := dao.GetActStoreSkuVendorList(db, v.ID, []int{vendorID}, nil, nil, "", 0, 99999)

View File

@@ -1392,6 +1392,8 @@ func GetSupplySupportStoreSkus(db *DaoDB, fromDate, toDate time.Time, fromStoreI
JOIN store_sku_bind d ON d.store_id = ? AND d.sku_id = c.sku_id AND d.deleted_at = ?
JOIN sku e ON e.id = d.sku_id
JOIN sku_name f ON f.id = e.name_id
WHERE status <> ?
AND stock <> ?
ORDER BY c.count desc
`
sqlParams := []interface{}{
@@ -1401,6 +1403,8 @@ func GetSupplySupportStoreSkus(db *DaoDB, fromDate, toDate time.Time, fromStoreI
6039481, //葱姜蒜
fromStoreID,
storeID, utils.DefaultTimeValue,
model.StoreSkuBindStatusDontSale,
0,
}
if err = GetRows(db, &getSupplySupportStoreSkusResult, sql, sqlParams); err == nil {
return getSupplySupportStoreSkusResult, err

View File

@@ -585,11 +585,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
}
skuMap := make(map[int]*model.SkuAndName)
for _, v := range skuList {
if jxOrder.OrderType == model.OrderTypeMatter {
if fromStoreID != 0 {
if v.EclpID == "" {
return nil, nil, fmt.Errorf("此商品物料编码为空请联系管理员skuID:[%v]", v.ID)
}
}
// if jxOrder.OrderType == model.OrderTypeMatter {
// }
skuMap[v.ID] = v
}
var (
@@ -597,10 +600,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
sum int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格
flag = false //新店袋子拆分当个参数
)
if jxOrder.OrderType == model.OrderTypeMatter && fromStoreID != -1 {
if fromStoreID != 0 && fromStoreID != -1 {
result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID)
sum = result.Count
}
// if jxOrder.OrderType == model.OrderTypeMatter && fromStoreID != -1 {
// result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID)
// sum = result.Count
// }
if jxOrder.Weight == 0 {
for _, v := range jxOrder.Skus {
v.Weight = storeSkuMap[v.SkuID].Weight
@@ -609,13 +616,15 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
}
for _, v := range skus {
if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil {
if jxOrder.OrderType == model.OrderTypeMatter {
if fromStoreID != 0 {
// if jxOrder.OrderType == model.OrderTypeMatter {
result2, _ := api.JdEclpAPI.QueryStock(storeSkuBind.EclpID)
if len(result2) > 0 {
if result2[0].UsableNum < v.Count {
return nil, nil, fmt.Errorf("此商品库存不足无法购买请联系管理员skuID:[%v]", v.SkuID)
}
}
// }
}
if sku := skuMap[v.SkuID]; sku != nil {
jxSku := &JxSkuInfo{
@@ -647,7 +656,8 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
}
}
if jxSku != nil {
if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) {
if fromStoreID == 0 || fromStoreID == -1 {
// if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) {
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
} else { //以下else为物料订单袋子金额和数量处理
@@ -764,19 +774,19 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID)
}
outJxOrder.FromStoreID = fromStoreID
if jxOrder.OrderType == model.OrderTypeMatter {
//TODO 修改配送费规则2020-04-28
//3kg 5元每多1kg加2元
//配送费要按分包规则计算
if outJxOrder.Weight <= 3000 {
outJxOrder.FreightPrice = 500
} else if outJxOrder.Weight > 3000 && outJxOrder.Weight <= splitMatterOrderMinWeight {
outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-3000)/1000)*200)
} else {
_, freightPrice, _ := tryToSplitMatterOrder(jxOrder)
outJxOrder.FreightPrice = freightPrice
}
// if jxOrder.OrderType == model.OrderTypeMatter {
//TODO 修改配送费规则2020-04-28
//3kg 5元每多1kg加2元
//配送费要按分包规则计算
if outJxOrder.Weight <= 3000 {
outJxOrder.FreightPrice = 500
} else if outJxOrder.Weight > 3000 && outJxOrder.Weight <= splitMatterOrderMinWeight {
outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-3000)/1000)*200)
} else {
_, freightPrice, _ := tryToSplitMatterOrder(jxOrder)
outJxOrder.FreightPrice = freightPrice
}
// }
//要求配送人姓名填门店名
if fromStoreID != -1 {
deliveryAddress.ConsigneeName = storeDetail2.Name
@@ -895,10 +905,10 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd
order.FromStoreID = jxOrder.FromStoreID
order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled
order.Flag = 1
if jxOrder.OrderType == model.OrderTypeMatter {
order.WaybillVendorID = model.VendorIDJDWL
order.ConsigneeAddress = deliveryAddress.Address
}
// if jxOrder.OrderType == model.OrderTypeMatter {
order.WaybillVendorID = model.VendorIDJDWL
order.ConsigneeAddress = deliveryAddress.Address
// }
}
//如果是自提单就设置
if IsDeliverySelf {
@@ -932,8 +942,9 @@ func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string)
}
func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) {
err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "")
if order.OrderType == model.OrderTypeMatter {
if order.FromStoreID != 0 {
err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "")
// if order.OrderType == model.OrderTypeMatter {
var (
db = dao.GetDB()
)
@@ -1116,7 +1127,8 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string)
}
func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder, reason string) (err error) {
if order.OrderType == model.OrderTypeMatter {
if order.FromStoreID != 0 {
// if order.OrderType == model.OrderTypeMatter {
if order.EclpOutID != "" {
//表示是京西的物料订单的子订单(拆分后的订单)
if len(order.VendorOrderID) == 16 && order.VendorID == model.VendorIDJX {