合并请求

This commit is contained in:
qidongsheng
2020-07-07 15:42:50 +08:00
8 changed files with 148 additions and 55 deletions

View File

@@ -1096,6 +1096,11 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
return nil, fmt.Errorf("商品:%s价格:%s太夸张", allBinds[0].Name, jxutils.IntPrice2StandardCurrencyString(int64(skuBindInfo.UnitPrice)))
}
unitPrice = skuBindInfo.UnitPrice
if isRefreshHigh {
if allBinds[0].UnitPrice <= unitPrice {
continue
}
}
} else {
unitPrice = allBinds[0].UnitPrice
if unitPrice == 0 {
@@ -1213,21 +1218,11 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask)
updateFieldMap["Price"] = 1
}
if isRefreshHigh {
if beforeMsg.UnitPrice > skuBindInfo.UnitPrice {
skuBind.UnitPrice = unitPrice
skuBind.Price = price
skuBind.JxPrice = jxPrice
updateFieldMap["UnitPrice"] = 1
updateFieldMap["JxPrice"] = 1
}
} else {
skuBind.UnitPrice = unitPrice
skuBind.Price = price
skuBind.JxPrice = jxPrice
updateFieldMap["UnitPrice"] = 1
updateFieldMap["JxPrice"] = 1
}
skuBind.UnitPrice = unitPrice
skuBind.Price = price
skuBind.JxPrice = jxPrice
updateFieldMap["UnitPrice"] = 1
updateFieldMap["JxPrice"] = 1
}
}
if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 {
@@ -1739,6 +1734,41 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
}
globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num3:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2)
dao.Commit(db)
//同一商品若源门店的规格少于要复制到的门店则在复制的门店里的其他规格的unitprice不会变
//导致复制的门店的商品unitprice不尽相同这里先处理一下
type tStore struct {
NameID int `orm:"column(name_id)"`
StoreID int `orm:"column(store_id)"`
}
var resultList []*tStore
sql3 := `
SELECT a.name_id, a.store_id FROM (
SELECT DISTINCT a.unit_price, b.name_id, a.store_id FROM store_sku_bind a, sku b, store c
WHERE a.sku_id = b.id
AND c.id = a.store_id
AND c.deleted_at = ?
AND a.store_id = ?
AND a.deleted_at = ?)a
GROUP BY 1, 2
HAVING COUNT(a.unit_price) > 1
`
sqlParams3 := []interface{}{utils.DefaultTimeValue, toStoreID, utils.DefaultTimeValue}
err = dao.GetRows(db, &resultList, sql3, sqlParams3)
if len(resultList) > 0 {
var skuBindInfos []*StoreSkuBindInfo
for _, v := range resultList {
storeSkus, _ := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, v.NameID)
unitPirce := storeSkus[0].UnitPrice
skuBindInfo := &StoreSkuBindInfo{
StoreID: v.StoreID,
NameID: v.NameID,
UnitPrice: int(unitPirce),
}
skuBindInfos = append(skuBindInfos, skuBindInfo)
}
_, err = updateStoresSkusWithoutSync(ctx, db, []int{toStoreID}, skuBindInfos, false, false)
}
}
if globals.IsAddEvent {
mapAfter := make(map[string]interface{})
@@ -4624,10 +4654,8 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku
if len(storeAudits) > 1 {
return retVal, fmt.Errorf("查询到该门店该商品的待审核信息大于1条storeID: %v, nameID: %v", storeAudit.StoreID, storeAudit.NameID)
}
// flag := false
//审核通过
if status == model.StoreAuditStatusCreated {
// flag = true
storeAudits[0].UserID = ctx.GetUserID()
storeAudits[0].Status = model.StoreAuditStatusCreated
storeAudits[0].Remark = storeAudit.Remark
@@ -4661,7 +4689,6 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku
if num == 0 || !isAsync || hint == "" {
hint = utils.Int64ToStr(num)
}
// _, err = UpdateStoresSkus(ctx, 0, []int{storeID}, skuBindInfos, false, isAsync, isContinueWhenError)
} else if status == model.StoreAuditStatusRejected {
storeAudits[0].UserID = ctx.GetUserID()
storeAudits[0].Status = model.StoreAuditStatusRejected

View File

@@ -1135,13 +1135,13 @@ func syncJdsStoreStock(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
storeSku := batchItemList[0].(*model.StoreSkuBind)
stock := 0
if storeSku.Status == model.StoreSkuBindStatusNormal {
stock = 9999
}
storeSku2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{storeSku.SkuID})
if storeSku.JdsID != 0 {
if len(storeSku2) > 0 {
if storeSku.Status != storeSku2[0].Status && storeMap.VendorStoreID != "" {
if storeSku2[0].Status == model.StoreSkuBindStatusNormal {
stock = 9999
}
if storeMap.VendorStoreID != "" {
err = api.JdShopAPI.UpdateSkuSiteStock(storeSku.JdsID, stock, utils.Str2Int(storeMap.VendorStoreID))
}
} else {
@@ -1253,6 +1253,11 @@ func SyncSkuExperfixAndWatermark(ctx *jxcontext.Context) (err error) {
task := tasksch.NewParallelTask("SyncSkuExperfixAndWatermark", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
skuExinfo := batchItemList[0].(*model.SkuExinfoMap)
if time.Now().Sub(skuExinfo.EndAt) > 0 {
skuExinfo.DeletedAt = time.Now()
dao.UpdateEntity(db, skuExinfo, "DeletedAt")
return retVal, err
}
skus, err := dao.GetSkus(db, nil, []int{skuExinfo.NameID}, nil, nil, nil)
var skuIDs []int
for _, v := range skus {
@@ -1262,12 +1267,10 @@ func SyncSkuExperfixAndWatermark(ctx *jxcontext.Context) (err error) {
for _, v := range skuIDs {
OnUpdateThing(ctx, db, nil, int64(v), model.ThingTypeSku)
}
// CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, true, true, ctx.GetUserName())
} else {
if len(skuIDs) > 0 {
SetStoreSkuSyncStatus2(db, nil, []int{skuExinfo.VendorID}, skuIDs, model.SyncFlagModifiedMask)
}
// CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, []int{skuExinfo.VendorID}, nil, false, skuIDs, nil, model.SyncFlagModifiedMask, true, true)
}
return retVal, err
}, skuExinfos)