群控系统服务端开发模式-应用开发-系统配置开发

其实在前面的章节中就已经提到过系统配置开发这块,包括建表及数据层开发都已完毕《群控系统服务端开发模式-应用开发-业务架构逻辑开发BaseAPI继续开发一》,今天在这里只要把系统配置控制层及验证层开发完毕就可以咯。

一、路由配置

**因它是固定数据,所以只有读取与保存这两个接口。**在根目录下的route文件夹中的app.php文件中,具体如下代码:

    //上传配置
    Route::post('system/get_info','param.System/getInfo');// 获取上传配置参数数据
    Route::post('system/save_info','param.System/saveInfo');// 保存上传配置参数数据

二、控制层开发

在根目录下的app文件夹下的controller文件夹中,创建文件夹并命名param,在param文件夹中接着创建上传参数控制器并命名为System。具体代码如下:

<?php
/**
 * 系统参数控制管理
 * User: 龙哥·三年风水
 * Date: 2024/11/1
 * Time: 16:19
 */
namespace app\controller\param;
use app\controller\Base;
use app\model\param\System as SystemModel;
class System extends Base
{
    // 获取上传参数
    public function getInfo(){
        if($this->request->param('id') != 1)return err('请求参数错误');//验证请求参数
        $resSystem = SystemModel::dataFind(['id' => 1],'website_name,website_describe,website_keyword,security_password,checked_backend_log,website_filing_applica,platform_token_expira');
        return succ('操作成功',$resSystem);
    }

    // 保存上传参数
    public function saveInfo(){
        $param = $this->request->param();
        $validate = new \app\validate\param\System;
        if(!$validate->check($param)) return err($validate->getError());
        SystemModel::save([
            'website_name' => $param['website_name'],
            'website_describe' => $param['website_describe'],
            'website_keyword' => $param['website_keyword'],
            'security_password' => $param['security_password'],
            'checked_backend_log' => $param['checked_backend_log'],
            'website_filing_applica' => $param['website_filing_applica'],
            'platform_token_expira' => (int)$param['platform_token_expira'],
        ],[['id','=',1]]);
        return succ('操作成功', []);
    }
}

三、验证层开发

在根目录下app文件夹下validate文件夹中创建文件夹并命名为param,在param文件夹中创建图片格式验证文件并命名为System。具体代码如下:

<?php
/**
 * 系统参数验证管理
 * User: 龙哥·三年风水
 * Date: 2024/11/1
 * Time: 16:23
 */
namespace app\validate\param;
use app\validate\Tools;
class System extends Tools
{
    protected $rule = [
        'id' => 'require|number',
        'website_name' => 'require|length:3,50',
        'website_describe' => 'require|length:3,250',
        'website_keyword' => 'require|length:3,120',
        'security_password' => 'require|length:8,20',
        'checked_backend_log' => 'require|url',
        'website_filing_applica' => 'require|length:3,250',
        'platform_token_expira' => 'require|integer|checkStep:60'
    ];
    protected $message = [
        'id.require' => '编号必须填写',
        'id.number' => '编号必须是数字类型',
        'website_name.require' => '网站名称必须填写',
        'website_name.length' => '网站名称必须是3到50位之间',
        'website_describe.require' => '网站描述必须填写',
        'website_describe.length' => '网站描述必须是3到250位之间',
        'website_keyword.require' => '网站关键字必须填写',
        'website_keyword.length' => '网站关键字必须是3到120位之间',
        'security_password.require' => '二次安全密码必须填写',
        'security_password.length' => '二次安全密码必须是8到20位之间',
        'checked_backend_log.require' => '网站后端LOG必须填写',
        'checked_backend_log.url' => '网站后端LOG必须完整的路径',
        'website_filing_applica.require' => '网站备案申明必须填写',
        'website_filing_applica.length' => '网站备案申明必须是3到250位之间',
        'platform_token_expira.require' => '网站过期时间必须填写',
        'platform_token_expira.integer' => '网站过期时间必须是正整数'
    ];
}

四、提前说明

下一篇将开发文件上传工厂。

相关推荐
Data跳动1 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
Java程序之猿2 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰3 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn5 小时前
Hadoop yarn安装
大数据·hadoop·分布式
Smile灬凉城6666 小时前
反序列化为啥可以利用加号绕过php正则匹配
开发语言·php
NiNg_1_2346 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
隔着天花板看星星7 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
奥顺7 小时前
PHPUnit使用指南:编写高效的单元测试
大数据·mysql·开源·php
黑客Jack9 小时前
网络安全加密
安全·web安全·php
技术路上的苦行僧12 小时前
分布式专题(8)之MongoDB存储原理&多文档事务详解
数据库·分布式·mongodb