+ DeleteSkusFromAct
This commit is contained in:
@@ -803,3 +803,57 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
|
|||||||
}
|
}
|
||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DeleteSkusFromAct(ctx *jxcontext.Context, vendorID int, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
actMap := make(map[int]*model.Act)
|
||||||
|
for _, skuID := range skuIDs {
|
||||||
|
pagedInfo, err2 := dao.QueryActs(db, 0, 0, -1, "", vendorID, []int{model.ActStatusCreated}, nil, nil, 0, skuID, 0, time.Now(), time.Now(), utils.DefaultTimeValue, utils.DefaultTimeValue)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
for _, v := range pagedInfo.Data {
|
||||||
|
actMap[v.Act.ID] = &v.Act
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(actMap) == 0 {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
skuIDMap := jxutils.IntList2Map(skuIDs)
|
||||||
|
var actIDList []int
|
||||||
|
for k := range actMap {
|
||||||
|
actIDList = append(actIDList, k)
|
||||||
|
}
|
||||||
|
task := tasksch.NewParallelTask("将SKU从所有活动中删除", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
actID := batchItemList[0].(int)
|
||||||
|
actStoreSkuList, err := dao.GetActStoreSkuVendorList(db, actID, []int{-1}, nil, skuIDs)
|
||||||
|
if err == nil {
|
||||||
|
// db := dao.GetDB()
|
||||||
|
var deleteList []*ActStoreSkuParam
|
||||||
|
for _, v := range actStoreSkuList {
|
||||||
|
if skuIDMap[v.SkuID] == 1 {
|
||||||
|
deleteList = append(deleteList, &ActStoreSkuParam{
|
||||||
|
ActStoreSku: model.ActStoreSku{
|
||||||
|
StoreID: v.StoreID,
|
||||||
|
SkuID: v.SkuID,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(deleteList) > 0 {
|
||||||
|
if err = DeleteActStoreSkuBind(ctx, db, actID, deleteList); err == nil {
|
||||||
|
_, err = SyncAct(ctx, task, actID, nil, nil, skuIDs, false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal, err
|
||||||
|
}, actIDList)
|
||||||
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
|
if isAsync {
|
||||||
|
hint = task.GetID()
|
||||||
|
} else {
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
}
|
||||||
|
return hint, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -272,3 +272,17 @@ func (c *ActController) RefreshPageActs() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 将SKU从所有活动中删除
|
||||||
|
// @Description 将SKU从所有活动中删除
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param skuIDs formData string true "skuID列表"
|
||||||
|
// @Param vendorID formData int true "厂商ID"
|
||||||
|
// @Param isAsync formData bool false "是否异步"
|
||||||
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /DeleteSkusFromAct [delete]
|
||||||
|
func (c *ActController) DeleteSkusFromAct() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user