Skip to content

Commit 3bdb091

Browse files
committedDec 24, 2022
更新:优化缓存,删除不必要代码
·
v2.7.7v2.1.7
1 parent ab6f522 commit 3bdb091

File tree

8 files changed

+77
-152
lines changed

8 files changed

+77
-152
lines changed
 

‎app/Plugins/Core/helpers.php

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -39,63 +39,9 @@ function super_avatar($user_data): string
3939
}
4040

4141
if (! function_exists('avatar')) {
42-
function avatar(int | string $user_id, $class = null): string
42+
function avatar($user_data): string
4343
{
44-
$time = get_options('core_user_def_avatar_cache', 600);
45-
if (get_options('core_user_avatar_cache', '1') === '1') {
46-
if (cache()->has('core.avatar.' . $user_id)) {
47-
$ud = cache()->get('core.avatar.' . $user_id);
48-
} else {
49-
$ud = \App\Plugins\User\src\Models\User::query()->where('id', $user_id)->first();
50-
cache()->set('core.avatar.' . $user_id, $ud, $time);
51-
}
52-
} else {
53-
$ud = \App\Plugins\User\src\Models\User::query()->where('id', $user_id)->first();
54-
}
55-
56-
if ($ud->avatar) {
57-
return <<<HTML
58-
<span class="avatar {$class}" style="background-image: url({$ud->avatar})">
59-
</span>
60-
HTML;
61-
}
62-
63-
if (get_options('core_user_def_avatar', 'gavatar') !== 'ui-avatars') {
64-
$url = get_options('theme_common_gavatar', 'https://cn.gravatar.com/avatar/') . md5($ud->email);
65-
} else {
66-
$url = 'https://ui-avatars.com/api/?background=random&format=svg&name=' . $ud->username;
67-
}
68-
return <<<HTML
69-
<span class="avatar {$class}" style="background-image: url({$url})"></span>
70-
HTML;
71-
}
72-
}
73-
74-
if (! function_exists('avatar_url')) {
75-
function avatar_url(int $user_id): string
76-
{
77-
$time = get_options('core_user_def_avatar_cache', 600);
78-
if (get_options('core_user_avatar_cache', '1') === '1') {
79-
if (cache()->has('core.avatar.' . $user_id)) {
80-
$ud = cache()->get('core.avatar.' . $user_id);
81-
} else {
82-
$ud = \App\Plugins\User\src\Models\User::query()->where('id', $user_id)->first();
83-
cache()->set('core.avatar.' . $user_id, $ud, $time);
84-
}
85-
} else {
86-
$ud = \App\Plugins\User\src\Models\User::query()->where('id', $user_id)->first();
87-
}
88-
89-
if ($ud->avatar) {
90-
return $ud->avatar;
91-
}
92-
93-
if (get_options('core_user_def_avatar', 'gavatar') !== 'ui-avatars') {
94-
$url = get_options('theme_common_gavatar', 'https://cn.gravatar.com/avatar/') . md5($ud->email);
95-
} else {
96-
$url = 'https://ui-avatars.com/api/?background=random&format=svg&name=' . $ud->username;
97-
}
98-
return $url;
44+
return super_avatar($user_data);
9945
}
10046
}
10147

‎app/Plugins/User/resources/views/fans.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<div class="col-md-6 col-lg-3">
3636
<div class="border-0 card">
3737
<div class="card-body p-4 text-center">
38-
{!! avatar($value->fans->id,"avatar-xl mb-3 avatar-rounded") !!}
38+
<span class="avatar avatar-xl mb-3 avatar-rounded" style="background-image: url({{super_avatar($value->fans)}})"></span>
3939
<h3 class="m-0 mb-1">
4040
<a href="/users/{{$value->fans->username}}.html">{{$value->fans->username}}</a>
4141
</h3>

‎app/Plugins/User/resources/views/group_data.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<div class="col-md-6" style="margin-bottom:5px">
4242
<div class="row">
4343
<div class="col-auto">
44-
{!! avatar($value->id) !!}
44+
<span class="avatar" style="background-image: url({{super_avatar($value)}})"></span>
4545
</div>
4646
<div class="col">
4747
<a href="/users/{{$value->username}}.html" class="text-body d-block text-truncate"><b>{{$value->username}}</b></a>

‎app/Plugins/User/resources/views/list.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<div class="col-md-6 col-lg-3">
3737
<div class="border-0 card">
3838
<div class="card-body p-4 text-center">
39-
{!! avatar($value->id,"avatar-xl mb-3 avatar-rounded") !!}
39+
<span class="avatar avatar-xl mb-3 avatar-rounded" style="background-image: url({{super_avatar($value)}})"></span>
4040
<h3 class="m-0 mb-1">
4141
<a href="/users/{{$value->username}}.html">{{$value->username}}</a>
4242
</h3>

‎app/Plugins/User/src/Auth.php

Lines changed: 69 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
<?php
22

3+
declare(strict_types=1);
4+
/**
5+
* This file is part of zhuchunshu.
6+
* @link https://github.com/zhuchunshu
7+
* @document https://github.com/zhuchunshu/super-forum
8+
* @contact laravel@88.com
9+
* @license https://github.com/zhuchunshu/super-forum/blob/master/LICENSE
10+
*/
311
namespace App\Plugins\User\src;
412

513
use App\Plugins\User\src\Event\AfterLogin;
@@ -14,131 +22,112 @@
1422

1523
class Auth
1624
{
17-
1825
public function SignIn(string $email, string $password): bool
1926
{
2027
if (! User::query()->where('email', $email)->count()) {
2128
return false;
2229
}
2330
// 数据库里的密码
2431
$user_id = User::query()->where('email', $email)->first()->id;
25-
$user = User::query()->find($user_id);
26-
32+
$user = User::query()->find($user_id);
33+
2734
if (Hash::check($password, $user->password)) {
2835
$token = Str::random(17);
2936
session()->set('auth', $token);
30-
if(!(new UserAuth())->create($user->id,$token)){
31-
return false;
37+
if (! (new UserAuth())->create($user->id, $token)) {
38+
return false;
3239
}
33-
session()->set("auth_data",User::query()->where("id",$this->id())->with("Class")->first());
34-
session()->set("auth_data_class",UserClass::query()->where("id",auth()->data()->class_id)->first());
35-
session()->set("auth_data_options",UsersOption::query()->where("id",auth()->data()->options_id)->first());
36-
EventDispatcher()->dispatch(new AfterLogin($user));
40+
EventDispatcher()->dispatch(new AfterLogin($user));
41+
return true;
42+
}
43+
return false;
44+
}
45+
46+
// 刷新登陆
47+
public function refresh(int $id): bool
48+
{
49+
if (! User::query()->where('id', $id)->count()) {
50+
return false;
51+
}
52+
// 数据库里的密码
53+
$user = User::query()->find($id);
54+
$token = Str::random(17);
55+
session()->set('auth', $token);
56+
(new UserAuth())->create($user->id, $token);
57+
EventDispatcher()->dispatch(new AfterLogin($user));
58+
return true;
59+
}
60+
61+
public function SignInUsername(string $username, string $password): bool
62+
{
63+
if (! User::query()->where('username', $username)->count()) {
64+
return false;
65+
}
66+
// 数据库里的密码
67+
$user = User::query()->where('username', $username)->first();
68+
if (Hash::check($password, $user->password)) {
69+
$token = Str::random(17);
70+
session()->set('auth', $token);
71+
(new UserAuth())->create($user->id, $token);
72+
EventDispatcher()->dispatch(new AfterLogin($user));
3773
return true;
3874
}
3975
return false;
4076
}
41-
42-
// 刷新登陆
43-
public function refresh(int $id): bool
44-
{
45-
if (! User::query()->where('id', $id)->count()) {
46-
return false;
47-
}
48-
// 数据库里的密码
49-
$user = User::query()->find($id);
50-
$token = Str::random(17);
51-
session()->set('auth', $token);
52-
(new UserAuth())->create($user->id,$token);
53-
session()->set("auth_data",User::query()->where("id",$this->id())->with("Class")->first());
54-
session()->set("auth_data_class",UserClass::query()->where("id",auth()->data()->class_id)->first());
55-
session()->set("auth_data_options",UsersOption::query()->where("id",auth()->data()->options_id)->first());
56-
EventDispatcher()->dispatch(new AfterLogin($user));
57-
return true;
58-
}
59-
60-
public function SignInUsername(string $username, string $password): bool
61-
{
62-
if (! User::query()->where('username', $username)->count()) {
63-
return false;
64-
}
65-
// 数据库里的密码
66-
$user = User::query()->where('username', $username)->first();
67-
if (Hash::check($password, $user->password)) {
68-
$token = Str::random(17);
69-
session()->set('auth', $token);
70-
(new UserAuth())->create($user->id,$token);
71-
session()->set("auth_data",User::query()->where("id",$this->id())->with("Class")->first());
72-
session()->set("auth_data_class",UserClass::query()->where("id",auth()->data()->class_id)->first());
73-
session()->set("auth_data_options",UsersOption::query()->where("id",auth()->data()->options_id)->first());
74-
EventDispatcher()->dispatch(new AfterLogin($user));
75-
return true;
76-
}
77-
return false;
78-
}
7977

80-
public function token(){
81-
if($this->check()===true){
82-
return session()->get("auth",null);
78+
public function token()
79+
{
80+
if ($this->check() === true) {
81+
return session()->get('auth', null);
8382
}
8483
return null;
8584
}
8685

8786
public function logout(): bool
8887
{
89-
EventDispatcher()->dispatch(new Logout($this->id()));
88+
EventDispatcher()->dispatch(new Logout($this->id()));
9089
(new UserAuth())->destroy_token(session()->get('auth'));
9190
session()->remove('auth');
92-
session()->remove('auth_data_class');
93-
session()->remove('auth_data_options');
94-
session()->remove('auth_data');
9591
return true;
9692
}
9793

98-
public function data()
94+
public function data(): \Hyperf\Database\Model\Collection|\Hyperf\Database\Model\Model|array|\Hyperf\Database\Model\Builder|null
9995
{
100-
if(!session()->has("auth_data")){
101-
session()->set("auth_data",User::query()->where("id",$this->id())->with("Class")->first());
102-
}
103-
return session()->get("auth_data");
96+
return User::query()->find($this->id());
10497
}
10598

106-
public function Class(){
107-
if(!session()->has("auth_data_class")){
108-
session()->set("auth_data_class",UserClass::query()->where("id",auth()->data()->class_id)->first());
109-
}
110-
return session()->get("auth_data_class");
111-
}
112-
113-
public function Options(){
114-
if(!session()->has("auth_data_options")){
115-
session()->set("auth_data_options",UsersOption::query()->where("id",auth()->data()->options_id)->first());
116-
}
117-
return session()->get("auth_data_options");
99+
public function Class(): \Hyperf\Database\Model\Model|\Hyperf\Database\Model\Builder|null
100+
{
101+
return UserClass::query()->where('id', auth()->data()->class_id)->first();
118102
}
119103

120-
public function UpdateClass(){
121-
session()->set("auth_data_class",UserClass::query()->where("id",auth()->data()->class_id)->first());
104+
public function Options(): \Hyperf\Database\Model\Model|\Hyperf\Database\Model\Builder|null
105+
{
106+
return UsersOption::query()->where('id', auth()->data()->options_id)->first();
122107
}
123108

124-
public function UpdateOptions(){
125-
session()->set("auth_data_options",UsersOption::query()->where("id",auth()->data()->options_id)->first());
126-
}
127109

110+
/**
111+
* get user id.
112+
* @return int
113+
*/
128114
public function id()
129115
{
130-
return (int)@UsersAuth::query()->where("token",session()->get('auth'))->first('user_id')->user_id;
116+
return (int) @UsersAuth::query()->where('token', session()->get('auth'))->first('user_id')->user_id;
131117
}
132118

119+
/**
120+
* check is login.
121+
*/
133122
public function check(): bool
134123
{
135-
if(!session()->has('auth')){
124+
if (! session()->has('auth')) {
136125
return false;
137126
}
138-
if(User::query()->where("id",$this->id())->count()){
127+
if (User::query()->where('id', $this->id())->count()) {
139128
return true;
140129
}
141130

142131
return false;
143132
}
144-
}
133+
}

‎app/Plugins/User/src/Controller/ApiController.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,6 @@ public function up_file(FileUpload $uploader)
6969
return $data;
7070
}
7171

72-
#[PostMapping(path: '/api/user/@user_list')]
73-
public function user_list(): array
74-
{
75-
$data = User::query()->select('username', 'id')->get();
76-
$arr = [];
77-
foreach ($data as $key => $value) {
78-
$arr[$key] = ['value' => '@' . $value->username, 'html' => '<img src="' . avatar_url($value->id) . '" alt="' . $value->username . '"/> ' . $value->username];
79-
}
80-
return $arr;
81-
}
8272

8373
#[PostMapping(path: '/api/user/@has_user_username/{username}')]
8474
public function has_user_username($username): array

‎app/Themes/CodeFec/resources/views/topic/show/include/footer.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class="hvr-icon-bounce cursor-pointer text-muted" data-bs-toggle="tooltip" data-
6666
@if($i<=5)
6767
<span data-bs-toggle="modal" data-bs-target="#topic-updated"
6868
class="avatar avatar-sm avatar-rounded"
69-
style="--tblr-avatar-size:25px;background-image:url({{avatar_url($v->user_id)}})"></span>
69+
style="--tblr-avatar-size:25px;background-image:url({{super_avatar($v->user)}})"></span>
7070
@php
7171
$i++;
7272
@endphp
@@ -97,7 +97,7 @@ class="avatar avatar-sm avatar-rounded"
9797
<li>
9898
<div class="list-timeline-icon"><!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->
9999
<!-- SVG icon code -->
100-
<a href="/users/{{$value->user->username}}.html" class="avatar avatar-rounded" style="background-image: url('{{avatar_url($value->user_id)}}')"></a>
100+
<a href="/users/{{$value->user->username}}.html" class="avatar avatar-rounded" style="background-image: url('{{super_avatar($value->user)}}')"></a>
101101
</div>
102102
<div class="list-timeline-content">
103103
<div class="list-timeline-time">{{format_date($value->created_at)}}</div>

‎app/Themes/CodeFec/resources/views/user/setting/common.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
<div class="card-title">修改头像</div>
7171
<div class="mb-3">
7272
<label class="form-label">当前头像
73-
<div>{!! avatar(auth()->data()->id) !!}</div>
73+
<div><span class="avatar" style="background-image: url({{super_avatar(auth()->data())}})"></span></div>
7474
</label>
7575
</div>
7676
<div class="mb-3">

0 commit comments

Comments
 (0)
Please sign in to comment.