AyrReleaseController.php 3.6 KB
<?php

namespace App\Http\Controllers\Bside\AyrShare;

use App\Enums\Common\Code;
use App\Helper\AyrShare as AyrShareHelper;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\AyrShare\AyrReleaseLogic;
use App\Http\Logic\Bside\AyrShare\AyrShareLogic;

/**
 * @name:社交发布
 */
class AyrReleaseController extends BaseController
{
    /**
     * @name   :(获取当前用户已绑定的社交链接)info
     * @author :lyh
     * @method :post
     * @time   :2023/5/9 16:00
     */
    public function info(AyrShareLogic $ayrShareLogic){
        $info = $ayrShareLogic->ayr_share_info();
        $this->response('success',Code::SUCCESS,$info);
    }
    /**
     * @name   :(发布社交)send_post
     * @author :lyh
     * @method :post
     * @time   :2023/5/9 9:36
     */
    public function send_post(AyrReleaseLogic $ayrReleaseLogic,AyrShareLogic $ayrShareLogic){
//        DB::beginTransaction();
//        try {
            //获取发送账号详情
            $share_info = $ayrShareLogic->ayr_share_info();
            $data = [
                'images'=>$this->param['image'],
                'files'=>$this->param['file'],
            ];
            //参数处理
            $image_data = $this->image_file_param($data);
            $this->param['mediaUrls'] = array_merge($image_data['images_link'],$image_data['files_link']);
            var_dump($this->param);
            die();
            //统一生成链接
            $param = [
                'post'=>$this->param['content'],
                'platforms'=>$this->param['platforms'],
                'mediaUrls'=>$this->param['mediaUrls'],//参数处理
            ];
            //发送请求注册社交用户
            $ayrShareHelper = new AyrShareHelper();
            $res = $ayrShareHelper->post_send_msg($param,$share_info['profile_key']);
            $this->response('success',Code::SUCCESS,$res);
            //保存数据库
            $ayrReleaseLogic->release_add();
//            DB::commit();
//        }catch (\Exception $e){
//            DB::rollBack();
//            $this->response('error',Code::USER_ERROR);
//        }
    }

    /**
     * @name   :(上传第三方参数参数)get_param
     * @author :lyh
     * @method :post
     * @time   :2023/5/10 10:27
     */
    public function image_file_param($data) {
        if (empty($data) || !is_array($data)) {
            return empty($data) ? is_array($data) ? [] : '' : $data;
        }
        foreach ($data as $k => $v) {
            if (is_array($v)) {
                $data[$k] = $this->_extents($v);
            } else {
                if (is_null($v)) {
                    $data[$k] = '';
                    continue;
                }
                //获取操作人
                switch ((string) $k) {
                    case 'image':
                        $data['image_link'] = url('/b/image/' . $v . '/2');
                        break;
                    case 'images':
                        $v = explode(',',$v);
                        foreach ($v as $k1=>$v1){
                            $data['images_link'][$k1] = url('/b/image/' . $v1 . '/2');
                        }
                        break;
                    case 'file':
                        $data['file_link'] = url('/b/file_hash/' . $v .'/mp4');
                        break;
                    case 'files':
                        $v = explode(',',$v);
                        foreach ($v as $k1=>$v1){
                            $data['files_link'][$k1] = url('/b/file_hash/' . $v1 . '/mp4');
                        }
                        break;
                }
            }
        }
        return $data;
    }
}