SmmUserAccountController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace App\Distributor\Controllers;
  3. use App\Distributor\Actions\SmmAddAccount;
  4. use App\Distributor\Repositories\SmmUserAccount;
  5. use App\Services\SmmService;
  6. use Carbon\Carbon;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Show;
  10. use Dcat\Admin\Http\Controllers\AdminController;
  11. use Dcat\Admin\Layout\Content;
  12. use Dcat\Admin\Admin;
  13. use Illuminate\Http\Request;
  14. use Illuminate\Support\Facades\Session;
  15. class SmmUserAccountController extends AdminDistController
  16. {
  17. /**
  18. * page index
  19. */
  20. public function index(Content $content)
  21. {
  22. // $imgPath = storage_path('app/ssm/1/fc15428f68ea8157bb0c4ea80cfb38d0.png');
  23. // $ssmService = new SmmService('facebook');
  24. // $result = $ssmService->postImage('This is a test image', $imgPath);
  25. //
  26. // exit;
  27. return $content
  28. ->header('帐号管理')
  29. ->description('全部')
  30. ->body($this->grid());
  31. }
  32. /**
  33. * Make a grid builder.
  34. *
  35. * @return Grid
  36. */
  37. protected function grid()
  38. {
  39. return Grid::make(new SmmUserAccount(), function (Grid $grid) {
  40. //指定视图,去掉删除按钮
  41. $grid->view('admin.grid.table');
  42. $grid->disableRowSelector(); // 关键代码
  43. $grid->column('id')->width(80);
  44. $grid->column('name')->tree()->display(function ($name) {
  45. $num = SmmUserAccount::returnChildCount($this->id);
  46. if ($this->parent_id == 0) {
  47. if ($num > 0) {
  48. return $name . '<span class="badge" style="background:#21b978;margin-left:5px">'. $num. '</span>';
  49. }
  50. }
  51. return $name;
  52. });
  53. $grid->column('account_id');
  54. $grid->column('expires_at');
  55. $grid->column('created_at')->sortable();
  56. $grid->column('status')->display(function ($name) {
  57. if ($this->parent_id > 0) {
  58. //如果当前时间大于过期时间,则显示过期
  59. if (Carbon::now() > $this->expires_at) {
  60. return '<span class="label" style="background-color:#f56c6c;color:#fff">过期</span>';
  61. } else {
  62. return '<span class="label" style="background-color:#21b978;color:#fff">正常</span>';
  63. }
  64. }
  65. });
  66. $grid->filter(function (Grid\Filter $filter) {
  67. $filter->panel();
  68. $filter->expand();
  69. $filter->like('name')->width(2);
  70. });
  71. // 传入数组
  72. $grid->rightTools([
  73. // new SmmAddAccount(),
  74. ]);
  75. $grid->actions(function (Grid\Displayers\Actions $actions) {
  76. $actions->disableEdit();
  77. $actions->disableQuickEdit();
  78. $actions->disableView();
  79. $dist_id = $actions->row->dist_id;
  80. if ($dist_id == 0) {
  81. $actions->append(new SmmAddAccount());
  82. $actions->disableDelete();
  83. } else {
  84. if (Carbon::now() > $actions->row->expires_at) {
  85. $parentAccount = SmmUserAccount::getAccountById($actions->row->parent_id);
  86. $smmAddAccount = new SmmAddAccount();
  87. $smmAddAccount->setData(admin_trans_label('reauthorization'),$parentAccount->name);
  88. $actions->append($smmAddAccount);
  89. }
  90. }
  91. });
  92. $grid->disableBatchDelete();
  93. $grid->disableCreateButton();
  94. $grid->disableEditButton();
  95. $grid->disableViewButton();
  96. $grid->model()->whereIn('dist_id', [0,getDistributorId()])->orderBy('name', 'asc')->orderBy('id', 'desc');
  97. });
  98. }
  99. /*
  100. * 社媒回调接口
  101. */
  102. public function callback($mediaName,Request $request)
  103. {
  104. try {
  105. $ssmService = new SmmService($mediaName);
  106. $result = $ssmService->loginCallback($request);
  107. if ($result['status']) {
  108. $accessToken = $result['data']['accessToken'];
  109. $expiresAt = $result['data']['accessToken_expiresAt'];
  110. $userName = $result['data']['userName'];
  111. $userId = $result['data']['userId'];
  112. $refreshToken = isset($result['data']['refreshToken']) ? $result['data']['refreshToken'] : '';
  113. SmmUserAccount::createAccountIfMediaExists($mediaName, $userId,$userName, $accessToken,$expiresAt,$refreshToken);
  114. return response()->json(['code' => 1, 'msg' => 'success']);
  115. } else {
  116. return response()->json(['code' => 0,'msg' => $result['data']]);
  117. }
  118. } catch (\Exception $e) {
  119. return response()->json(['code' => 0,'msg' => 'error:'.$e->getMessage()]);
  120. }
  121. }
  122. }