Последняя версия с сервера прошлого разработчика
This commit is contained in:
34
app/Domain/Users/DataTransferObjects/UserData.php
Executable file
34
app/Domain/Users/DataTransferObjects/UserData.php
Executable file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace App\Domain\Users\DataTransferObjects;
|
||||
|
||||
use App\Models\User;
|
||||
use Spatie\DataTransferObject\DataTransferObject;
|
||||
|
||||
class UserData extends DataTransferObject
|
||||
{
|
||||
public $id;
|
||||
public $name;
|
||||
public $user_char;
|
||||
public $color;
|
||||
public $photo_path;
|
||||
public $banner_path;
|
||||
public $username;
|
||||
public $private;
|
||||
public $is_auth_user;
|
||||
|
||||
public static function fromModel(User $user)
|
||||
{
|
||||
$idCheck = auth()->user() ? $user->id === auth()->user()->id : false;
|
||||
return new self([
|
||||
'id' => $user->id,
|
||||
'name' => $user->name,
|
||||
'user_char' => $user->user_char,
|
||||
'color' => $user->color,
|
||||
'photo_path' => $user->photo_path,
|
||||
'banner_path' => $user->banner_path,
|
||||
'username' => $user->username,
|
||||
'private' => $user->private,
|
||||
'is_auth_user' => $idCheck,
|
||||
]);
|
||||
}
|
||||
}
|
||||
11
app/Domain/Users/Models/UserPackage.php
Executable file
11
app/Domain/Users/Models/UserPackage.php
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domain\Users\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use App\Models\Model;
|
||||
|
||||
class UserPackage extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
||||
54
app/Domain/Users/Observers/UserObserver.php
Executable file
54
app/Domain/Users/Observers/UserObserver.php
Executable file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domain\Users\Observers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Arr;
|
||||
// use App\Domain\Points\Models\Point;
|
||||
// use App\Domain\Points\Enums\DirectionEnum;
|
||||
|
||||
class UserObserver
|
||||
{
|
||||
public function creating(User $user)
|
||||
{
|
||||
$user->color = $this->generateColors();
|
||||
if(!$user->username){
|
||||
$user->username = 'id_' . uniqid();
|
||||
}
|
||||
}
|
||||
|
||||
public function created(User $user)
|
||||
{
|
||||
// if($user->username != 'inner_systemuser_api'){
|
||||
// $point = new Point;
|
||||
// $point->user_id = $user->id;
|
||||
// $point->point = 100;
|
||||
// $point->type = 'Тестовое пополнение'; //YSV ENUM!
|
||||
// $point->direction = DirectionEnum::COMING();
|
||||
// $point->save();
|
||||
// }
|
||||
}
|
||||
|
||||
public function saving(User $user)
|
||||
{
|
||||
$user->user_char = $this->getChar($user);
|
||||
}
|
||||
|
||||
private function generateColors()
|
||||
{
|
||||
$colors = ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#4caf50', '#8bc34a', '#ffc107', '#ff9800', '#ff5722', '#795548', '#9e9e9e', '#607d8b', '#f44331', '#e91e61', '#9c27b1', '#673ab1', '#3f51b1', '#2196f1', '#03a9f1', '#00bcd1', '#009681', '#4caf51', '#8bc341', '#ffc101', '#ff9801', '#ff5721', '#795541', '#9e9e91', '#607d81'];
|
||||
return Arr::random($colors);
|
||||
}
|
||||
|
||||
private function getChar($user)
|
||||
{
|
||||
$fname = mb_strtoupper($user->first_name);
|
||||
$lname = @$user->last_name;
|
||||
if($lname){
|
||||
$lname = mb_strtoupper($lname);
|
||||
return mb_substr($fname, 0, 1) . mb_substr($lname, 0, 1);
|
||||
}
|
||||
return mb_substr($fname, 0, 1) . mb_substr($fname, 1, 1);
|
||||
}
|
||||
|
||||
}
|
||||
56
app/Domain/Users/Service/ProfileDataService.php
Executable file
56
app/Domain/Users/Service/ProfileDataService.php
Executable file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domain\Users\Service;
|
||||
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class ProfileDataService
|
||||
{
|
||||
public static function get($user)
|
||||
{
|
||||
|
||||
$gues = auth()->user();
|
||||
if($gues){
|
||||
$gues = auth()->user()->id;
|
||||
}else{
|
||||
$gues = null;
|
||||
}
|
||||
|
||||
$user->loadCount(['subscriber_reverse as is_sub' => function (Builder $query) use($gues) {
|
||||
$query->where('user_id', $gues);
|
||||
},'subscribers as is_reader' => function (Builder $query) use($gues) {
|
||||
$query->where('subscriber_id', $gues);
|
||||
}])->withCasts(['is_sub' => 'boolean', 'is_reader' => 'boolean']);
|
||||
|
||||
$is_leader = false;
|
||||
|
||||
if($user->is_sub && auth()->user()){
|
||||
$leader = auth()->user()->subscribers()->where('subscriber_id', $user->id)->first();
|
||||
if($leader){
|
||||
$is_leader = (boolean)$leader->pivot->leader;
|
||||
}
|
||||
}
|
||||
|
||||
$count_feeds = $user->feeds()->count();
|
||||
$count_readable = $user->subscribers()->count();
|
||||
$count_subscribers = $user->subscriber_reverse()->count();
|
||||
|
||||
$is_auth_user = $user->id === $gues;
|
||||
if($is_auth_user){
|
||||
$close_account = false;
|
||||
}else{
|
||||
$close_account = $user->private == true && ($user->is_sub == 0 || $user->is_reader == 0);
|
||||
}
|
||||
|
||||
$object = new \stdClass();
|
||||
$object->user = $user;
|
||||
$object->count_feeds = $count_feeds;
|
||||
$object->count_readable = $count_readable;
|
||||
$object->count_subscribers = $count_subscribers;
|
||||
$object->close_account = $close_account;
|
||||
$object->is_leader = $is_leader;
|
||||
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user