engineering/app/adminapi/validate/consult_basic/ConsultProjectValidate.php
2024-03-12 09:19:10 +08:00

216 lines
6.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
}
}