<?php // +---------------------------------------------------------------------- // | likeadmin快速开发前后端分离管理后台(PHP版) // +---------------------------------------------------------------------- // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力 // | 开源版本可自由商用,可去除界面版权logo // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin // | github下载:https://github.com/likeshop-github/likeadmin // | 访问官网:https://www.likeadmin.cn // | likeadmin团队 版权所有 拥有最终解释权 // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- namespace app\admin\logic; use app\common\logic\BaseLogic; use app\common\model\Config; use app\common\model\dict\DictData; use app\common\service\{FileService, ConfigService}; use think\facade\Db; /** * 配置类逻辑层 * Class ConfigLogic * @package app\admin\logic */ class ConfigLogic extends BaseLogic { /** * @notes 添加配置表 * @param array $params * @return bool * @author admin * @date 2024/06/24 17:52 */ public static function add(array $params): bool { Db::startTrans(); try { Config::create([ 'type' => $params['type'], 'name' => $params['name'], 'value' => $params['value'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑配置表 * @param array $params * @return bool * @author admin * @date 2024/06/24 17:52 */ public static function edit(array $params): bool { Db::startTrans(); try { Config::where('id', $params['id'])->update([ 'type' => $params['type'], 'name' => $params['name'], 'value' => $params['value'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除配置表 * @param array $params * @return bool * @author admin * @date 2024/06/24 17:52 */ public static function delete(array $params): bool { return Config::destroy($params['id']); } /** * @notes 获取配置表详情 * @param $params * @return array * @author admin * @date 2024/06/24 17:52 */ public static function detail($params): array { return Config::findOrEmpty($params['id'])->toArray(); } /** * @notes 获取配置 * @return array * @author 乔峰 * @date 2021/12/31 11:03 */ public static function getConfig(): array { $config = [ // 文件域名 'oss_domain' => FileService::getFileUrl(), // 网站名称 'web_name' => ConfigService::get('website', 'name'), // 网站图标 'web_favicon' => FileService::getFileUrl(ConfigService::get('website', 'web_favicon')), // 网站logo 'web_logo' => FileService::getFileUrl(ConfigService::get('website', 'web_logo')), // 登录页 'login_image' => FileService::getFileUrl(ConfigService::get('website', 'login_image')), // 版权信息 'copyright_config' => ConfigService::get('copyright', 'config', []), ]; return $config; } /** * @notes 根据类型获取字典类型 * @param $type * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 乔峰 * @date 2022/9/27 19:09 */ public static function getDictByType($type) { if (!is_string($type)) { return []; } $type = explode(',', $type); $lists = DictData::whereIn('type_value', $type)->select()->toArray(); if (empty($lists)) { return []; } $result = []; foreach ($type as $item) { foreach ($lists as $dict) { if ($dict['type_value'] == $item) { $result[$item][] = $dict; } } } return $result; } }