GeoController.php 2.3 KB
<?php
/**
 * Created by PhpStorm.
 * User: zhl
 * Date: 2025/10/23
 * Time: 10:23
 */
namespace App\Http\Controllers\Aside\Geo;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Geo\GeoLogic;
use App\Models\Geo\GeoConf;
use App\Models\Geo\GeoConfirm;
use App\Models\Manage\ManageHr;
use App\Models\Project\KeywordPrefix;
use App\Models\Project\Project;
use App\Models\ProjectAssociation\ProjectAssociation;
use Illuminate\Http\Request;

/**
 * Class GeoController
 * @package App\Http\Controllers\Aside\Geo
 */
class GeoController extends BaseController
{
    public function __construct(Request $request){
        parent::__construct($request);
        $this->logic = new GeoLogic();
    }

    /**
     * 获取GEO相关配置
     * @param Request $request
     */
    public function getConfig()
    {
        $this->request->validate([
            'project_id' => 'required',
        ], [
            'project_id.required' => '项目ID不能为空',
        ]);
        $data = $this->logic->getCongInfo($this->param['project_id']);
        $this->response('success', Code::SUCCESS, $data);
    }

    /**
     * 保存GEO配置
     * TODO 单独保存GEO开启状态, 达标数量
     * @param Request $request
     * @throws \App\Exceptions\AsideGlobalException
     */
    public function saveConfig()
    {
        $this->request->validate([
            'project_id' => 'required',
            'manager_id' => 'nullable|integer',
            'company' => 'nullable|max:200',
            'brand' => 'nullable|max:200',
            'description' => 'nullable|max:500',
        ], [
            'project_id.required' => '项目ID不能为空',
            'manager_id.integer' => '管理员参数非法',
            'company.max' => '公司名称不能超过200个字符',
            'brand.max' => '品牌名不能超过200个字符',
            'description.max' => '描述不能超过500个字符',
        ]);
        $data = $this->logic->saveConfig($this->param);
        $this->response('success', Code::SUCCESS, $data);
    }

    /**
     * @remark :统计数据
     * @name   :getCount
     * @author :lyh
     * @method :post
     * @time   :2025/10/30 10:37
     */
    public function getCount()
    {
        $data = $this->logic->getCount();
        $this->response('success', Code::SUCCESS, $data);
    }
}