Accept Merge Request #133: (yonghui -> mark)
Merge Request: 推荐商品查询修改 Created By: @苏尹岚 Accepted By: @苏尹岚 URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/133
This commit is contained in:
@@ -2946,7 +2946,6 @@ func GetCellForFocusStoreSkus(db *dao.DaoDB, rowNum int, row []string, sheetPara
|
|||||||
func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
var (
|
var (
|
||||||
skuNameMap = make(map[int][]*StoreSkuBindSkuInfo)
|
skuNameMap = make(map[int][]*StoreSkuBindSkuInfo)
|
||||||
storeIDs []int
|
|
||||||
result1 []interface{}
|
result1 []interface{}
|
||||||
)
|
)
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
@@ -2955,9 +2954,6 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
|
|||||||
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
for _, v := range storeList {
|
|
||||||
storeIDs = append(storeIDs, v.ID)
|
|
||||||
}
|
|
||||||
for _, v := range skuList {
|
for _, v := range skuList {
|
||||||
skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{
|
skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{
|
||||||
SkuID: v.ID,
|
SkuID: v.ID,
|
||||||
@@ -3019,67 +3015,94 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
|
|||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context) (err error) {
|
func AutoFocusStoreSkusWithoutFocusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
var skuBindInfoList []*StoreSkuBindInfo
|
var (
|
||||||
|
skuBindInfoList []*StoreSkuBindInfo
|
||||||
|
result1 []interface{}
|
||||||
|
)
|
||||||
storeList, err := dao.GetStoreList(db, nil, nil, "")
|
storeList, err := dao.GetStoreList(db, nil, nil, "")
|
||||||
for _, v := range storeList {
|
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
var (
|
switch step {
|
||||||
skuName []*model.SkuName
|
case 0:
|
||||||
skuNameMap = make(map[int]int)
|
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
)
|
v := batchItemList[0].(*model.Store)
|
||||||
sql := `
|
var (
|
||||||
SELECT DISTINCT a.name_id id
|
skuName []*model.SkuName
|
||||||
FROM sku a
|
skuNameMap = make(map[int]int)
|
||||||
LEFT JOIN (SELECT DISTINCT b.name_id
|
)
|
||||||
FROM store_sku_bind a
|
sql := `
|
||||||
JOIN sku b ON a.sku_id = b.id
|
SELECT DISTINCT a.name_id id
|
||||||
WHERE a.deleted_at = ?
|
FROM sku a
|
||||||
AND store_id = ?)b ON a.name_id = b.name_id
|
LEFT JOIN (SELECT DISTINCT b.name_id
|
||||||
WHERE a.status = ?
|
FROM store_sku_bind a
|
||||||
AND a.deleted_at = ?
|
JOIN sku b ON a.sku_id = b.id
|
||||||
AND b.name_id IS NULL
|
WHERE a.deleted_at = ?
|
||||||
`
|
AND store_id = ?)b ON a.name_id = b.name_id
|
||||||
sqlParams := []interface{}{
|
WHERE a.status = ?
|
||||||
utils.DefaultTimeValue,
|
AND a.deleted_at = ?
|
||||||
v.ID,
|
AND b.name_id IS NULL
|
||||||
model.SkuStatusNormal,
|
`
|
||||||
utils.DefaultTimeValue,
|
sqlParams := []interface{}{
|
||||||
}
|
utils.DefaultTimeValue,
|
||||||
err = dao.GetRows(db, &skuName, sql, sqlParams...)
|
v.ID,
|
||||||
for _, v := range skuName {
|
model.SkuStatusNormal,
|
||||||
skuNameMap[v.ID] = v.ID
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, v.ID)
|
err = dao.GetRows(db, &skuName, sql, sqlParams...)
|
||||||
if err2 != nil {
|
for _, v := range skuName {
|
||||||
return err2
|
skuNameMap[v.ID] = v.ID
|
||||||
}
|
}
|
||||||
var payPercentage int
|
skuNameAndPlaceList, err2 := GetTopSkusByCityCode(ctx, v.CityCode, v.ID)
|
||||||
if v.PayPercentage < 50 {
|
if err2 != nil {
|
||||||
payPercentage = 70
|
return retVal, err2
|
||||||
} else {
|
}
|
||||||
payPercentage = v.PayPercentage
|
var payPercentage int
|
||||||
}
|
if v.PayPercentage < 50 {
|
||||||
if len(skuNameAndPlaceList) > 0 {
|
payPercentage = 70
|
||||||
for _, vv := range skuNameAndPlaceList {
|
} else {
|
||||||
if skuNameMap[vv.ID] != 0 {
|
payPercentage = v.PayPercentage
|
||||||
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{vv.CityCode}, nil, []int{vv.ID}, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
}
|
||||||
if err == nil && len(priceReferList) > 0 {
|
if len(skuNameAndPlaceList) > 0 {
|
||||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
for _, vv := range skuNameAndPlaceList {
|
||||||
StoreID: v.ID,
|
if skuNameMap[vv.ID] != 0 {
|
||||||
NameID: vv.ID,
|
priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, []int{vv.CityCode}, nil, []int{vv.ID}, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
||||||
UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100,
|
if err == nil && len(priceReferList) > 0 {
|
||||||
IsFocus: 1,
|
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||||
IsSale: 0,
|
StoreID: v.ID,
|
||||||
|
NameID: vv.ID,
|
||||||
|
UnitPrice: priceReferList[0].MidUnitPrice * payPercentage / 100,
|
||||||
|
IsFocus: 1,
|
||||||
|
IsSale: 0,
|
||||||
|
}
|
||||||
|
skuBindInfoList = append(skuBindInfoList, storeSkuBindInfo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
skuBindInfoList = append(skuBindInfoList, storeSkuBindInfo)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return retVal, err
|
||||||
}
|
}
|
||||||
|
taskParallel := tasksch.NewParallelTask("自动关注畅销品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
|
||||||
|
tasksch.HandleTask(taskParallel, task, true).Run()
|
||||||
|
result1, _ = taskParallel.GetResult(0)
|
||||||
|
case 2:
|
||||||
|
var skuBindInfos []*StoreSkuBindInfo
|
||||||
|
for _, v := range result1 {
|
||||||
|
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
|
||||||
|
}
|
||||||
|
UpdateStoresSkusByBind(ctx, skuBindInfos, isAsync, isContinueWhenError)
|
||||||
}
|
}
|
||||||
|
return result, err
|
||||||
}
|
}
|
||||||
UpdateStoresSkusByBind(ctx, skuBindInfoList, true, true)
|
taskSeq := tasksch.NewSeqTask2("自动关注畅销品", ctx, isContinueWhenError, taskSeqFunc, 3)
|
||||||
return err
|
tasksch.HandleTask(taskSeq, nil, true).Run()
|
||||||
|
if !isAsync {
|
||||||
|
_, err = taskSeq.GetResult(0)
|
||||||
|
hint = "1"
|
||||||
|
} else {
|
||||||
|
hint = taskSeq.GetID()
|
||||||
|
}
|
||||||
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync bool) (err error) {
|
func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync bool) (err error) {
|
||||||
|
|||||||
@@ -1176,7 +1176,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk
|
|||||||
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at,
|
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at,
|
||||||
t4.ebai_id, t4.mtwm_id,
|
t4.ebai_id, t4.mtwm_id,
|
||||||
t4.ebai_sync_status, t4.mtwm_sync_status,
|
t4.ebai_sync_status, t4.mtwm_sync_status,
|
||||||
t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price
|
t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.jx_price, a.spec_quality sku_spec_quality, a.spec_unit sku_spec_unit
|
||||||
FROM sku a
|
FROM sku a
|
||||||
JOIN sku_name t1 ON a.name_id = t1.id AND t1.deleted_at = ?
|
JOIN sku_name t1 ON a.name_id = t1.id AND t1.deleted_at = ?
|
||||||
JOIN store_sku_bind t4 ON t4.sku_id = a.id AND t4.deleted_at = ?
|
JOIN store_sku_bind t4 ON t4.sku_id = a.id AND t4.deleted_at = ?
|
||||||
|
|||||||
Reference in New Issue
Block a user