belongsTo('LotteryActivity', 'activity_id'); } /** * 关联用户 */ public function user() { return $this->belongsTo('app\common\model\User', 'user_id'); } /** * 关联奖品 */ public function prize() { return $this->belongsTo('LotteryPrize', 'prize_id'); } /** * 关联中奖记录 */ public function winRecord() { return $this->hasOne('LotteryWinRecord', 'draw_record_id'); } /** * 关联订单 */ public function order() { return $this->belongsTo('app\common\model\Order', 'trigger_order_id'); } /** * 获取触发类型文本 */ public function getTriggerTypeTextAttr($value, $data) { $types = LotteryEnum::getTriggerTypeMap(); return isset($types[$data['trigger_type']]) ? $types[$data['trigger_type']] : '未知'; } /** * 获取中奖信息数据 */ public function getWinInfoDataAttr($value, $data) { return !empty($data['win_info']) ? json_decode($data['win_info'], true) : []; } /** * 设置中奖信息 */ public function setWinInfoAttr($value) { return is_array($value) ? json_encode($value) : $value; } /** * 获取状态文本 */ public function getStatusTextAttr($value, $data) { return LotteryEnum::getDrawStatusText($data['status']); } }