import '../hj_model/video_model.dart'; import '../tools_base/global_store/store.dart'; import '../tools_base/net/net_manager.dart'; import 'date_time_util.dart'; /// 是否需要开通 VIP 才能看 bool needVip(VideoModel? model) { if (model?.freeArea == true) return false; // 免费区 // VIP 未过期(比服务端校准时间,防改本地时间);日期为空/解析失败都当过期 final expire = DateTime.tryParse(globalStore.meInfo?.vipExpireDate ?? ''); if (expire?.isAfter(netManager.getFixedCurTime()) == true) return false; if (model?.isCoinVideo() == true) return false; // 金币视频走金币购买,与 VIP 无关 if (globalStore.isMe(model?.publisher?.uid)) return false; // 自己发布的 return true; } /* 会员权益: 普通会员: VIP长视频 VIP抖音 社区帖子VIP 图集VIP 小说VIP ACGVIP 高级会员:VIP+金币视频(长视频,抖音),社区VIP帖子。图集金币 小说 金币 ACG 。 暗网视频和社区金币帖子除外 超级会员: 全网通 包含暗网+社区金币帖子 黄游单独购买 * */ /// 长视频 / 抖音是否需要花金币购买 bool needCoin(VideoModel? model) { if (model == null) return false; final originCoins = model.originCoins ?? 0; if (originCoins == 0) return false; // 非金币视频 if (globalStore.isMe(model.publisher?.uid)) return false; // 自己发布的 if (model.freeArea == true) return false; // 免费区 final isVip = globalStore.isVIP; if (isVip && model.coins == 0) return false; // VIP 折后 0 金币 if (globalStore.isSuperUp) return false; // 超级会员全网通 // VIP 金币视频限免期内,50 金币以内免费 if (isVip && DateTimeUtil.calTime3(globalStore.meInfo?.goldVideoFreeExpire) > 0 && originCoins <= 50) return false; return !(model.vidStatus?.hasPaid ?? false); // 已购则不用再买 } /// 社区帖子视频是否需要花金币购买(规则与长视频略有差异) bool needPostCoin(VideoModel? model) { if (model == null) return false; if (globalStore.isMe(model.publisher?.uid)) return false; // 自己发布的 if (model.freeArea == true) return false; // 免费区 if (globalStore.isSuperUp) return false; // 超级会员全网通 final isVip = globalStore.isVIP; if (isVip && (model.originCoins ?? 0) > 0 && model.coins == 0) return false; // VIP 折后 0 金币 if (isVip && model.originCoins == 0) return false; // VIP 看非金币帖子 return !(model.vidStatus?.hasPaid ?? false); // 已购则不用再买 }