ShareController.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Created by PhpStorm
  4. * DateTime: 2022/11/5 0:31.
  5. *
  6. * @description
  7. */
  8. namespace App\Http\Controllers\V1\Share;
  9. use App\Http\Controllers\V1\Controller;
  10. use App\Models\ShareConfig;
  11. use App\Models\UserWithdraw;
  12. use App\Services\Api\ErrorMsgServive;
  13. use Illuminate\Http\JsonResponse;
  14. class ShareController extends Controller
  15. {
  16. public function income(): JsonResponse
  17. {
  18. // 已提现
  19. $been = UserWithdraw::where('user_id', \user()->id)
  20. ->where('status', 2)
  21. ->sum('price');
  22. // 待打款
  23. $wait = UserWithdraw::where('user_id', \user()->id)
  24. ->where('status', 1)
  25. ->sum('price');
  26. return $this->success([
  27. 'been' => $been,
  28. 'wait' => $wait,
  29. ]);
  30. }
  31. public function tips(): JsonResponse
  32. {
  33. $config = ShareConfig::first();
  34. return $this->success($config->withdraw_desc);
  35. }
  36. public function setting(): JsonResponse
  37. {
  38. $config = ShareConfig::first();
  39. return $this->success($config);
  40. }
  41. public function generateQrcode(): JsonResponse
  42. {
  43. $user = \user();
  44. if (!$user->scene_code || !$user->share_qrcode) {
  45. try {
  46. $app = $this->getUniFactory($user->info->platform);
  47. $user->scene_code = md5(uniqid() . $user->id);
  48. if (1 == $user->info->platform) { // 抖音
  49. $response = $app->generateQrcode();
  50. $filename = public_path('static/qrcode_') . "{$user->scene_code}.png";
  51. file_put_contents($filename, $response[0]);
  52. $user->share_qrcode = save2Oss($filename);
  53. } elseif (2 == $user->info->platform) { // 快手
  54. return $this->error('当前平台不支持');
  55. } elseif (3 == $user->info->platform) { // 微信
  56. $response = $app->mini()->app_code->getUnlimit($user->scene_code, [
  57. 'page' => 'pages/index/index',
  58. 'width' => 600,
  59. ]);
  60. if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
  61. $filename = $response->saveAs(public_path('static'), "{$user->scene_code}.png");
  62. $filename = public_path('static/' . $filename);
  63. $user->share_qrcode = save2Oss($filename);
  64. }
  65. }
  66. $user->save();
  67. } catch (\Exception $ex) {
  68. ErrorMsgServive::write($ex, \request()->url());
  69. return $this->error('生成二维码失败');
  70. }
  71. }
  72. return $this->success(['url' => $user->share_qrcode]);
  73. }
  74. }