123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Distributor\Controllers;
- use App\Distributor\Actions\SmmAddAccount;
- use App\Distributor\Repositories\SmmUserAccount;
- use App\Services\SmmService;
- use Carbon\Carbon;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- use Dcat\Admin\Http\Controllers\AdminController;
- use Dcat\Admin\Layout\Content;
- use Dcat\Admin\Admin;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Session;
- class SmmUserAccountController extends AdminDistController
- {
- /**
- * page index
- */
- public function index(Content $content)
- {
- // $imgPath = storage_path('app/ssm/1/fc15428f68ea8157bb0c4ea80cfb38d0.png');
- // $ssmService = new SmmService('facebook');
- // $result = $ssmService->postImage('This is a test image', $imgPath);
- //
- // exit;
- return $content
- ->header('帐号管理')
- ->description('全部')
- ->body($this->grid());
- }
- /**
- * Make a grid builder.
- *
- * @return Grid
- */
- protected function grid()
- {
- return Grid::make(new SmmUserAccount(), function (Grid $grid) {
- //指定视图,去掉删除按钮
- $grid->view('admin.grid.table');
- $grid->disableRowSelector(); // 关键代码
- $grid->column('id')->width(80);
- $grid->column('name')->tree()->display(function ($name) {
- $num = SmmUserAccount::returnChildCount($this->id);
- if ($this->parent_id == 0) {
- if ($num > 0) {
- return $name . '<span class="badge" style="background:#21b978;margin-left:5px">'. $num. '</span>';
- }
- }
- return $name;
- });
- $grid->column('account_id');
- $grid->column('expires_at');
- $grid->column('created_at')->sortable();
- $grid->column('status')->display(function ($name) {
- if ($this->parent_id > 0) {
- //如果当前时间大于过期时间,则显示过期
- if (Carbon::now() > $this->expires_at) {
- return '<span class="label" style="background-color:#f56c6c;color:#fff">过期</span>';
- } else {
- return '<span class="label" style="background-color:#21b978;color:#fff">正常</span>';
- }
- }
- });
- $grid->filter(function (Grid\Filter $filter) {
- $filter->panel();
- $filter->expand();
- $filter->like('name')->width(2);
- });
- // 传入数组
- $grid->rightTools([
- // new SmmAddAccount(),
- ]);
- $grid->actions(function (Grid\Displayers\Actions $actions) {
- $actions->disableEdit();
- $actions->disableQuickEdit();
- $actions->disableView();
- $dist_id = $actions->row->dist_id;
- if ($dist_id == 0) {
- $actions->append(new SmmAddAccount());
- $actions->disableDelete();
- } else {
- if (Carbon::now() > $actions->row->expires_at) {
- $parentAccount = SmmUserAccount::getAccountById($actions->row->parent_id);
- $smmAddAccount = new SmmAddAccount();
- $smmAddAccount->setData(admin_trans_label('reauthorization'),$parentAccount->name);
- $actions->append($smmAddAccount);
- }
- }
- });
- $grid->disableBatchDelete();
- $grid->disableCreateButton();
- $grid->disableEditButton();
- $grid->disableViewButton();
- $grid->model()->whereIn('dist_id', [0,getDistributorId()])->orderBy('name', 'asc')->orderBy('id', 'desc');
- });
- }
- /*
- * 社媒回调接口
- */
- public function callback($mediaName,Request $request)
- {
- try {
- $ssmService = new SmmService($mediaName);
- $result = $ssmService->loginCallback($request);
- if ($result['status']) {
- $accessToken = $result['data']['accessToken'];
- $expiresAt = $result['data']['accessToken_expiresAt'];
- $userName = $result['data']['userName'];
- $userId = $result['data']['userId'];
- $refreshToken = isset($result['data']['refreshToken']) ? $result['data']['refreshToken'] : '';
- $backupField1 = isset($result['data']['backupField1']) ? $result['data']['backupField1'] : '';
- SmmUserAccount::createAccountIfMediaExists($mediaName, $userId,$userName, $accessToken,$expiresAt,$refreshToken,$backupField1);
- return response()->json(['code' => 1, 'msg' => 'success']);
- } else {
- return response()->json(['code' => 0,'msg' => $result['data']]);
- }
- } catch (\Exception $e) {
- return response()->json(['code' => 0,'msg' => 'error:'.$e->getMessage()]);
- }
- }
- }
|