修改插件
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
yiqiu
2025-11-21 00:01:45 +08:00
parent 7bc68457e9
commit cbd6250967
224 changed files with 61713 additions and 18 deletions

View File

@@ -0,0 +1,71 @@
<?php
namespace addon\idcsmart_ticket\validate;
use addon\idcsmart_ticket\model\IdcsmartTicketTypeModel;
use app\common\model\ProductModel;
use think\Validate;
/**
* @title 工单类型验证
* @description 接口说明:工单类型验证
*/
class TicketDeliveryValidate extends Validate
{
protected $rule = [
'id' => 'require',
'ticket_type_id' => 'require|checkTicketTypeId:thinkphp',
'product_ids' => 'require|array|checkProductIds:thinkphp',
'product_id' => 'require|checkProductId:thinkphp',
];
protected $message = [
];
protected $scene = [
'create' => ['ticket_type_id','product_ids'],
'update' => ['id','ticket_type_id','product_id'],
];
protected function checkTicketTypeId($value)
{
$IdcsmartTicketTypeModel = new IdcsmartTicketTypeModel();
$exist = $IdcsmartTicketTypeModel->find($value);
if (empty($exist)){
return 'ticket_type_is_not_exist';
}
return true;
}
protected function checkProductIds($value)
{
$ProductModel = new ProductModel();
foreach ($value as $item){
$product = $ProductModel->find($item);
if (empty($product)){
return 'product_is_not_exist';
}
}
return true;
}
protected function checkProductId($value)
{
$ProductModel = new ProductModel();
$product = $ProductModel->find($value);
if (empty($product)){
return 'product_is_not_exist';
}
return true;
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace addon\idcsmart_ticket\validate;
use think\Validate;
/**
* @title 工单状态验证
* @description 接口说明:工单状态验证
*/
class TicketStatusValidate extends Validate
{
protected $rule = [
'id' => 'require',
'name' => 'require|max:255',
'color' => 'require|max:255',
'status' => 'require|in:0,1',
];
protected $message = [
'name.require' => 'ticket_status_name_require',
'name.max' => 'ticket_status_name_max',
'color.require' => 'ticket_status_color_require',
'color.max' => 'ticket_status_color_max',
'status.require' => 'ticket_status_status_require',
'status.in' => 'ticket_status_status_in',
];
protected $scene = [
'create' => ['name','color','status'],
'update' => ['id','name','color','status'],
];
}

View File

@@ -0,0 +1,42 @@
<?php
namespace addon\idcsmart_ticket\validate;
use app\admin\model\AdminRoleModel;
use app\admin\model\AdminModel;
use think\Validate;
/**
* @title 工单类型验证
* @description 接口说明:工单类型验证
*/
class TicketTypeValidate extends Validate
{
protected $rule = [
'id' => 'require',
'name' => 'require|max:150|unique:addon_idcsmart_ticket_type,name',
'admin_id' => 'require|array|checkAdmin:thinkphp',
];
protected $message = [
'name.require' => 'ticket_type_name_require',
'name.max' => 'ticket_type_name_require_max',
'name.unique' => 'ticket_type_already_exist',
'admin_id.require' => 'ticket_type_admin_require',
'admin_id.array' => 'ticket_type_admin_require',
'admin_id.checkAdmin' => 'ticket_type_admin_not_found',
];
protected $scene = [
'create' => ['name','admin_id'],
'update' => ['id','name','admin_id'],
];
protected function checkAdmin($value)
{
$admin = AdminModel::whereIn('id', $value)->column('id');
return count($admin) == count($value);
}
}

View File

@@ -0,0 +1,131 @@
<?php
namespace addon\idcsmart_ticket\validate;
use addon\idcsmart_ticket\model\IdcsmartTicketModel;
use addon\idcsmart_ticket\model\IdcsmartTicketTypeModel;
use app\admin\model\AdminModel;
use app\admin\model\AdminRoleModel;
use app\common\model\ClientModel;
use app\common\model\HostModel;
use think\Validate;
/**
* @title 工单验证
* @description 接口说明:工单验证
*/
class TicketValidate extends Validate
{
protected $rule = [
'id' => 'require',
'client_id' => 'require|checkClient:thinkphp',
'title' => 'require|max:150',
'ticket_type_id' => 'require|checkTicketType:thinkphp',
'content' => 'max:3000',
'host_ids' => 'array|checkHostIds:thinkphp',
'attachment' => 'array',
'admin_id' => 'require|integer',
];
protected $message = [
'title.require' => 'ticket_title_require',
'title.max' => 'ticket_title_max',
'ticket_type_id.require' => 'ticket_type_id_require',
'content.max' => 'ticket_content_max',
'host_ids.array' => 'param_error',
'attachment.array' => 'param_error',
];
protected $scene = [
'create' => ['title','ticket_type_id','content','host_ids','attachment'],
'create_admin' => ['client_id','title','ticket_type_id','content','host_ids','attachment'],
'update_status' => ['ticket_type_id'],
'forward' => ['admin_id','ticket_type_id'],
];
# 工单回复验证
public function sceneReply()
{
return $this->only(['id','content','attachment'])
->append('content','require');
}
protected function checkTicketType($value,$rule,$data)
{
// 下游传递,不做验证
if (isset($data['is_downstream']) && $data['is_downstream']==1){
return true;
}
$IdcsmartTicketTypeModel = new IdcsmartTicketTypeModel();
$exist = $IdcsmartTicketTypeModel->find($value);
if (empty($exist)){
return lang_plugins('ticket_type_id_error');
}else {
return true;
}
}
protected function checkHostIds($value,$rule,$data)
{
// 20240122 my必传hostIds
if (class_exists('server\idcsmart_common_finance\model\IdcsmartCommonSonHost')){
if (empty($value)){
return lang_plugins('ticket_host_select');
}
}
$clientId = $data['client_id']??get_client_id();
$id = $data['id']??0;
$IdcsmartTicketModel = new IdcsmartTicketModel();
$ticket = $IdcsmartTicketModel->find($id);
if (!empty($ticket)){
$clientId = $ticket['client_id'];
}
$HostModel = new HostModel();
foreach ($value as $item){
$exist = $HostModel->where('client_id',$clientId)
->where('id',$item)
->find();
if (empty($exist) || $exist['is_delete']){
return lang_plugins('ticket_host_is_not_exist');
}
}
return true;
}
protected function checkClient($value)
{
$ClientModel = new ClientModel();
$client = $ClientModel->find($value);
if (empty($client)){
return lang_plugins('client_is_not_exist');
}
return true;
}
// protected function checkAdmin($value,$rule,$data)
// {
// $AdminModel = new AdminModel();
// $admin = $AdminModel->alias('a')
// ->leftJoin('admin_role_link arl','arl.admin_id=a.id')
// ->where('a.id',$value)
// ->where('arl.admin_role_id',$data['admin_role_id'])
// ->find();
// if (empty($admin)){
// return lang_plugins('admin_is_not_exist');
// }
// return true;
// }
}