- UpdateActStoreSkuBind
This commit is contained in:
@@ -120,7 +120,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
|
||||
return jxutils.IntMap2List(wholeValidVendorMap), actStoreSkuList, actStoreSkuMapList, err
|
||||
}
|
||||
|
||||
func addActStoreBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList []*model.ActStoreSku, actStoreSkuMapList []*model.ActStoreSkuMap) (err error) {
|
||||
func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList []*model.ActStoreSku, actStoreSkuMapList []*model.ActStoreSkuMap) (err error) {
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
@@ -156,8 +156,7 @@ func addActStoreBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList []*m
|
||||
return err
|
||||
}
|
||||
|
||||
func AddActStoreBind(ctx *jxcontext.Context, actID int, actStoreSku []*ActStoreSkuParam) (err error) {
|
||||
db := dao.GetDB()
|
||||
func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actStoreSku []*ActStoreSkuParam) (err error) {
|
||||
actMap, err := dao.GetActVendorInfo(db, actID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -174,6 +173,10 @@ func AddActStoreBind(ctx *jxcontext.Context, actID int, actStoreSku []*ActStoreS
|
||||
return err
|
||||
}
|
||||
}
|
||||
if act.Status != model.ActStatusCreated {
|
||||
return fmt.Errorf("当前活动状态:%s不能进行此操作", model.ActStatusName[act.Status])
|
||||
}
|
||||
|
||||
_, actStoreSkuList, actStoreSkuMapList, err := ActStoreSkuParam2Model(ctx, db, act, vendorIDs, actStoreSku)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -187,7 +190,7 @@ func AddActStoreBind(ctx *jxcontext.Context, actID int, actStoreSku []*ActStoreS
|
||||
}
|
||||
}
|
||||
}()
|
||||
if err = addActStoreBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
|
||||
if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, act := range actMap {
|
||||
@@ -247,7 +250,7 @@ func CreateAct(ctx *jxcontext.Context, act *model.Act, vendorIDs []int, actRules
|
||||
}
|
||||
}
|
||||
|
||||
if err = addActStoreBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
|
||||
if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
|
||||
dao.Rollback(db)
|
||||
return "", err
|
||||
}
|
||||
@@ -304,25 +307,21 @@ func GetActStoreSkuInfo(ctx *jxcontext.Context, actID int, vendorIDs []int) (act
|
||||
|
||||
func CancelAct(ctx *jxcontext.Context, actID int) (err error) {
|
||||
db := dao.GetDB()
|
||||
if err = deleteActStoreBind(ctx, db, actID, nil); err != nil {
|
||||
if err = DeleteActStoreSkuBind(ctx, db, actID, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = SyncAct(ctx, nil, actID, nil, nil, nil, false)
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteActStoreBind(ctx *jxcontext.Context, actID int, actStoreSku []*ActStoreSkuParam) (err error) {
|
||||
return deleteActStoreBind(ctx, dao.GetDB(), actID, actStoreSku)
|
||||
}
|
||||
|
||||
// actStoreSkuParam为空,不会删除act_store_sku,但会删除act_store_sku_map
|
||||
func deleteActStoreBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actStoreSkuParam []*ActStoreSkuParam) (err error) {
|
||||
func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actStoreSkuParam []*ActStoreSkuParam) (err error) {
|
||||
actMap, err := dao.GetActVendorInfo(db, actID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(actMap) == 0 {
|
||||
return fmt.Errorf("找不到活动:%d,或已被全部取消", actID)
|
||||
return fmt.Errorf("找不到活动:%d,或已被取消", actID)
|
||||
}
|
||||
|
||||
actStoreSkuMap, err := dao.GetActStoreSkuVendorInfo(db, actID, nil, nil, nil)
|
||||
@@ -423,7 +422,7 @@ func SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITask, actID int, vendor
|
||||
if vendorIDs == nil {
|
||||
vendorIDs = partner.GetVendorIDsFromActMap(actMap)
|
||||
}
|
||||
task := tasksch.NewParallelTask("SyncAct", nil, ctx,
|
||||
task := tasksch.NewParallelTask("SyncAct", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
vendorID := batchItemList[0].(int)
|
||||
if handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformActHandler); handler != nil {
|
||||
|
||||
Reference in New Issue
Block a user