fix db
This commit is contained in:
parent
559f6c1aff
commit
5dedd4fd27
|
@ -232,3 +232,18 @@ type GetZoneMemberListResp struct {
|
|||
base.BaseResponse
|
||||
Data *GetZoneMemberListData `json:"data"`
|
||||
}
|
||||
|
||||
// 加入免费空间
|
||||
type ZoneFreeJoinReq struct {
|
||||
base.BaseRequest
|
||||
Zid int64 `json:"zid"` // 空间id
|
||||
ProductId string `json:"product_id"` // 商品id,ProductIdH5Zone*
|
||||
}
|
||||
|
||||
type ZoneFreeJoinData struct {
|
||||
}
|
||||
|
||||
type ZoneFreeJoinResp struct {
|
||||
base.BaseResponse
|
||||
Data *ZoneFreeJoinData `json:"data"`
|
||||
}
|
||||
|
|
|
@ -223,6 +223,7 @@ func Init(r *gin.Engine) {
|
|||
apiZoneGroup.POST("refund_page", middleware.JSONParamValidator(vasproto.ZoneRefundPageReq{}), ZoneRefundPage)
|
||||
apiZoneGroup.POST("refund", middleware.JSONParamValidator(vasproto.ZoneRefundReq{}), ZoneRefund)
|
||||
apiZoneGroup.POST("member_list", middleware.JSONParamValidator(vasproto.GetZoneMemberListReq{}), ZoneMemberList)
|
||||
apiZoneGroup.POST("free_join", middleware.JSONParamValidator(vasproto.ZoneFreeJoinReq{}), ZoneFreeJoin)
|
||||
|
||||
// 私密圈动态
|
||||
apiZoneMomentGroup := r.Group("/api/zone_moment", PrepareToC())
|
||||
|
|
|
@ -110,3 +110,18 @@ func ZoneMemberList(ctx *gin.Context) {
|
|||
}
|
||||
ReplyOk(ctx, data)
|
||||
}
|
||||
|
||||
func ZoneFreeJoin(ctx *gin.Context) {
|
||||
req := ctx.MustGet("client_req").(*vasproto.ZoneFreeJoinReq)
|
||||
ec, err := service.DefaultService.ZoneFreeJoin(ctx, req)
|
||||
if ec != errcode.ErrCodeVasSrvOk {
|
||||
logger.Error("ZoneFreeJoin fail, req: %v, ec: %v", util.ToJson(req), ec)
|
||||
if ec == errcode.ErrCodeVasSrvFail && err != nil {
|
||||
ReplyErrorMsg(ctx, err.Error())
|
||||
return
|
||||
}
|
||||
ReplyErrCodeMsg(ctx, ec)
|
||||
return
|
||||
}
|
||||
ReplyOk(ctx, nil)
|
||||
}
|
||||
|
|
|
@ -89,16 +89,17 @@ func (m *Mysql) GetZoneUnlockListByMidZids(ctx *gin.Context, tx *sqlx.Tx, mid in
|
|||
func (m *Mysql) CreateZoneUnlock(ctx *gin.Context, tx *sqlx.Tx, mid, zid int64) error {
|
||||
var err error
|
||||
sqlStr := "insert into " + TableVasZoneUnlock +
|
||||
" (mid, zid, consume" +
|
||||
" admission_ct, admission_until, admission_order_id, " +
|
||||
" ironfanship_ct, ironfanship_until, ironfanship_order_id, " +
|
||||
" superfanship_ct, superfanship_until, superfanship_order_id) " +
|
||||
" values (?,?,?,?,?,?,?,?,?,?,?,?)"
|
||||
" (mid, zid, consume, " +
|
||||
" admission_ct, admission_until, admission_order_id, admission_unlock_type, " +
|
||||
" ironfanship_ct, ironfanship_until, ironfanship_order_id, ironfanship_unlock_type, " +
|
||||
" superfanship_ct, superfanship_until, superfanship_order_id, superfanship_unlock_type) " +
|
||||
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
|
||||
args := []any{mid, zid, 0, 0, 0, "", 0, 0, 0, "", 0, 0, 0, "", 0}
|
||||
if tx != nil {
|
||||
_, err = tx.ExecContext(ctx, sqlStr, mid, zid, 0, 0, 0, "", 0, 0, "", 0, 0, "")
|
||||
_, err = tx.ExecContext(ctx, sqlStr, args...)
|
||||
} else {
|
||||
db := m.getDBVas()
|
||||
_, err = db.ExecContext(ctx, sqlStr, mid, zid, 0, 0, 0, "", 0, 0, "", 0, 0, "")
|
||||
_, err = db.ExecContext(ctx, sqlStr, args...)
|
||||
}
|
||||
if err != nil {
|
||||
logger.Error("CreateZoneUnlock fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
|
@ -144,14 +145,15 @@ func (m *Mysql) GetZoneMomentUnlockListByMidMomentIds(ctx *gin.Context, tx *sqlx
|
|||
}
|
||||
|
||||
// 解锁空间普通会员
|
||||
func (m *Mysql) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string) error {
|
||||
func (m *Mysql) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string, unlockType int32) error {
|
||||
var err error
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set admission_ct=?, admission_until=?, admission_order_id=? where mid=? and zid=?"
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set admission_ct=?, admission_until=?, admission_order_id=?, admission_unlock_type=? where mid=? and zid=?"
|
||||
args := []any{time.Now().Unix(), until, orderId, unlockType, mid, zid}
|
||||
if tx != nil {
|
||||
_, err = tx.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = tx.ExecContext(ctx, sqlStr, args...)
|
||||
} else {
|
||||
db := m.getDBVas()
|
||||
_, err = db.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = db.ExecContext(ctx, sqlStr, args...)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -177,14 +179,15 @@ func (m *Mysql) DeleteZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, mid, zid int6
|
|||
}
|
||||
|
||||
// 解锁空间铁粉
|
||||
func (m *Mysql) UnlockZoneIronfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string) error {
|
||||
func (m *Mysql) UnlockZoneIronfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string, unlockType int32) error {
|
||||
var err error
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set ironfanship_ct=?, ironfanship_until=?, ironfanship_order_id=? where mid=? and zid=?"
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set ironfanship_ct=?, ironfanship_until=?, ironfanship_order_id=?, ironfanship_unlock_type=? where mid=? and zid=?"
|
||||
args := []any{time.Now().Unix(), until, orderId, unlockType, mid, zid}
|
||||
if tx != nil {
|
||||
_, err = tx.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = tx.ExecContext(ctx, sqlStr, args...)
|
||||
} else {
|
||||
db := m.getDBVas()
|
||||
_, err = db.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = db.ExecContext(ctx, sqlStr, args...)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -193,14 +196,15 @@ func (m *Mysql) UnlockZoneIronfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, u
|
|||
}
|
||||
|
||||
// 解锁空间铁粉
|
||||
func (m *Mysql) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string) error {
|
||||
func (m *Mysql) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, until int64, orderId string, unlockType int32) error {
|
||||
var err error
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set superfanship_ct=?, superfanship_until=?, superfanship_order_id=? where mid=? and zid=?"
|
||||
sqlStr := "update " + TableVasZoneUnlock + " set superfanship_ct=?, superfanship_until=?, superfanship_order_id=?, superfanship_unlock_type=? where mid=? and zid=?"
|
||||
args := []any{time.Now().Unix(), until, orderId, unlockType, mid, zid}
|
||||
if tx != nil {
|
||||
_, err = tx.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = tx.ExecContext(ctx, sqlStr, args...)
|
||||
} else {
|
||||
db := m.getDBVas()
|
||||
_, err = db.ExecContext(ctx, sqlStr, time.Now().Unix(), until, orderId, mid, zid)
|
||||
_, err = db.ExecContext(ctx, sqlStr, args...)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -1314,13 +1314,13 @@ func (v *Vas) PayCallback(ctx *gin.Context, p *vasproto.PayCallbackParamIn) {
|
|||
return
|
||||
}
|
||||
case product.Id == dbstruct.ProductIdH5ZoneAdmission:
|
||||
err = v.UnlockZoneAdmission(ctx, tx, order)
|
||||
err = v.UnlockZoneAdmission(ctx, tx, order, dbstruct.ZoneUnlockTypePay)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneAdmission fail, order: %v, err: %v", util.ToJson(order), err)
|
||||
return
|
||||
}
|
||||
case product.Id == dbstruct.ProductIdH5ZoneSuperfanship:
|
||||
err = v.UnlockZoneSuperfanship(ctx, tx, order)
|
||||
err = v.UnlockZoneSuperfanship(ctx, tx, order, dbstruct.ZoneUnlockTypePay)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneSuperfanship fail, order: %v, err: %v", util.ToJson(order), err)
|
||||
return
|
||||
|
@ -1328,9 +1328,9 @@ func (v *Vas) PayCallback(ctx *gin.Context, p *vasproto.PayCallbackParamIn) {
|
|||
}
|
||||
|
||||
// 是否达到铁粉解锁条件
|
||||
_err := v.UnlockZoneIronfanship(ctx, tx, order.GetMid(), order.GetZid(), order.GetUid())
|
||||
_err := v.UnlockZoneIronfanshipReachConsume(ctx, tx, order.GetMid(), order.GetZid(), order.GetUid())
|
||||
if _err != nil {
|
||||
logger.Error("UnlockZoneIronfanship fail, order: %v, err: %v", util.ToJson(order), _err)
|
||||
logger.Error("UnlockZoneIronfanshipReachConsume fail, order: %v, err: %v", util.ToJson(order), _err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
@ -234,7 +234,7 @@ func (v *Vas) UnlockZoneMoment(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Or
|
|||
}
|
||||
|
||||
// 解锁空间会员
|
||||
func (v *Vas) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Order) error {
|
||||
func (v *Vas) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Order, unlockType int32) error {
|
||||
if tx == nil {
|
||||
err := fmt.Errorf("nil tx")
|
||||
return err
|
||||
|
@ -247,7 +247,7 @@ func (v *Vas) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct
|
|||
)
|
||||
|
||||
// 解锁空间会员
|
||||
err := v.store.UnlockZoneAdmission(ctx, tx, mid, zid, -1, orderId)
|
||||
err := v.store.UnlockZoneAdmission(ctx, tx, mid, zid, -1, orderId, unlockType)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneAdmission fail, mid: %v, zid: %v, orderId: %v, err: %v", mid, zid, orderId, err)
|
||||
return err
|
||||
|
@ -283,7 +283,7 @@ func (v *Vas) UnlockZoneAdmission(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct
|
|||
}
|
||||
|
||||
// 解锁空间超粉
|
||||
func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Order) error {
|
||||
func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Order, unlockType int32) error {
|
||||
if tx == nil {
|
||||
err := fmt.Errorf("nil tx")
|
||||
return err
|
||||
|
@ -297,7 +297,7 @@ func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstr
|
|||
)
|
||||
|
||||
// 解锁空间超粉
|
||||
err := v.store.UnlockZoneSuperfanship(ctx, tx, mid, zid, order.GetSuperfanshipUntil(), orderId)
|
||||
err := v.store.UnlockZoneSuperfanship(ctx, tx, mid, zid, order.GetSuperfanshipUntil(), orderId, unlockType)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneAdmission fail, mid: %v, zid: %v, orderId: %v, err: %v", mid, zid, orderId, err)
|
||||
return err
|
||||
|
@ -355,8 +355,8 @@ func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstr
|
|||
return nil
|
||||
}
|
||||
|
||||
// 解锁空间铁粉
|
||||
func (v *Vas) UnlockZoneIronfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, streamerMid int64) error {
|
||||
// 满足消费额解锁空间铁粉
|
||||
func (v *Vas) UnlockZoneIronfanshipReachConsume(ctx *gin.Context, tx *sqlx.Tx, mid, zid, streamerMid int64) error {
|
||||
if tx == nil {
|
||||
err := fmt.Errorf("nil tx")
|
||||
return err
|
||||
|
@ -392,7 +392,7 @@ func (v *Vas) UnlockZoneIronfanship(ctx *gin.Context, tx *sqlx.Tx, mid, zid, str
|
|||
}
|
||||
|
||||
// 解锁铁粉
|
||||
err := v.store.UnlockZoneIronfanship(ctx, tx, mid, zid, -1, "ironfan")
|
||||
err := v.store.UnlockZoneIronfanship(ctx, tx, mid, zid, -1, "ironfan", dbstruct.ZoneUnlockTypeReachConsume)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneAdmission fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
return err
|
||||
|
@ -831,3 +831,46 @@ func (v *Vas) GetZoneMemberList(ctx *gin.Context, zid int64, memType int32) (lis
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 免费加入空间
|
||||
func (v *Vas) ZoneFreeJoin(ctx *gin.Context, mid, zid int64) error {
|
||||
// 查询空间价格
|
||||
zv, _ := v.store.GetZoneVasById(ctx, zid)
|
||||
if zv == nil {
|
||||
logger.Error("GetZoneVasById fail, no such zid: %v", zid)
|
||||
return fmt.Errorf("该主播没有开通空间")
|
||||
}
|
||||
if zv.AdmissionPrice != 0 {
|
||||
return fmt.Errorf("不是免费空间")
|
||||
}
|
||||
|
||||
// 开启事务
|
||||
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
|
||||
}
|
||||
}()
|
||||
|
||||
// 解锁空间会员
|
||||
err = v.store.UnlockZoneAdmission(ctx, tx, mid, zid, -1, "", dbstruct.ZoneUnlockTypeFree)
|
||||
if err != nil {
|
||||
logger.Error("UnlockZoneAdmission fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
return err
|
||||
}
|
||||
|
||||
// 添加到空间成员
|
||||
err = v.store.AddZoneMember(ctx, tx, mid, zid, dbstruct.ZoneMemberTypeNormal)
|
||||
if err != nil {
|
||||
logger.Error("AddZoneMember normal fail, mid: %v, zid: %v, err: %v", mid, zid, err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -752,3 +752,13 @@ func (s *Service) ZoneMemberList(ctx *gin.Context, req *vasproto.GetZoneMemberLi
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (s *Service) ZoneFreeJoin(ctx *gin.Context, req *vasproto.ZoneFreeJoinReq) (ec errcode.ErrCode, err error) {
|
||||
err = _DefaultVas.ZoneFreeJoin(ctx, req.Mid, req.Zid)
|
||||
ec, err = errs.DealVasErr(err)
|
||||
if err != nil {
|
||||
logger.Error("ZoneRefund fail, err: %v", err)
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
@ -176,19 +176,27 @@ CREATE INDEX ix_orderid ON vas_user_membership_unlock (order_id);
|
|||
-- 用户解锁空间详情
|
||||
CREATE TABLE `vas_zone_unlock`
|
||||
(
|
||||
`id` bigint AUTO_INCREMENT COMMENT 'id',
|
||||
`mid` bigint NOT NULL COMMENT '用户id',
|
||||
`zid` bigint NOT NULL COMMENT '空间id',
|
||||
`consume` bigint DEFAULT 0 COMMENT '空间总消费',
|
||||
`admission_ct` bigint DEFAULT 0 COMMENT '普通会员开通时间',
|
||||
`admission_until` bigint DEFAULT 0 COMMENT '普通会员到期时间,时间戳,-1: 永久',
|
||||
`admission_order_id` varchar(128) DEFAULT NULL COMMENT '普通会员订单',
|
||||
`ironfanship_ct` bigint DEFAULT 0 COMMENT '铁粉开通时间',
|
||||
`ironfanship_until` bigint DEFAULT 0 COMMENT '铁粉到期时间,时间戳,-1: 永久',
|
||||
`ironfanship_order_id` varchar(128) DEFAULT NULL COMMENT '铁粉订单',
|
||||
`superfanship_ct` bigint DEFAULT 0 COMMENT '超粉开通时间',
|
||||
`superfanship_until` bigint DEFAULT 0 COMMENT '超粉到期时间,时间戳,-1: 永久',
|
||||
`superfanship_order_id` varchar(128) DEFAULT NULL COMMENT '超粉订单id',
|
||||
`id` bigint AUTO_INCREMENT COMMENT 'id',
|
||||
`mid` bigint NOT NULL COMMENT '用户id',
|
||||
`zid` bigint NOT NULL COMMENT '空间id',
|
||||
`oid1` varchar(128) DEFAULT NULL COMMENT '辅助id1',
|
||||
`oid2` varchar(128) DEFAULT NULL COMMENT '辅助id2',
|
||||
`oid3` varchar(128) DEFAULT NULL COMMENT '辅助id3',
|
||||
`oid4` varchar(128) DEFAULT NULL COMMENT '辅助id4',
|
||||
`oid5` varchar(128) DEFAULT NULL COMMENT '辅助id5',
|
||||
`consume` bigint DEFAULT 0 COMMENT '空间总消费',
|
||||
`admission_ct` bigint DEFAULT 0 COMMENT '普通会员开通时间',
|
||||
`admission_until` bigint DEFAULT 0 COMMENT '普通会员到期时间,时间戳,-1: 永久',
|
||||
`admission_order_id` varchar(128) DEFAULT NULL COMMENT '普通会员订单id',
|
||||
`admission_unlock_type` int DEFAULT 0 COMMENT '普通会员解锁类型',
|
||||
`ironfanship_ct` bigint DEFAULT 0 COMMENT '铁粉开通时间',
|
||||
`ironfanship_until` bigint DEFAULT 0 COMMENT '铁粉到期时间,时间戳,-1: 永久',
|
||||
`ironfanship_order_id` varchar(128) DEFAULT NULL COMMENT '铁粉订单id',
|
||||
`ironfanship_unlock_type` int DEFAULT 0 COMMENT '铁粉解锁类型',
|
||||
`superfanship_ct` bigint DEFAULT 0 COMMENT '超粉开通时间',
|
||||
`superfanship_until` bigint DEFAULT 0 COMMENT '超粉到期时间,时间戳,-1: 永久',
|
||||
`superfanship_order_id` varchar(128) DEFAULT NULL COMMENT '超粉订单id',
|
||||
`superfanship_unlock_type` int DEFAULT 0 COMMENT '超粉解锁类型',
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
|
|
|
@ -931,20 +931,34 @@ func (p *UserVasMembershipUnlock) GetOrderId() string {
|
|||
}
|
||||
|
||||
// 用户解锁空间详情
|
||||
const (
|
||||
ZoneUnlockTypeFree = 1 // 免费解锁
|
||||
ZoneUnlockTypePay = 2 // 付费解锁
|
||||
ZoneUnlockTypeReachConsume = 3 // 满足消费额解锁
|
||||
)
|
||||
|
||||
type ZoneUnlock struct {
|
||||
Id *int64 `json:"id" db:"id"`
|
||||
Mid *int64 `json:"mid" db:"mid"` // 用户mid
|
||||
Zid *int64 `json:"zid" db:"zid"` // 空间id
|
||||
Consume *int64 `json:"consume" db:"consume"` // 空间总消费
|
||||
AdmissionCt *int64 `json:"admission_ct" db:"admission_ct"` // 普通会员开通时间
|
||||
AdmissionUntil *int64 `json:"admission_until" db:"admission_until"` // 普通会员到期时间,时间戳,-1: 永久
|
||||
AdmissionOrderId *string `json:"admission_order_id" db:"admission_order_id"` // 普通会员订单
|
||||
IronfanshipCt *int64 `json:"ironfanship_ct" db:"ironfanship_ct"` // 铁粉开通时间
|
||||
IronfanshipUntil *int64 `json:"ironfanship_until" db:"ironfanship_until"` // 铁粉到期时间,时间戳,-1:永久
|
||||
IronfanshipOrderId *string `json:"ironfanship_order_id" db:"ironfanship_order_id"` // 铁粉订单
|
||||
SuperfanshipCt *int64 `json:"superfanship_ct" db:"superfanship_ct"` // 超粉开通时间
|
||||
SuperfanshipUntil *int64 `json:"superfanship_until" db:"superfanship_until"` // 超粉到期时间,时间戳,-1:永久
|
||||
SuperfanshipOrderId *string `json:"superfanship_order_id" db:"superfanship_order_id"` // 超粉订单id
|
||||
Id *int64 `json:"id" db:"id"`
|
||||
Mid *int64 `json:"mid" db:"mid"` // 用户mid
|
||||
Zid *int64 `json:"zid" db:"zid"` // 空间id
|
||||
Oid1 *string `json:"oid1" db:"oid1"` // 辅助id1
|
||||
Oid2 *string `json:"oid2" db:"oid2"` // 辅助id2
|
||||
Oid3 *string `json:"oid3" db:"oid3"` // 辅助id3
|
||||
Oid4 *string `json:"oid4" db:"oid4"` // 辅助id4
|
||||
Oid5 *string `json:"oid5" db:"oid5"` // 辅助id5
|
||||
Consume *int64 `json:"consume" db:"consume"` // 空间总消费
|
||||
AdmissionCt *int64 `json:"admission_ct" db:"admission_ct"` // 普通会员开通时间
|
||||
AdmissionUntil *int64 `json:"admission_until" db:"admission_until"` // 普通会员到期时间,时间戳,-1: 永久
|
||||
AdmissionOrderId *string `json:"admission_order_id" db:"admission_order_id"` // 普通会员订单
|
||||
AdmissionUnlockType *int32 `json:"admission_unlock_type" db:"admission_unlock_type"` // 普通会员解锁类型,见:ZoneUnlockType*
|
||||
IronfanshipCt *int64 `json:"ironfanship_ct" db:"ironfanship_ct"` // 铁粉开通时间
|
||||
IronfanshipUntil *int64 `json:"ironfanship_until" db:"ironfanship_until"` // 铁粉到期时间,时间戳,-1:永久
|
||||
IronfanshipOrderId *string `json:"ironfanship_order_id" db:"ironfanship_order_id"` // 铁粉订单
|
||||
IronfanshipUnlockType *int32 `json:"ironfanship_unlock_type" db:"ironfanship_unlock_type"` // 铁粉解锁类型,见:ZoneUnlockType*
|
||||
SuperfanshipCt *int64 `json:"superfanship_ct" db:"superfanship_ct"` // 超粉开通时间
|
||||
SuperfanshipUntil *int64 `json:"superfanship_until" db:"superfanship_until"` // 超粉到期时间,时间戳,-1:永久
|
||||
SuperfanshipOrderId *string `json:"superfanship_order_id" db:"superfanship_order_id"` // 超粉订单id
|
||||
SuperfanshipUnlockType *int32 `json:"superfanship_unlock_type" db:"superfanship_unlock_type"` // 超粉解锁类型,见:ZoneUnlockType*
|
||||
}
|
||||
|
||||
func (p *ZoneUnlock) IsUnlockAdmission() bool {
|
||||
|
|
Loading…
Reference in New Issue