GeoConf.php 1.8 KB
<?php
/**
 * Created by PhpStorm.
 * User: zhl
 * Date: 2025/10/22
 * Time: 17:01
 */
namespace App\Models\Geo;

use App\Models\Base;
use App\Models\Manage\ManageHr;
use Illuminate\Support\Facades\Cache;

/**
 * GEO 相关配置
 * Class GeoConf
 * @package App\Models\Geo
 */
class GeoConf extends Base
{
    /**
     * @var string table
     */
    protected $table = 'gl_project_geo_conf';

    /**
     * 保存GEO相关配置
     * @param $project_id
     * @param $manager_id
     * @param $company
     * @param $brand
     * @param $description
     * @param $prefix
     * @param $suffix
     * @return GeoConf
     */
    public static function saveConf($project_id, $manager_id, $company, $brand, $description, $prefix, $suffix)
    {
        $data = self::where(compact('project_id'))->first();
        if (empty($data)) {
            $data = new self();
            $data->project_id = $project_id;
        }
        $data->manager_id = $manager_id;
        $data->company = $company;
        $data->brand = $brand;
        $data->description = $description;
        $data->prefix = $prefix;
        $data->suffix = $suffix;
        $data->save();
        return $data;
    }

    /**
     * GEO 负责人集合
     * TODO 负责人:优化师 + 陶婵 + 艾媛媛
     * @return array
     */
    public static function geoManage()
    {
        $key = 'geo_manage_list_' . date('Ymd');
        $optimize = Cache::get($key);
        if (empty($optimize)) {
            $optimize = ManageHr::where(['status' => ManageHr::STATUS_ONE, 'entry_position' => 46])->pluck('name', 'id')->toArray();
            $optimize[1] = '陶婵';
            $optimize[875] = '艾媛媛';
            ksort($optimize);
            Cache::put($key, $optimize, 3600);
        }
        return $optimize;
    }
}