1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- 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()->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(),
- "page_total" => $p->lastPage(),
- "list" => array_map(function (User $u) {
- return [
- "id" => $u->id,
- "phone" => $u->phone,
- "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()),
- ];
- }
- 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;
- }
- }
|