From cf537656bdac5f9798f1f18eb2b0f5d903dcca2b Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Sat, 8 Oct 2022 17:43:37 +0800 Subject: [PATCH] user --- src/Form/BalanceForm.php | 6 +++--- src/Http/Admin/UserController.php | 34 +++++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/Form/BalanceForm.php b/src/Form/BalanceForm.php index d067926..09cebcd 100644 --- a/src/Form/BalanceForm.php +++ b/src/Form/BalanceForm.php @@ -50,9 +50,9 @@ class BalanceForm extends Form implements LazyRenderable public function form() { $this->display('balance'); - $this->number('amount', '数量')->help('正数为增加, 负数为减少')->default(0)->required(); - $this->text('cate', '分类')->required(); - $this->text('description', '描述')->required(); + $this->number('amount', __('dcat-admin-user::user-balance.fields.amount'))->help('正数为增加, 负数为减少')->default(0)->required(); + $this->text('cate', __('dcat-admin-user::user-balance.fields.cate'))->required(); + $this->text('description', __('dcat-admin-user::user-balance.fields.description'))->required(); } public function default() diff --git a/src/Http/Admin/UserController.php b/src/Http/Admin/UserController.php index 128bd00..9f2b9cb 100644 --- a/src/Http/Admin/UserController.php +++ b/src/Http/Admin/UserController.php @@ -17,7 +17,6 @@ use Dcat\Admin\Widgets\Table; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use Peidikeji\User\Models\User; -use Peidikeji\User\Models\UserSocialite; use Illuminate\Support\Str; use Peidikeji\User\Action\ShowBalance; use Peidikeji\User\Action\ShowPassword; @@ -104,6 +103,12 @@ class UserController extends AdminController $form->hidden('inviter_path'); $form->hidden('invite_code'); + $form->disableCreatingCheck(); + $form->disableEditingCheck(); + $form->disableViewCheck(); + $form->disableDeleteButton(); + $form->disableViewButton(); + $form->saving(function (Form $form) { $form->inviter_path = $form->inviter_id ? User::where('id', $form->inviter_id)->value('inviter_path') . $form->inviter_id.'-' : '-'; if ($form->isCreating() && !$form->invite_code) { @@ -117,18 +122,35 @@ class UserController extends AdminController $form->deleting(function (Form $form) { $data = $form->model()->toArray(); $ids = array_column($data, 'id'); - // 删除用户的登录信息 - UserSocialite::whereIn('user_id', $ids)->delete(); foreach($ids as $id) { $current = User::findOrFail($id); - // 删除用户的邀请信息 + // 用户订单 + if (method_exists($current, 'orders') && $current->orders()->count() > 0) { + return $form->response()->error('请先删除用户的订单'); + } + // 用户优惠券 + if (method_exists($current, 'coupons') && $current->coupons()->effective()->count() > 0) { + return $form->response()->error('请先删除用户的优惠券'); + } + // 用户收货地址 + $current->addresses()->delete(); + // 用户余额流水 + if ($current->balance > 0) { + return $form->response()->error('用户余额不为0, 无法删除'); + } + $current->balanceLogs()->delete(); + // 用户邀请记录 $users = User::where('inviter_path', 'like', '%-'.$id.'-%')->get(); foreach($users as $user) { $user->inviter_path = str_replace('-'.$id.'-', '-', $user->inviter_path); - $ids = explode('-', $user->inviter_path); - $user->inviter_id = count($ids) > 2 ? $ids[count($ids) - 2] : null; + $inviteIds = explode('-', $user->inviter_path); + $user->inviter_id = count($inviteIds) > 2 ? $inviteIds[count($ids) - 2] : null; $user->save(); } + // 用户第三方登录信息 + $current->socialites()->delete(); + // 用户登录授权记录 + $current->tokens()->delete(); } }); });