'实名认证奖励', self::LEVER_TRADE_FEE => '交易手续费结算', self::LEVER_TRADE_FEE_ATELIER => '工作室奖励', ]; protected static $rewardTypeList = [ self::REWARD_CANDY => '通证', self::REWARD_CURRENCY => '数字货币', ]; public static function enumScene() { return self::$sceneList; } public static function enumRewardType() { return self::$rewardTypeList; } /** * 计算奖励 * * @param PrizeCalculator $sender 发奖实例 * @param integer $scene * @param float $reward_qty * @param \App\Users $to_user * @param \App\Users $from_user * @param string $memo * @param array $attach_data * @return \App\PrizePool|null 返回奖池记录 */ public static function calculate(PrizeCalculator $sender, $scene, $reward_qty, $to_user, $from_user, $memo, $attach_data) { return $sender->calculate($scene, $reward_qty, $to_user, $from_user, $memo, $attach_data); } /** * 发放奖励 * * @param PrizeSender $receiver * @param \App\PrizePool $prize_pool * @return bool */ public static function send(PrizeSender $receiver, $prize_pool) { if (!$prize_pool) { return false; } return $receiver->send($prize_pool); } public function toUser() { return $this->belongsTo('App\Users', 'to_user_id', 'id')->withDefault(); } public function fromUser() { return $this->belongsTo('App\Users', 'from_user_id', 'id')->withDefault(); } public function getCreateTimeAttribute($value) { return empty($value) ? '' : date('Y-m-d H:i:s', $value); } public function getToUserNameAttribute() { return $this->toUser()->value('account_number'); } public function getFromUserNameAttribute() { return $this->fromUser()->value('account_number'); } public function getSceneNameAttribute() { $scene_list = self::$sceneList; $scene = $this->getAttribute('scene'); $value = array_key_exists($scene, $scene_list) ? $scene_list[$scene] : '未知'; return $value; } public function getRewardTypeAttribute($value) { $reward_type_list = self::$rewardTypeList; $reward_type = $value; $value = array_key_exists($reward_type, $reward_type_list) ? $reward_type_list[$reward_type] : '未知'; return $value; } }