UserService.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2024/9/27 12:05
  7. */
  8. namespace App\Http\Services\Frontend\Client\Member;
  9. use App\Http\Requests\Request;
  10. use App\Http\Services\Frontend\Client\Common\AuthService;
  11. use App\Http\Services\Service;
  12. use App\Models\Member\Address;
  13. use App\Models\Member\Benefit;
  14. use App\Models\Member\User;
  15. use Endroid\QrCode\Builder\Builder;
  16. use Endroid\QrCode\Writer\PngWriter;
  17. use Illuminate\Support\Facades\Auth;
  18. use Illuminate\Support\Facades\DB;
  19. class UserService extends Service
  20. {
  21. protected array $select_column = ['id', 'mobile', 'nickname', 'avatar', 'name', 'sex', 'birthday', 'mark', 'point','balance'];
  22. public function getUser()
  23. {
  24. $id = Auth::id();
  25. return User::query()->select($this->select_column)->find($id);
  26. }
  27. public function updateUser(array $data): void
  28. {
  29. $id = Auth::id();
  30. $user = self::toModel(['id' => $id, ...$data], User::class);
  31. $user->save();
  32. }
  33. public function delUser(Request $request): void
  34. {
  35. $user = User::query()->find(Auth::id());
  36. $user->delete();
  37. }
  38. public function address()
  39. {
  40. $id = Auth::id();
  41. $where = ['user_id' => $id, 'status' => 1];
  42. $select = ['user_name', 'mobile', 'address', 'lat', 'lng', 'status'];
  43. return Address::query()->where($where)->select($select)->first();
  44. }
  45. public function qrcode(): \Endroid\QrCode\Writer\Result\ResultInterface
  46. {
  47. $id = Auth::id();
  48. $result = Builder::create()
  49. ->writer(new PngWriter())
  50. ->data("https://h5.xiaoding.niusenyun.com?invite={$id}")
  51. ->size(300)
  52. ->margin(10)
  53. ->build();
  54. return $result;
  55. }
  56. public function getBalancePage(): array
  57. {
  58. $id = Auth::id();
  59. $benefitColumn = ['id','type','remark','benefit','balance','created_at'];
  60. $benefitPage = Benefit::query()->where('user_id',$id)->select($benefitColumn)->paginate(10);
  61. return ['list' => $benefitPage->items(), 'total' => $benefitPage->total()];
  62. }
  63. }