Browse Source

新增验证规则

master
weigang 5 years ago
parent
commit
10e3056f50
  1. 26
      app/Listener/ValidatorFactoryResolvedListener.php
  2. 2
      app/Middleware/Auth/ApiMiddleware.php
  3. 12
      app/Request/StoreApplyEntryRequest.php
  4. 28
      app/Service/StoreService.php

26
app/Listener/ValidatorFactoryResolvedListener.php

@ -4,6 +4,7 @@ namespace App\Listener;
use Hyperf\DbConnection\Db;
use Hyperf\Event\Contract\ListenerInterface;
use Hyperf\HttpMessage\Upload\UploadedFile;
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
use Hyperf\Validation\Event\ValidatorFactoryResolved;
@ -110,12 +111,15 @@ class ValidatorFactoryResolvedListener implements ListenerInterface
});
// 注册了 file_different 验证器规则
// file_different:field 两文件字段不能是同一个文件
$validatorFactory->extend('file_different', function ($attribute, $value, $parameters, $validator) {
// 注册了 file_different_if_file 验证器规则
// file_different_if_file:field 两文件字段不能是同一个文件
$validatorFactory->extend('file_different_if_file', function ($attribute, $value, $parameters, $validator) {
// 获取比较字段参数值
$anotherFile = $validator->getData()[$parameters[0]];
if (!($value instanceof UploadedFile && $anotherFile instanceof UploadedFile)) {
return true;
}
return md5_file($value->getRealPath()) !== md5_file($anotherFile->getRealPath());
});
@ -126,5 +130,21 @@ class ValidatorFactoryResolvedListener implements ListenerInterface
return boolval(preg_match('/^1[3-9]\d{9}$/', $value));
});
// 注册了 image_if_file 验证器规则
// 如果是文件就必须是图片类型的
$validatorFactory->extend('image_if_file', function ($attribute, $value, $parameters, $validator) {
if (!($value instanceof UploadedFile)) {
return true;
}
$rules = $validator->getRules();
$rules[$attribute] = ['image'];
$validator->setRules($rules);
return $validator->passes();
});
}
}

2
app/Middleware/Auth/ApiMiddleware.php

@ -39,7 +39,7 @@ class ApiMiddleware implements MiddlewareInterface
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
if (env('APP_ENV') == 'dev') {
if (env('APP_ENV') == 'dev'||env('APP_ENV') == 'local') {
return $handler->handle($request);
}

12
app/Request/StoreApplyEntryRequest.php

@ -30,10 +30,10 @@ class StoreApplyEntryRequest extends FormRequest
'details' => 'required|nonempty',
'link_name' => 'required|nonempty',
'link_tel' => 'required|nonempty|tel',
'logo' => 'required|nonempty|file|image',
'fm_img' => 'required|nonempty|file|image|file_different:zm_img',
'zm_img' => 'required|nonempty|file|image|file_different:fm_img',
'yyzz' => 'required|nonempty|file|image',
'logo' => 'required|nonempty|image_if_file',
'fm_img' => 'required|nonempty|image_if_file|file_different_if_file:zm_img',
'zm_img' => 'required|nonempty|image_if_file|file_different_if_file:fm_img',
'yyzz' => 'required|nonempty|image_if_file',
'user_id' => 'required|nonempty|integer',
'rz_time' => 'required|nonempty|integer',
'mm_user_id' => 'nonempty|integer',
@ -48,10 +48,10 @@ class StoreApplyEntryRequest extends FormRequest
'logo.image' => ':attribute不是正常的图片',
'logo.*' => ':attribute未选择',
'fm_img.image' => ':attribute不是正常的图片',
'fm_img.file_different' => '身份证正反面不能相同',
'fm_img.file_different_if_file' => '身份证正反面不能相同',
'fm_img.*' => ':attribute未选择',
'zm_img.image' => ':attribute不是正常的图片',
'zm_img.file_different' => '身份证正反面不能相同',
'zm_img.file_different_if_file' => '身份证正反面不能相同',
'zm_img.*' => ':attribute未选择',
'yyzz.image' => ':attribute不是正常的图片',
'yyzz.*' => ':attribute未选择',

28
app/Service/StoreService.php

@ -8,6 +8,7 @@ use App\Model\Store;
use App\TaskWorker\SSDBTask;
use Hyperf\DbConnection\Db;
use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpMessage\Upload\UploadedFile;
use Hyperf\Utils\ApplicationContext;
use League\Flysystem\Filesystem;
@ -31,10 +32,21 @@ class StoreService implements StoreServiceInterface
try {
// 文件上传
$logo = $this->attachmentService->formUpload($data['logo'], 'storelogo', $this->filesystem);
$fm_img = $this->attachmentService->formUpload($data['fm_img'], 'idcard', $this->filesystem);
$zm_img = $this->attachmentService->formUpload($data['zm_img'], 'idcard', $this->filesystem);
$yyzz = $this->attachmentService->formUpload($data['yyzz'], 'storelicense', $this->filesystem);
if ($data['logo'] instanceof UploadedFile) {
$data['logo'] = $this->attachmentService->formUpload($data['logo'], 'storelogo', $this->filesystem);
}
if ($data['fm_img'] instanceof UploadedFile) {
$data['fm_img'] = $this->attachmentService->formUpload($data['fm_img'], 'idcard', $this->filesystem);
}
if ($data['zm_img'] instanceof UploadedFile) {
$data['zm_img'] = $this->attachmentService->formUpload($data['zm_img'], 'idcard', $this->filesystem);
}
if ($data['yyzz'] instanceof UploadedFile) {
$data['yyzz'] = $this->attachmentService->formUpload($data['yyzz'], 'storelicense', $this->filesystem);
}
// 商户信息入库(需审核)
$store = Store::query()->updateOrCreate(
@ -49,10 +61,10 @@ class StoreService implements StoreServiceInterface
'link_name' => $data['link_name'],
'link_tel' => $data['link_tel'],
'tel' => $data['link_tel'],
'logo' => $logo,
'fm_img' => $fm_img,
'zm_img' => $zm_img,
'yyzz' => $yyzz,
'logo' => $data['logo'],
'fm_img' => $data['fm_img'],
'zm_img' => $data['zm_img'],
'yyzz' => $data['yyzz'],
'user_id' => $data['user_id'],
'sq_id' => $data['user_id'],
'admin_id' => $data['user_id'],

Loading…
Cancel
Save