| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 | <?phpnamespace app\admin\service\sys_manage;use app\model\SysConfig;use support\Db;use support\Request;class ConfigService{    public static function configList(Request $request)    {        $page = $request->get('page', 1);        $pageSize = $request->get('pageSize', 20);        $keyword = $request->get('keyword', '');        $rows = SysConfig::select('*')            ->when($keyword != '', function ($query) use ($keyword) {                $query->where('config_name', 'like', '%' . $keyword . '%');            })            ->orderBy('config_sort', 'DESC')            ->forPage($page, $pageSize)            ->get()            ->toArray();        $total = SysConfig::when($keyword != '', function ($query) use ($keyword) {            $query->where('config_name', 'like', '%' . $keyword . '%');        })->count();        return json_success('', compact('rows', 'page', 'pageSize', 'total'));    }    public static function configInfo($id)    {        $config = SysConfig::where('config_id', $id)->first();        if (!$config) {            return json_fail('配置不存在');        }        return json_success('', $config->toArray());    }    /**     * @Desc 添加配置     * @Author Gorden     * @Date 2024/2/22 15:57     *     * @param $params     * @return \support\Response     */    public static function addConfig($params)    {        try {            $data = [                'config_status' => $params['config_status'],                'config_category' => $params['config_category'],                'config_key' => $params['config_key'],                'config_name' => $params['config_name'],                'config_alias' => $params['config_alias'],                'config_value' => $params['config_value'],                'config_value_json' => !empty($params['config_value_json']) ? $params['config_value_json'] : '{}',                'config_sort' => $params['config_sort'] ?? 0,                'config_groupby' => $params['config_groupby'] ?? '',                'config_remark' => isset($params['config_remark']) ? format_string($params['config_remark']) : '',                'config_extend_json' => !empty($params['config_extend_json']) ? $params['config_extend_json'] : '{}',                'config_addtimes' => time()            ];            SysConfig::insert($data);        } catch (\Exception $e) {            return json_fail('添加配置失败');        }        return json_success('添加配置成功');    }    /**     * @Desc 修改配置     * @Author Gorden     * @Date 2024/2/22 16:24     *     * @param $id     * @param $params     * @return \support\Response     */    public static function updateConfig($id, $params)    {        try {            $data = [                'config_status' => $params['config_status'],                'config_category' => $params['config_category'],                'config_key' => $params['config_key'],                'config_name' => $params['config_name'],                'config_alias' => $params['config_alias'],                'config_value' => $params['config_value'],                'config_value_json' => !empty($params['config_value_json']) ? $params['config_value_json'] : '{}',                'config_sort' => $params['config_sort'],                'config_groupby' => $params['config_groupby'],                'config_remark' => format_string($params['config_remark']),                'config_extend_json' => !empty($params['config_extend_json']) ? $params['config_extend_json'] : '{}',            ];            SysConfig::where('config_id', $id)->update($data);        } catch (\Exception $e) {            return json_fail('修改配置失败');        }        return json_success('修改配置成功');    }    /**     * @Desc 配置修改     * @Author Gorden     * @Date 2024/2/22 16:38     *     * @param $id     * @param $params     * @return \support\Response     */    public static function updateStatus($id, $params)    {        try {            SysConfig::where('config_id', $id)->update(['config_status' => $params['config_status']]);        } catch (\Exception $e) {            return json_fail('配置状态修改失败');        }        return json_success('配置状态修改成功');    }    /**     * @Desc 删除字段     * @Author Gorden     * @Date 2024/2/22 15:08     *     * @param $id     * @return \support\Response     */    public static function delConfig(Request $request)    {        $ids = $request->post('config_id');        if (!$ids) {            return json_fail("数据错误");        }        try {            if (is_array($ids)) {                SysConfig::whereIn('config_id', $ids)->delete();            } else {                SysConfig::where('config_id', $ids)->delete();            }        } catch (\Exception $e) {            return json_fail('配置删除失败');        }        return json_success('配置删除成功');    }    /**     * @Desc APP 参数读取     * @Author Gorden     * @Date 2024/4/15 13:54     *     * @param $type     * @return \support\Response|void     */    public static function getParams($type)    {        if ($type == 'sys') {            $res = SysConfig::where('config_key', 'app-name')                ->orWhere('config_key', 'app-version')                ->orWhere('config_key', 'app-common-css')                ->orWhere('config_key', 'app-license')                ->orWhere('config_key', 'app-hide')                ->get()                ->toArray();            $data = [];            foreach ($res as $item) {                $key = str_replace('-', '_', $item['config_key']);                $data[$key] = $item['config_value'];            }            return json_success('', $data);        } else {            $res = SysConfig::where('config_key', $type)->select('config_status', 'config_value_json', 'config_key', 'config_value')->first();            if (!empty($res)) {                $res = $res->toArray();                $valueJson = json_decode($res['config_value_json'], true);                if (!in_array($res['config_key'], ['app-menu-shortcut', 'app-menu-navigation', 'app-menu-footer'])) {                    $data['status'] = $res['config_status'];                    $data['config_name'] = $res['config_value'];                    foreach ($valueJson as $key => $item) {                        $key = str_replace('-', '_', $key);                        $data[$key] = $item;                    }                } else {                    $data = $valueJson;                }                return json_success('', $data);            }        }    }    public static function paramsSave(Request $request, $type)    {        $params = $request->post();        try {            Db::beginTransaction();            if ($params['type'] == 'sys') {                SysConfig::where('config_key', 'app-name')->update(['config_value' => $params['app_name']]);                SysConfig::where('config_key', 'app-version')->update(['config_value' => $params['app_version']]);                SysConfig::where('config_key', 'app-common-css')->update(['config_value' => $params['app_common_css']]);                SysConfig::where('config_key', 'app-license')->update(['config_value' => $params['app_license']]);                SysConfig::where('config_key', 'app-hide')->update(['config_value' => $params['app_hide']]);            } else if (!in_array($params['type'], ['shortcutMenu', 'navigationMenu', 'footerMenu'])) {                $data = [                    'config_status' => $params['status'],                    'config_value' => $params['config_name'],                ];                unset($params['status'], $params['type'], $params['config_name']);                $data['config_value_json'] = json_encode($params);                SysConfig::where('config_key', $type)->update($data);            } else {                foreach ($params['config_value_json'] as $item) {                    unset($item['isSet']);                    $data['config_value_json'][] = $item;                }                SysConfig::where('config_key', $type)->update($data);            }            Db::commit();            return json_success('success');        } catch (\Exception $e) {            Db::rollBack();            return json_fail('保存失败');        }    }}
 |