123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <?php
- namespace App\Distributor\Repositories;
- use App\Models\SmmUserAccount as Model;
- use Carbon\Carbon;
- use Dcat\Admin\Repositories\EloquentRepository;
- class SmmUserAccount extends EloquentRepository
- {
- /**
- * Model.
- *
- * @var string
- */
- protected $eloquentClass = Model::class;
- /**
- * 插入新的社媒账号(仅在找到对应社媒时插入)
- *
- * @param string $mediaName 要查找的社媒名称
- * @param string $accountName 要插入的账号名称
- * @param string $accessToken 访问令牌
- * @return Model|null 新创建的模型实例或null
- */
- public static function createAccountIfMediaExists($mediaName, $accountId,$accountName, $accessToken,$expiresAt,$refreshToken = '',$backupField1 = '')
- {
- $model = new Model();
- // 查找匹配的社媒记录
- $mediaRecord = $model->where('name', $mediaName)->first();
- if (!$mediaRecord) {
- return null;
- }
- // 查找是否存在相同的账号
- $userRow = $model->where('account_id', $accountId)->first();
- if ($userRow) {
- $userRow->access_token = $accessToken;
- $userRow->expires_at = $expiresAt;
- $userRow->name = $accountName;
- $userRow->refresh_token = $refreshToken;
- $userRow->backup_field1 = $backupField1;
- $userRow->save();
- } else {
- // 创建新账号并关联父级
- $data = [
- 'account_id' => $accountId,
- 'name' => $accountName,
- 'access_token' => $accessToken,
- 'expires_at' => $expiresAt,
- 'parent_id' => $mediaRecord->id,
- 'dist_id' => getDistributorId(),
- 'created_at' => Carbon::now(), // 自动生成时间戳
- 'updated_at' => Carbon::now(),
- 'refresh_token' => $refreshToken,
- 'backup_field1' => $backupField1, //备用字段
- ];
- $model->insert($data);
- }
- return true;
- }
- /*
- * 查出dist_id=0和parent_id=0的账号
- */
- public static function getRootAccounts()
- {
- $model = new Model();
- $accounts = $model->where('dist_id', 0)->where('parent_id', 0)->get();
- return $accounts;
- }
- /*
- * 查找所有用户账号(只显示有效的账号)
- */
- public static function getUserAccounts()
- {
- $model = new Model();
- $accounts = $model->where('dist_id','>', 0)->where('parent_id','>',0)->where('expires_at','>', Carbon::now())->orderBy('parent_id', 'asc')->get();
- return $accounts;
- }
- /*
- * 查找所有用户账号
- */
- public static function getAccountsByIds($ids)
- {
- $model = new Model();
- $accounts = $model->whereIn('id', $ids)->get();
- return $accounts;
- }
- public static function getAccountById($id)
- {
- $model = new Model();
- $account = $model->find($id);
- return $account;
- }
- /*
- * 返回子账号数量
- */
- public static function returnChildCount($id)
- {
- $model = new Model();
- $count = $model->where('parent_id', $id)->count();
- return $count;
- }
- public static function getYoutubeCategory()
- {
- $model = new Model();
- $categories = $model->where('name', 'YouTube')->first();
- $categories = json_decode($categories->backup_field1,true);
- return $categories;
- }
- }
|