MemberController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Services\Api\MemberService;
  5. use App\Services\ConfigService;
  6. use App\Services\RedisService;
  7. use Illuminate\Http\Request;
  8. /**
  9. * 会员管理
  10. * Class MemberController
  11. * @package App\Http\Controllers\Api
  12. */
  13. class MemberController extends webApp
  14. {
  15. /**
  16. * 信息
  17. * @return array
  18. */
  19. public function info()
  20. {
  21. $userId = request()->post('user_id', 0);
  22. $info = MemberService::make()->getInfo($userId ? $userId : $this->userId);
  23. if ($info) {
  24. return showJson(1010, true, $info);
  25. } else {
  26. return showJson(1004, false, [], '403');
  27. }
  28. }
  29. /**
  30. * 设置入口类型
  31. * @return array
  32. */
  33. public function setEntry()
  34. {
  35. $params = request()->all();
  36. try {
  37. if (!MemberService::make()->setEntry($this->userId, $params)) {
  38. return showJson(MemberService::make()->getError(), false);
  39. } else {
  40. return showJson(1013, true);
  41. }
  42. } catch (\Exception $exception) {
  43. $error = env('APP_DEBUG') ? ['data' => $exception->getTrace(), 'err' => $exception->getMessage()] : [];
  44. RedisService::set("caches:members:entryError".$this->userId, ['params'=>$params, 'error'=>$error], 86400);
  45. return showJson(1046, false, $error);
  46. }
  47. }
  48. /**
  49. * 设置地址信息
  50. * @return array
  51. */
  52. public function setArea()
  53. {
  54. $params = request()->all();
  55. try {
  56. if (!MemberService::make()->setArea($this->userId, $params)) {
  57. return showJson(MemberService::make()->getError(), false);
  58. } else {
  59. return showJson(1013, true);
  60. }
  61. } catch (\Exception $exception) {
  62. $error = env('APP_DEBUG') ? ['data' => $exception->getTrace(), 'err' => $exception->getMessage()] : [];
  63. RedisService::set("caches:members:areaError".$this->userId, ['params'=>$params, 'error'=>$error], 86400);
  64. return showJson(1046, false, $error);
  65. }
  66. }
  67. /**
  68. * VIP列表
  69. * @return array
  70. */
  71. public function vipList()
  72. {
  73. $params = request()->all();
  74. $type = isset($params['type']) && $params['type']? $params['type'] : 1;
  75. $datas = MemberService::make()->getVipList($type);
  76. if ($datas) {
  77. return showJson(1010, true, $datas);
  78. } else {
  79. return showJson(1004, false);
  80. }
  81. }
  82. /**
  83. * 更新修改头像
  84. * @return array
  85. */
  86. public function setAvatar(Request $request)
  87. {
  88. // 上传单图统一调取方法
  89. ob_clean();
  90. $result = upload_image($request, 'file', 'avatar');
  91. if (!$result['success']) {
  92. return showJson($result['msg'], false, ['url' => '']);
  93. }
  94. // 文件路径
  95. $file_path = $result['data']['img_path'];
  96. if (!$file_path) {
  97. return showJson('上传失败', false, ['url' => '']);
  98. }
  99. // 网络域名拼接
  100. if ($file_path && strpos($file_path, IMG_URL) === false) {
  101. $file_path = get_image_url($file_path);
  102. }
  103. $avatar = $result['data']['img_path'];
  104. if (MemberService::make()->saveAvatar($this->userId, $avatar)) {
  105. return showJson(1013, true, ['url' => $file_path, 'path' => $avatar]);
  106. } else {
  107. return showJson(1014, false, ['url' => '']);
  108. }
  109. }
  110. /**
  111. * 修改账号信息
  112. * @return array
  113. */
  114. public function modify()
  115. {
  116. $params = request()->all();
  117. if (!MemberService::make()->modify($this->userId, $params)) {
  118. return showJson(MemberService::make()->getError(), false);
  119. } else {
  120. return showJson(1013, true);
  121. }
  122. }
  123. /**
  124. * 购买VIP
  125. * @return array
  126. */
  127. public function vipBuy()
  128. {
  129. try {
  130. $params = request()->all();
  131. if ($result = MemberService::make()->vipBuy($this->userId, $params)) {
  132. return showJson(MemberService::make()->getError(), true, $result);
  133. } else {
  134. return showJson(MemberService::make()->getError(), false);
  135. }
  136. } catch (\Exception $exception){
  137. $error = env('APP_DEBUG')? ['data'=>$exception->getTrace(),'err'=>$exception->getMessage()] : [];
  138. return showJson(1046, false, $error);
  139. }
  140. }
  141. }