hasMany('LotteryPrize', 'activity_id'); } /** * 关联参与条件 */ public function conditions() { return $this->hasMany('LotteryCondition', 'activity_id'); } /** * 关联抽奖记录 */ public function drawRecords() { return $this->hasMany('LotteryDrawRecord', 'activity_id'); } /** * 关联中奖记录 */ public function winRecords() { return $this->hasMany('LotteryWinRecord', 'activity_id'); } /** * 关联用户机会 */ public function userChances() { return $this->hasMany('LotteryUserChance', 'activity_id'); } /** * 获取状态文本 */ public function getStatusTextAttr($value, $data) { return LotteryEnum::getActivityStatusText($data['status']); } /** * 获取开奖方式文本 */ public function getLotteryTypeTextAttr($value, $data) { return LotteryEnum::getLotteryTypeText($data['lottery_type']); } /** * 获取用户群体类型文本 */ // public function getUserLimitTypeTextAttr($value, $data) // { // $value = $value ?: ($data['user_limit_type'] ?? ''); // $types = LotteryEnum::getUserLimitTypeMap(); // return $types[$value]; // } /** * 获取用户限制值(自动解析JSON) */ public function getUserLimitValueAttr($value, $data) { return $value ? json_decode($value, true) : []; } /** * 设置用户限制值(自动转换JSON) */ public function setUserLimitValueAttr($value) { return is_array($value) ? json_encode($value) : $value; } }