setTable(plugin()->webman->config('database.player_extend_table')); } /** * 玩家信息 * @return BelongsTo */ public function player(): BelongsTo { return $this->belongsTo(plugin()->webman->config('database.player_model'), 'player_id')->withTrashed(); } /** * 总充值点数 * * @param $value * @return float */ public function getRechargeAmountAttribute($value): float { return floatval($value); } /** * 总提现金额 * * @param $value * @return float */ public function getWithdrawAmountAttribute($value): float { return floatval($value); } /** * 总提转入金额 * * @param $value * @return float */ public function getPresentInAmountAttribute($value): float { return floatval($value); } /** * 总提转出金额 * * @param $value * @return float */ public function getPresentOutAmountAttribute($value): float { return floatval($value); } /** * 第三方总充值点数 * * @param $value * @return float */ public function getThirdRechargeAmountAttribute($value): float { return floatval($value); } /** * 第三方总提现金额 * * @param $value * @return float */ public function getThirdWithdrawAmountAttribute($value): float { return floatval($value); } /** * 币商充值总金额 * * @param $value * @return float */ public function getCoinRechargeAmountAttribute($value): float { return floatval($value); } protected static function booted() { static::updated(function (PlayerExtend $playerExtend) { $columns = [ 'sex', 'email', 'qq', 'telegram', 'birthday', 'id_number', 'address', 'wechat', 'whatsapp', 'facebook', 'line', 'remark', ]; if ($playerExtend->wasChanged($columns) && !empty(Admin::user())) { $orData = $playerExtend->getOriginal(); $changeData = $playerExtend->getChanges(); $orDataArr = []; $newDataArr = []; foreach ($changeData as $key => $item) { if (empty($item) == empty($orData[$key])) { continue; } if ($key == 'updated_at') { $orData[$key] = date('Y-m-d H:i:s', strtotime($orData[$key])); } $orDataArr[$key] = $orData[$key]; $newDataArr[$key] = $item; } if (!empty($newDataArr)) { $playerEditLog = new PlayerEditLog(); $playerEditLog->player_id = $playerExtend->player_id; $playerEditLog->department_id = $playerExtend->player->department_id; $playerEditLog->origin_data = json_encode($orDataArr); $playerEditLog->new_data = json_encode($newDataArr); $playerEditLog->user_id = Admin::id() ?? 0; $playerEditLog->user_name = !empty(Admin::user()) ? Admin::user()->username : ''; $playerEditLog->save(); } } }); } }