'未中奖', self::PRIZE_TYPE_GOODS => '实物奖品', self::PRIZE_TYPE_INTEGRAL => '积分', self::PRIZE_TYPE_BALANCE => '余额', self::PRIZE_TYPE_COUPON => '优惠券', self::PRIZE_TYPE_REDBAG => '红包', self::PRIZE_TYPE_CODE => '兑换码', self::PRIZE_TYPE_SHOP_GOODS => '商城奖品', ]; } /** * 获取活动类型映射 * @return array */ public static function getActivityTypeMap() { return [ self::ACTIVITY_TYPE_CONSUME => '消费抽奖', ]; } /** * 获取奖品类型文本 * @param string $type * @return string */ public static function getPrizeTypeText($type) { return self::getPrizeTypeMap()[$type] ?? '未知'; } /** * 获取奖品类型列表(用于前端选择) * @return array */ public static function getPrizeTypeList() { $map = self::getPrizeTypeMap(); //unset($map[self::PRIZE_TYPE_NO_PRIZE]); // 移除未中奖选项 return array_map(function($value, $key) { return ['value' => $key, 'text' => $value]; }, $map, array_keys($map)); } /** * 获取活动状态映射 * @return array */ public static function getActivityStatusMap() { return [ self::ACTIVITY_STATUS_DRAFT => '草稿', self::ACTIVITY_STATUS_ACTIVE => '进行中', self::ACTIVITY_STATUS_ENDED => '已结束', self::ACTIVITY_STATUS_PAUSED => '已暂停', ]; } /** * 获取活动状态文本 * @param int $status * @return string */ public static function getActivityStatusText($status) { return self::getActivityStatusMap()[$status] ?? '未知'; } /** * 获取开奖方式映射 * @return array */ public static function getLotteryTypeMap() { return [ self::LOTTERY_TYPE_IMMEDIATE => '即抽即中', self::LOTTERY_TYPE_TIME => '按时间开奖', self::LOTTERY_TYPE_PEOPLE => '按人数开奖', ]; } /** * 获取开奖方式文本 * @param int $type * @return string */ public static function getLotteryTypeText($type) { return self::getLotteryTypeMap()[$type] ?? '未知'; } /** * 获取适用人群映射 * @return array */ public static function getUserLimitTypeMap() { return [ self::USER_LIMIT_TYPE_ALL => '全部会员', self::USER_LIMIT_TYPE_LEVEL => '会员等级', self::USER_LIMIT_TYPE_TAG => '会员标签', ]; } /** * 获取适用人群文本 * @param int $type * @return string */ public static function getUserLimitTypeText($type) { return self::getUserLimitTypeMap()[$type] ?? '未知'; } /** * 获取引导样式映射 * @return array */ public static function getGuideStyleMap() { return [ self::GUIDE_STYLE_DEFAULT => '默认样式', self::GUIDE_STYLE_CUSTOM => '自定义样式', ]; } /** * 获取引导样式文本 * @param int $style * @return string */ public static function getGuideStyleText($style) { return self::getGuideStyleMap()[$style] ?? '未知'; } /** * 获取条件类型映射 * @return array */ public static function getConditionTypeMap() { return [ self::CONDITION_TYPE_BUY_GOODS => '购买指定商品', self::CONDITION_TYPE_ORDER_AMOUNT => '单笔订单消费满额', self::CONDITION_TYPE_RECHARGE_AMOUNT => '单次充值满额', self::CONDITION_TYPE_TOTAL_AMOUNT => '活动期间累计消费满额', ]; } /** * 获取条件类型文本 * @param int $type * @return string */ public static function getConditionTypeText($type) { return self::getConditionTypeMap()[$type] ?? '未知'; } /** * 获取任务类型映射(兼容旧方法名) * @return array * @deprecated 请使用 getConditionTypeMap() */ public static function getTaskTypeMap() { return self::getConditionTypeMap(); } /** * 获取任务类型文本(兼容旧方法名) * @param int $type * @return string * @deprecated 请使用 getConditionTypeText() */ public static function getTaskTypeText($type) { return self::getConditionTypeText($type); } /** * 获取活动渠道映射 * @return array */ public static function getChannelMap() { return [ self::CHANNEL_WECHAT_MP => '微信公众号', self::CHANNEL_WECHAT_MINI => '微信小程序', self::CHANNEL_H5 => '手机浏览器H5', self::CHANNEL_APP => 'APP', ]; } /** * 获取活动渠道文本 * @param string $channel * @return string */ public static function getChannelText($channel) { return self::getChannelMap()[$channel] ?? '未知'; } /** * 获取兑奖期限类型映射 * @return array */ public static function getRedeemExpireTypeMap() { return [ self::REDEEM_EXPIRE_TYPE_FOREVER => '永久有效', self::REDEEM_EXPIRE_TYPE_DAYS => '固定时长', ]; } /** * 获取兑奖期限类型文本 * @param int $type * @return string */ public static function getRedeemExpireTypeText($type) { return self::getRedeemExpireTypeMap()[$type] ?? '未知'; } /** * 获取奖品默认图片映射 * @return array */ public static function getPrizeDefaultImageMap() { // 默认图 $config = config('site'); return [ self::PRIZE_TYPE_NO_PRIZE => $config['prize_losing_lottery'] ?? '', self::PRIZE_TYPE_GOODS => $config['prize_goods'] ?? '', self::PRIZE_TYPE_INTEGRAL => $config['prize_credit'] ?? '', self::PRIZE_TYPE_BALANCE => $config['prize_balance'] ?? '', self::PRIZE_TYPE_COUPON => $config['prize_coupon'] ?? '', self::PRIZE_TYPE_REDBAG => $config['prize_redbag'] ?? '', self::PRIZE_TYPE_CODE => $config['prize_code'] ?? '', self::PRIZE_TYPE_SHOP_GOODS => $config['prize_shop_goods'] ?? '', ]; } /** * 获取奖品默认图片 * @param string $type * @return string */ public static function getPrizeDefaultImage($type) { return self::getPrizeDefaultImageMap()[$type] ?? '/assets/img/lottery/default.png'; } /** * 检查是否为有效的奖品类型 * @param string $type * @return bool */ public static function isValidPrizeType($type) { return array_key_exists($type, self::getPrizeTypeMap()); } /** * 检查是否为有效的活动状态 * @param int $status * @return bool */ public static function isValidActivityStatus($status) { return array_key_exists($status, self::getActivityStatusMap()); } /** * 检查是否为有效的开奖方式 * @param int $type * @return bool */ public static function isValidLotteryType($type) { return array_key_exists($type, self::getLotteryTypeMap()); } /** * 检查是否为有效的条件类型 * @param int $type * @return bool */ public static function isValidConditionType($type) { return array_key_exists($type, self::getConditionTypeMap()); } }