|
@@ -2,13 +2,21 @@
|
|
|
|
|
|
namespace App\Modules\Admin\Services;
|
|
|
|
|
|
+use App\Exceptions\ClientException;
|
|
|
use App\Models\User;
|
|
|
+use Illuminate\Database\Eloquent\Builder;
|
|
|
|
|
|
class UserService
|
|
|
{
|
|
|
public function paginate($data)
|
|
|
{
|
|
|
- $p = User::query()->orderByDesc("id")->paginate($data['page_size']);
|
|
|
+ $p = User::query()->with("group")->when($data['status'], function (Builder $query) use ($data) {
|
|
|
+ return $query->where("status", $data['status']);
|
|
|
+ })->when($data['userinfo'], function (Builder $query) use ($data) {
|
|
|
+ return $query->where(function (Builder $query) use ($data) {
|
|
|
+ return $query->where("phone", $data['userinfo'])->orWhere("email", $data['userinfo'])->orWhere("id", $data['userinfo']);
|
|
|
+ });
|
|
|
+ })->orderByDesc("id")->paginate($data['page_size']);
|
|
|
|
|
|
return [
|
|
|
"total" => $p->total(),
|
|
@@ -20,7 +28,11 @@ class UserService
|
|
|
"email" => $u->email,
|
|
|
"status" => $u->status,
|
|
|
"created_at" => $u->created_at->format("Y-m-d"),
|
|
|
+ //@TODO kphcdr
|
|
|
"company" => "todo company",
|
|
|
+ "group_id" => $u->group_id,
|
|
|
+ "group_name" => $u->group->name,
|
|
|
+ 'permissions' => [],
|
|
|
];
|
|
|
}, $p->items()),
|
|
|
];
|
|
@@ -29,8 +41,22 @@ class UserService
|
|
|
public function changeStatus($data)
|
|
|
{
|
|
|
$u = User::findOrFail($data['id']);
|
|
|
+ if ($u->id == \Auth::id()) {
|
|
|
+ throw new ClientException("你不能禁用自己的账号");
|
|
|
+ }
|
|
|
$u->status = $u->status == User::STATUS_OK ? User::STATUS_STOP : User::STATUS_OK;
|
|
|
$u->save();
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ public function saveSetting($data)
|
|
|
+ {
|
|
|
+ $u = User::findOrFail($data['id']);
|
|
|
+ $u->group_id = $data['group_id'];
|
|
|
+ if ($data['password']) {
|
|
|
+ $u->password = $u->hashPassword($data['password']);
|
|
|
+ }
|
|
|
+ $u->save();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|