+ DeleteSkusFromAct
This commit is contained in:
@@ -803,3 +803,57 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
|
||||
}
|
||||
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
|
||||
})
|
||||
}
|
||||
|
||||
// @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