WebSettingAmpLogic.php 2.6 KB
<?php

namespace App\Http\Logic\Bside\Setting;

use App\Helper\Arr;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\WebSetting\WebSettingAmp;

class WebSettingAmpLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->model = new WebSettingAmp();
        $this->param = $this->requestAll;
    }

    /**
     * 获取详情
     * @return array
     * @author Akun
     * @date 2024/01/25 15:32
     */
    public function ampInfo()
    {
        $info = $this->model->read(['project_id' => $this->user['project_id']]);
        if ($info === false) {
            return $this->success();
        }
        //log图处理
        $info['top_logo'] = Arr::s2a($info['top_logo']);
        if(!empty($info['top_logo'])){
            $info['top_logo']['url'] = getImageUrl($info['top_logo']['url'], $this->user['storage_type'], $this->user['project_location']);
        }
        //banner处理
        $info['index_banner'] = Arr::s2a($info['index_banner']);
        if (!empty($info['index_banner'])) {
            foreach ($info['index_banner'] as &$v) {
                $v['url'] = getImageUrl($v['url'], $this->user['storage_type'], $this->user['project_location']);
            }
        }
        return $this->success($info);
    }

    /**
     * 保存数据
     * @return array
     * @author Akun
     * @date 2024/01/25 15:33
     */
    public function ampSave()
    {
        try {
            //log图处理
            if (isset($this->param['top_logo']) && $this->param['top_logo']) {
                $this->param['top_logo']['url'] = str_replace_url($this->param['top_logo']['url'] ?? '');
            }
            $this->param['top_logo'] = Arr::a2s($this->param['top_logo'] ?? []);
            //banner处理
            $index_banner = [];
            if (isset($this->param['index_banner']) && $this->param['index_banner']) {
                foreach ($this->param['index_banner'] as $v) {
                    $v['url'] = str_replace_url($v['url'] ?? '');
                    $index_banner[] = $v;
                }
            }
            $this->param['index_banner'] = Arr::a2s($index_banner);

            $info = $this->model->read(['project_id' => $this->user['project_id']]);
            if ($info === false) {
                $this->param['project_id'] = $this->user['project_id'];
                $this->model->add($this->param);
            } else {
                $this->model->edit($this->param, ['project_id' => $this->user['project_id']]);
            }
        } catch (\Exception $e) {
            $this->fail('error');
        }
        return $this->success();
    }
}