216 lines
6.1 KiB
PHP
216 lines
6.1 KiB
PHP
<?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\adminapi\validate\consult_basic;
|
||
|
||
|
||
use app\common\model\consult_basic\ConsultProject;
|
||
use app\common\model\dict\DictData;
|
||
use app\common\validate\BaseValidate;
|
||
|
||
|
||
/**
|
||
* 基本信息验证器
|
||
* Class ConsultProjectValidate
|
||
* @package app\adminapi\validate\consult_basic
|
||
*/
|
||
class ConsultProjectValidate extends BaseValidate
|
||
{
|
||
|
||
/**
|
||
* 设置校验规则
|
||
* @var string[]
|
||
*/
|
||
protected $rule = [
|
||
'id' => 'require|checkData',
|
||
'project_name' => 'require',
|
||
'industry' => 'require|checkIndustry',
|
||
'nature' => 'require|checkNature',
|
||
'build_area' => 'require|checkBuildArea',
|
||
'project_level' => 'require|checkProjectLevel',
|
||
'total_investment' => 'require|float|gt:0',
|
||
'initiation_date' => 'dateFormat:Y-m-d',
|
||
'contract_amount' => 'float|egt:0',
|
||
'consult_start_date' => 'dateFormat:Y-m-d',
|
||
'consult_end_date' => 'dateFormat:Y-m-d',
|
||
'engineering_status' => 'require|checkEngineeringStatus',
|
||
'consult_type' => 'require|checkConsultType',
|
||
'create_user' => 'require',
|
||
'create_time' => 'require|dateFormat:Y-m-d H:i:s',
|
||
'project_archiving' => 'checkProjectArchiving',
|
||
'annex' => 'checkAnnex',
|
||
];
|
||
|
||
|
||
/**
|
||
* 参数描述
|
||
* @var string[]
|
||
*/
|
||
protected $field = [
|
||
'id' => 'id',
|
||
'project_name' => '项目名称',
|
||
'project_code' => '项目编号',
|
||
'industry' => '行业',
|
||
'nature' => '性质',
|
||
'company' => '委托单位',
|
||
'build_area' => '建设区域',
|
||
'address' => '项目地址',
|
||
'project_level' => '项目级别',
|
||
'total_investment' => '总投资(万元)',
|
||
'initiation_date' => '立项日期',
|
||
'contract' => '关联合同',
|
||
'contract_amount' => '合同金额',
|
||
'contract_content' => '合同服务内容',
|
||
'project_overview' => '项目规模及概况',
|
||
'consult_content' => '咨询范围',
|
||
'remark' => '备注',
|
||
'consult_start_date' => '咨询开始日期',
|
||
'consult_end_date' => '咨询结束日期',
|
||
'engineering_status' => '工程状态',
|
||
'consult_type' => '咨询类型',
|
||
'telephone' => '联系电话',
|
||
'consult_user' => '委托联系人',
|
||
'supervision_department' => '监管部门',
|
||
'implementation_department' => '实施部门',
|
||
'project_department' => '项目部',
|
||
'project_manager' => '项目负责人员',
|
||
'part_a_unit' => '甲方单位',
|
||
'archiving_directory' => '归档目录',
|
||
'create_user' => '创建人',
|
||
'create_time' => '创建时间',
|
||
];
|
||
|
||
|
||
/**
|
||
* @notes 添加场景
|
||
* @return ConsultProjectValidate
|
||
* @author likeadmin
|
||
* @date 2024/03/11 09:25
|
||
*/
|
||
public function sceneAdd()
|
||
{
|
||
return $this->remove('id',true);
|
||
}
|
||
|
||
|
||
/**
|
||
* @notes 编辑场景
|
||
* @return ConsultProjectValidate
|
||
* @author likeadmin
|
||
* @date 2024/03/11 09:25
|
||
*/
|
||
public function sceneEdit()
|
||
{}
|
||
|
||
|
||
/**
|
||
* @notes 删除场景
|
||
* @return ConsultProjectValidate
|
||
* @author likeadmin
|
||
* @date 2024/03/11 09:25
|
||
*/
|
||
public function sceneDelete()
|
||
{
|
||
return $this->only(['id'])->remove('id','checkData');
|
||
}
|
||
|
||
|
||
/**
|
||
* @notes 详情场景
|
||
* @return ConsultProjectValidate
|
||
* @author likeadmin
|
||
* @date 2024/03/11 09:25
|
||
*/
|
||
public function sceneDetail()
|
||
{
|
||
return $this->only(['id']);
|
||
}
|
||
|
||
public function checkData($value): bool|string
|
||
{
|
||
$data = ConsultProject::where('id',$value)->findOrEmpty();
|
||
if($data->isEmpty()){
|
||
return '数据不存在';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkIndustry($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','supervision_project_industry')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '行业数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkNature($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','supervision_project_nature')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '性质数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkBuildArea($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','supervision_project_build_area')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '建设区域数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkProjectLevel($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','supervision_project_level')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '项目级别数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkEngineeringStatus($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','supervision_project_status')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '工程状态数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkConsultType($value): bool|string
|
||
{
|
||
$dict = DictData::where('type_value','consult_type')->column('value');
|
||
if(!in_array($value,$dict)){
|
||
return '咨询类型数据值无效';
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public function checkProjectArchiving($value): bool|string
|
||
{
|
||
if(empty($value)) return true;
|
||
if(!is_array($value)) return '项目归档数据格式错误';
|
||
$dict = DictData::where('type_value','project_archiving')->column('value');
|
||
foreach($value as $v){
|
||
if(!in_array($v,$dict)){
|
||
return '项目归档数据值无效';
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
} |