UserRepository.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2018/3/14
  6. * Time: 10:01
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Credit;
  10. use App\Models\User;
  11. use App\Models\UserData;
  12. use Carbon\Carbon;
  13. use Illuminate\Support\Facades\Hash;
  14. use Illuminate\Support\Facades\Storage;
  15. use Intervention\Image\Facades\Image;
  16. class UserRepository
  17. {
  18. protected $user;
  19. protected $userData;
  20. public function __construct(User $user, UserData $userData)
  21. {
  22. $this->user = $user;
  23. $this->userData = $userData;
  24. }
  25. public function register($data)
  26. {
  27. $data['password'] = Hash::make($data['password']);
  28. // $data['site_notifications'] = 'answer,follow_user,invite_answer,comment_question,comment_article,adopt_answer,comment_answer,reply_comment';
  29. $data['site_notifications'] = implode(',', array_keys(config('tipask.notification_types')));
  30. $data['email_notifications'] = 'adopt_answer,invite_answer';
  31. $user = $this->user->create($data);
  32. if ($user) {
  33. $userData = [
  34. 'user_id' => $user->id,
  35. 'coins' => 0,
  36. 'credits' => 0,
  37. 'registered_at' => Carbon::now(),
  38. 'last_visit' => Carbon::now(),
  39. 'last_login_ip' => $data['visit_ip'],
  40. ];
  41. if ($user->mobile) {
  42. $userData['mobile_status'] = 1;
  43. }
  44. $this->userData->create($userData);
  45. }
  46. return $user;
  47. }
  48. public function saveRemoteAvatar($userId, $imageUrl)
  49. {
  50. Storage::makeDirectory(User::getAvatarDir($userId));
  51. Image::make($imageUrl)->save(storage_path('app/'.User::getAvatarPath($userId,'origin')));
  52. Image::make(storage_path('app/'.User::getAvatarPath($userId,'origin')))->save(storage_path('app/'.User::getAvatarPath($userId,'big')));
  53. Image::make(storage_path('app/'.User::getAvatarPath($userId,'origin')))->save(storage_path('app/'.User::getAvatarPath($userId,'middle')));
  54. Image::make(storage_path('app/'.User::getAvatarPath($userId,'origin')))->save(storage_path('app/'.User::getAvatarPath($userId,'small')));
  55. }
  56. }