123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace App\Http\Controllers\API;
- use App\Http\Controllers\Controller;
- use App\Http\Requests\API\User\BatchCreateRequest;
- use App\Http\Requests\API\User\CreateOrUpdateRequest;
- use App\Http\Resources\API\UserInfoResource;
- use App\Models\Enums\RequirementStatus;
- use App\Models\Role;
- use App\Models\User;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- class UserController extends Controller
- {
- public function info()
- {
- $user = Auth::user();
- return new UserInfoResource($user);
- }
- public function assignRole(Request $request, string $id)
- {
- $user = User::query()->findOrFail($id);
- $roleName = $request->get('role_name');
- if ($roleName) {
- $role = Role::query()->where("guard_name", "api")->where('name', $roleName)->firstOrFail();
- $user->role_id = $role->id;
- $user->save();
- }
- $roles = $roleName ? [$roleName] : [];
- $user->syncRoles($roles);
- return $this->noContent();
- }
- public function index(){
- $user = User::all();
- return UserInfoResource::collection($user);
- }
- /**
- * add a new User
- * @return \Illuminate\Http\Response
- */
- public function store(CreateOrUpdateRequest $request){
- $password = Hash::make($request->password);
- $user=$request->all();
- $user['password']=$password;
- User::create([
- ...$user,
- 'created_by' => Auth::id(),
- ]);
- // TODO:发送邮箱给目标用户
- return $this->created();
- }
- /**
- * batchCreate User,为ditto时参考上一条
- * @return \Illuminate\Http\Response
- */
- public function batchStore(BatchCreateRequest $request){
- $userData = $request->all();
- DB::transaction(function () use ($userData) {
- foreach ($userData as $k => $data) {
- $user = new User();
- if ($k != 0) {
- $userData[$k]["department_id"] = $userData[$k]["department_id"] == 'ditto' ? $userData[$k - 1]["department_id"] : $userData[$k]["department_id"];
- $userData[$k]["role_id"] = $userData[$k]["role_id"] == 'ditto' ? $userData[$k - 1]["role_id"] : $userData[$k]["role_id"];
- }
- $userData[$k]['password'] = Hash::make($userData[$k]['password']);
- $user->fill([
- ...$userData[$k],
- 'created_by' => Auth::id(),
- ]);
- // TODO:发送邮箱给目标用户
- $user->save();
- }
- });
- // TODO:发送邮箱给目标用户
- return $this->created();
- }
- public function destroy(string $id)
- {
- }
- public function show(string $id)
- {
- }
- public function update(CreateOrUpdateRequest $request, string $id)
- {
- }
- }
|