fix: 铁粉降价后,满足条件的用户解锁铁粉
This commit is contained in:
parent
82c89df80f
commit
2117e782fb
|
@ -4298,15 +4298,7 @@ func (v *Vas) UnilaterallyWithdrawAccomplish(ctx *gin.Context, orderId string) (
|
|||
}
|
||||
|
||||
func (v *Vas) FansIdentityRefresh(ctx *gin.Context, mid, zid int64) error {
|
||||
|
||||
// 开启事务
|
||||
tx, err := v.store.VasBegin(ctx)
|
||||
if err != nil {
|
||||
logger.Error("vas begin fail, err: %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = v.UnlockZoneIronfanshipRefresh(ctx, tx, mid, zid, 0)
|
||||
err := v.UnlockZoneIronfanshipRefresh(ctx, mid, zid, 0)
|
||||
|
||||
if err != nil {
|
||||
logger.Error("vas FansIdentityRefresh UnlockZoneIronFanShipRefresh fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
|
|
|
@ -530,7 +530,23 @@ func (v *Vas) UnlockZoneIronfanshipReachConsume(ctx *gin.Context, tx *sqlx.Tx, m
|
|||
}
|
||||
|
||||
// 铁粉刷新(主播涨价降价后逻辑后更新逻辑)
|
||||
func (v *Vas) UnlockZoneIronfanshipRefresh(ctx *gin.Context, tx *sqlx.Tx, mid, zid, streamerMid int64) error {
|
||||
func (v *Vas) UnlockZoneIronfanshipRefresh(ctx *gin.Context, mid, zid, streamerMid int64) error {
|
||||
|
||||
// 开启事务
|
||||
tx, err := v.store.VasBegin(ctx)
|
||||
if err != nil {
|
||||
logger.Error("vas begin fail, err: %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
defer func() {
|
||||
errTx := v.store.DealTxCR(tx, err)
|
||||
if errTx != nil {
|
||||
logger.Error("DealTxCR fail, err: %v", errTx)
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
if tx == nil {
|
||||
err := fmt.Errorf("nil tx")
|
||||
return err
|
||||
|
@ -560,25 +576,28 @@ func (v *Vas) UnlockZoneIronfanshipRefresh(ctx *gin.Context, tx *sqlx.Tx, mid, z
|
|||
return fmt.Errorf("zone unlock not exist, mid: %v, zid: %v", mid, zid)
|
||||
}
|
||||
|
||||
// 主播涨价后,原用户是否是铁粉
|
||||
if zUnlock.IsUnlockIronfanship() {
|
||||
logger.Info("UnlockZoneIronFanShipRefresh, users are already iron fans")
|
||||
return nil
|
||||
}
|
||||
|
||||
if zUnlock.GetConsume() < zVas.IronfanshipPrice {
|
||||
// 主播降价后消费额是否达到了解锁铁粉的消费额
|
||||
return fmt.Errorf("not reach ironfan unlock consume, mid: %v, zid: %v", mid, zid)
|
||||
} else if zUnlock.GetIronfanshipUnlockType() != dbstruct.ZoneUnlockTypeReachConsume {
|
||||
// 主播涨价后,原用户是否是铁粉
|
||||
return fmt.Errorf("the iron fans unlock condition is not met, mid: %v, zid: %v", mid, zid)
|
||||
}
|
||||
|
||||
// 解锁铁粉
|
||||
err := v.MustUnlockIronfanship(ctx, tx, mid, zid, -1, "ironfan", dbstruct.ZoneUnlockTypeReachConsume)
|
||||
err = v.MustUnlockIronfanship(ctx, tx, mid, zid, -1, "ironfan", dbstruct.ZoneUnlockTypeReachConsume)
|
||||
if err != nil {
|
||||
logger.Error("MustUnlockIronfanship fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
logger.Error("UnlockZoneIronfanshipRefresh MustUnlockIronfanship fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
return err
|
||||
}
|
||||
|
||||
// 添加到空间成员
|
||||
err = v.store.AddZoneMember(ctx, tx, mid, zid, dbstruct.ZoneMemberTypeIronfan)
|
||||
if err != nil {
|
||||
logger.Error("AddZoneMember normal fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
logger.Error("UnlockZoneIronfanshipRefresh AddZoneMember normal fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue