This commit is contained in:
苏尹岚
2021-03-30 17:39:07 +08:00
parent b9f7d7f53a
commit 0dd7235485
49 changed files with 579 additions and 582 deletions

View File

@@ -317,10 +317,10 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
}
func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList []*model.ActStoreSku, actStoreSkuMapList []*model.ActStoreSkuMap) (err error) {
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -332,7 +332,7 @@ func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList [
}
err = dao.CreateEntity(db, v)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
storeSkuMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = v.ID
@@ -344,11 +344,11 @@ func addActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuList [
if len(actStoreSkuMapList) > 0 {
err = dao.CreateMultiEntities(db, actStoreSkuMapList)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -395,10 +395,10 @@ func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actSto
if err != nil {
return err
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -419,7 +419,7 @@ func AddActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, actSto
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -565,37 +565,37 @@ func CreateAct(ctx *jxcontext.Context, act *model.Act, vendorIDs []int, vendorOr
// TODO
// 事务应该从ActStoreSkuParam2Model之后开始
// 创建Act也应该往后放
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
dao.WrapAddIDCULDEntity(act, ctx.GetUserName())
err = dao.CreateEntity(db, act)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
validVendorIDs, actStoreSkuList, actStoreSkuMapList, conflictActStoreSku, err := ActStoreSkuParam2Model(ctx, db, act, vendorIDs, actStoreSku)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
if len(validVendorIDs) == 0 {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", fmt.Errorf("没有一个合法平台可以创建活动")
}
var neeSyncActIDs []int
if len(conflictActStoreSku) > 0 {
if act.OverlapRule == model.OverlapRuleNormal {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", jsonerr.New(conflictActStoreSku, model.ErrCodeJsonActSkuConflict)
}
if neeSyncActIDs, err = DeleteActStoreSkuList(ctx, db, conflictActStoreSku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
}
@@ -615,15 +615,15 @@ func CreateAct(ctx *jxcontext.Context, act *model.Act, vendorIDs []int, vendorOr
}
err = dao.CreateMultiEntities(db, actMapList)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
dao.Commit(db)
dao.Commit(db, txDB)
neeSyncActIDs = append(neeSyncActIDs, act.ID)
task := tasksch.NewParallelTask(fmt.Sprintf("处理活动创建%d", act.ID), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
@@ -722,10 +722,10 @@ func createActFromVendor(ctx *jxcontext.Context, db *dao.DaoDB, act2 *model.Act2
err = nil
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -734,26 +734,26 @@ func createActFromVendor(ctx *jxcontext.Context, db *dao.DaoDB, act2 *model.Act2
dao.WrapAddIDCULDEntity(act, ctx.GetUserName())
err = dao.CreateEntity(db, act)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
actMap.ActID = act.ID
err = dao.CreateEntity(db, actMap)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
actStoreSkuList, actStoreSkuMapList, err := vendorActInfo2Model(ctx, db, act2, actStoreSku)
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
if err = addActStoreSkuBind(ctx, db, actStoreSkuList, actStoreSkuMapList); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return 0, err
}
dao.Commit(db)
dao.Commit(db, txDB)
return act.ID, nil
}
@@ -838,10 +838,10 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act
return 0, fmt.Errorf("当前活动状态:%s不能进行此操作或已过期", model.ActStatusName[act.Status])
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -929,7 +929,7 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act
// }
// }
}
dao.Commit(db)
dao.Commit(db, txDB)
return originSyncStatus, err
}
@@ -1069,10 +1069,10 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
needAddActSkuMap[actStoreSku.VendorActID] = append(needAddActSkuMap[actStoreSku.VendorActID], actStoreSku)
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -1091,7 +1091,7 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
// return nil, err
// }
// }
dao.Commit(db)
dao.Commit(db, txDB)
}
return retVal, err
}, vendorIDs)
@@ -1308,10 +1308,10 @@ func ForceUpdateVendorPrice(ctx *jxcontext.Context, vendorID int, actType int, s
}
func SyncActStoreSku2StoreSkuAct(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.ITask, act *model.Act2) (err error) {
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -1392,7 +1392,7 @@ func SyncActStoreSku2StoreSkuAct(ctx *jxcontext.Context, db *dao.DaoDB, parentTa
return err
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -1589,10 +1589,10 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
continue
}
actualStockOut, err = dao.GetOrderStoreSkusCount(db, actStoreSkuMap.StoreID, actStoreSkuMap.SkuID, time.Now().Add(-time.Minute*10), time.Now())
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -1621,7 +1621,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
if stock != -1 {
storeSku.Stock = stock
if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
}
}
@@ -1629,7 +1629,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
actStoreSkuMap.ActualActPrice = actStoreSkuMap.VendorPrice
}
// if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice"); err != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
// }
//C >= 2N 涨价趋势,最高涨价到无折扣
if actualStockOut >= 2*shouldStockOut {
@@ -1647,7 +1647,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
}
actStoreSkuMap.TrendPrice = int(actualPrice)
if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice", "TrendType", "TrendPrice"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
} else { //第二档时间内
pricePercentage = 0.1
@@ -1665,7 +1665,7 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
}
actStoreSkuMap.TrendPrice = int(actualPrice)
// if _, err = dao.UpdateEntity(db, actStoreSkuMap, "TrendType", "TrendPrcie"); err != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
// }
actStoreSkuMap.ActualActPrice = actStoreSkuMap.ActualActPrice - actualPrice
if actStoreSkuMap.ActualActPrice <= minJxPrice {
@@ -1675,24 +1675,24 @@ func ChangeJxPriceByDiscountAct(ctx *jxcontext.Context) {
if stock != -1 {
storeSku.Stock = stock
if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
}
//22:00 恢复库存为100,价格恢复原价
if time.Now().Hour() == 22 && time.Now().Minute() < 1 {
storeSku.Stock = 100
if _, err = dao.UpdateEntity(db, storeSku, "Stock"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
actStoreSkuMap.ActualActPrice = actStoreSkuMap.VendorPrice
actStoreSkuMap.TrendType = model.TrendTypeNothing
actStoreSkuMap.TrendPrice = 0
}
if _, err = dao.UpdateEntity(db, actStoreSkuMap, "ActualActPrice", "TrendType", "TrendPrice"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
}
}