pref: 禁用会员记录禁用时间

This commit is contained in:
kuaifan 2022-01-06 13:18:12 +08:00
parent 369e75cb7e
commit 4d9dd13ffb
5 changed files with 77 additions and 24 deletions

View File

@ -316,11 +316,12 @@ class UsersController extends AbstractController
* @apiName searchinfo
*
* @apiParam {Object} keys 搜索条件
* - keys.key 昵称、邮箱
* - keys.key 昵称、邮箱关键字
* - keys.disable 0-排除禁止默认1-含禁止2-仅禁止
* - keys.project_id 在指定项目ID
* - keys.no_project_id 不在指定项目ID
* @apiParam {Object} sorts 排序方式
* - sorts.az 字母
* - sorts.az 字母asc|desc
*
* @apiParam {Number} [take] 获取数量10-100
* @apiParam {Number} [page] 当前页,默认:1赋值分页模式take参数无效
@ -336,28 +337,32 @@ class UsersController extends AbstractController
//
$keys = Request::input('keys');
$sorts = Request::input('sorts');
if (is_array($keys)) {
if ($keys['key']) {
$builder->where(function($query) use ($keys) {
$query->where("email", "like", "%{$keys['key']}%")
->orWhere("nickname", "like", "%{$keys['key']}%");
});
}
if (intval($keys['project_id']) > 0) {
$builder->whereIn('userid', function ($query) use ($keys) {
$query->select('userid')->from('project_users')->where('project_id', $keys['project_id']);
});
}
if (intval($keys['no_project_id']) > 0) {
$builder->whereNotIn('userid', function ($query) use ($keys) {
$query->select('userid')->from('project_users')->where('project_id', $keys['no_project_id']);
});
}
$keys = is_array($keys) ? $keys : [];
$sorts = is_array($sorts) ? $sorts : [];
//
if ($keys['key']) {
$builder->where(function($query) use ($keys) {
$query->where("email", "like", "%{$keys['key']}%")
->orWhere("nickname", "like", "%{$keys['key']}%");
});
}
if (is_array($sorts)) {
if (in_array($sorts['az'], ['asc', 'desc'])) {
$builder->orderBy('az', $sorts['az']);
}
if (intval($keys['disable']) == 0) {
$builder->whereNull("disable_at");
} elseif (intval($keys['disable']) == 2) {
$builder->whereNotNull("disable_at");
}
if (intval($keys['project_id']) > 0) {
$builder->whereIn('userid', function ($query) use ($keys) {
$query->select('userid')->from('project_users')->where('project_id', $keys['project_id']);
});
}
if (intval($keys['no_project_id']) > 0) {
$builder->whereNotIn('userid', function ($query) use ($keys) {
$query->select('userid')->from('project_users')->where('project_id', $keys['no_project_id']);
});
}
if (in_array($sorts['az'], ['asc', 'desc'])) {
$builder->orderBy('az', $sorts['az']);
}
//
if (Request::exists('page')) {
@ -484,10 +489,12 @@ class UsersController extends AbstractController
case 'setdisable':
$upArray['identity'] = array_diff($userInfo->identity, ['disable']);
$upArray['identity'][] = 'disable';
$upArray['disable_at'] = Carbon::now();
break;
case 'cleardisable':
$upArray['identity'] = array_diff($userInfo->identity, ['disable']);
$upArray['disable_at'] = null;
break;
case 'delete':

View File

@ -59,6 +59,7 @@ class User extends AbstractModel
protected $primaryKey = 'userid';
protected $hidden = [
'disable_at',
'updated_at',
];

View File

@ -49,7 +49,7 @@ class FileUsersAddPermission extends Migration
public function down()
{
Schema::table('file_users', function (Blueprint $table) {
//
$table->dropColumn("permission");
});
}
}

View File

@ -0,0 +1,43 @@
<?php
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class UsersAddDisableAt extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$isAdd = false;
Schema::table('users', function (Blueprint $table) use (&$isAdd) {
if (!Schema::hasColumn('users', 'disable_at')) {
$isAdd = true;
$table->timestamp('disable_at')->nullable()->after('created_ip')->comment('禁用时间');
}
});
if ($isAdd) {
User::where("identity", "like", "%,disable,%")->update([
'disable_at' => Carbon::now(),
]);
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn("disable_at");
});
}
}

View File

@ -40,6 +40,7 @@ class UsersTableSeeder extends Seeder
'line_at' => seeders_at('2021-07-01 17:43:48'),
'task_dialog_id' => 18,
'created_ip' => '',
'disable_at' => null,
'created_at' => seeders_at('2021-07-01 11:01:14'),
'updated_at' => seeders_at('2021-07-01 17:43:48'),
),
@ -62,6 +63,7 @@ class UsersTableSeeder extends Seeder
'line_at' => seeders_at('2021-07-01 16:57:40'),
'task_dialog_id' => 16,
'created_ip' => '',
'disable_at' => null,
'created_at' => seeders_at('2021-07-01 11:01:14'),
'updated_at' => seeders_at('2021-07-01 16:58:00'),
),