64 lines
2.0 KiB
PHP
64 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace app\api\validate;
|
|
|
|
use app\common\basics\Validate;
|
|
use app\common\enum\OrderInvoiceEnum;
|
|
|
|
/**
|
|
* 下单时订单发票验证
|
|
* Class OrderInvoiceValidate
|
|
* @package app\api\validate
|
|
*/
|
|
class PlaceOrderInvoiceValidate extends Validate
|
|
{
|
|
|
|
protected $rule = [
|
|
'type' => 'require', // 发票类型
|
|
'header_type' => 'require|checkHeaderType',// 抬头类型
|
|
'name' => 'require',// 抬头名称
|
|
'email' => 'require',// 邮箱
|
|
|
|
'duty_number' => 'requireIf:header_type,'. OrderInvoiceEnum::HEADER_TYPE_COMPANY,// 税号 (企业类型必填)
|
|
'address' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 企业地址(专票类型必填)
|
|
'mobile' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 企业电话(专票类型必填)
|
|
'bank' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 快狐银行(专票类型必填)
|
|
'bank_account' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 银行账号(专票类型必填)
|
|
];
|
|
|
|
|
|
protected $message = [
|
|
'type.require' => '请选择发票类型',
|
|
'header_type.require' => '请选择抬头类型',
|
|
'name.require' => '请填写抬头名称',
|
|
'email.require' => '请填写邮箱',
|
|
|
|
'duty_number.requireIf' => '请填写税号',
|
|
'address.requireIf' => '请填写企业地址',
|
|
'mobile.requireIf' => '请填写企业电话',
|
|
'bank.requireIf' => '请填写开户银行',
|
|
'bank_account.requireIf' => '请填写银行账号',
|
|
];
|
|
|
|
|
|
/**
|
|
* @notes 校验
|
|
* @param $value
|
|
* @param $rule
|
|
* @param $data
|
|
* @return bool|string
|
|
* @author 段誉
|
|
* @date 2022/4/11 17:17
|
|
*/
|
|
protected function checkHeaderType($value, $rule, $data)
|
|
{
|
|
if ($value == OrderInvoiceEnum::HEADER_TYPE_PERSONAL && $data['type'] == OrderInvoiceEnum::TYPE_SPEC) {
|
|
return '专用发票抬头类型仅支持企业';
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
}
|