4
0
Fork 0
master
panliang 2022-10-08 17:43:37 +08:00
parent 83ac611971
commit cf537656bd
2 changed files with 31 additions and 9 deletions

View File

@ -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()

View File

@ -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();
}
});
});