Browse Source

Merge branch 'service_evaluate' into develop

# Conflicts:
#	app/Listener/ValidatorFactoryResolvedListener.php
master
weigang 5 years ago
parent
commit
f222eb47b6
  1. 34
      app/Listener/ValidatorFactoryResolvedListener.php
  2. 4
      app/Request/EvaluateRequest.php

34
app/Listener/ValidatorFactoryResolvedListener.php

@ -2,6 +2,7 @@
namespace App\Listener;
use Hyperf\DbConnection\Db;
use Hyperf\Event\Contract\ListenerInterface;
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
use Hyperf\Validation\Event\ValidatorFactoryResolved;
@ -37,7 +38,7 @@ class ValidatorFactoryResolvedListener implements ListenerInterface
});
// 注册了 strlen 验证器规则
// 注册了 strlen 验证器规则,参数是min,max,最小长度和最大长度
$validatorFactory->extend('strlen', function ($attribute, $value, $parameters, $validator) {
return mb_strlen($value)>=$parameters[0] && mb_strlen($value)<=$parameters[1];
});
@ -72,5 +73,36 @@ class ValidatorFactoryResolvedListener implements ListenerInterface
});
// 注册了 exists_enable 验证器规则,参数是table,field,where1,where2...
$validatorFactory->extend('exists_enable', function ($attribute, $value, $parameters, $validator) {
// 查询
$builder = Db::table($parameters[0])->where($parameters[1], '=', $value);
$whereArr = array_slice($parameters,2);
if (!empty($whereArr)) {
foreach ($whereArr as $key => $where) {
$builder->whereRaw($where);
}
}
return $builder->exists();
});
// 注册了 not_equal 验证器规则,参数是anotherfield,table,primary_field,foreign_field
// 要排除对比的字段请求参数名、表名、本参数对应表id、比较字段
$validatorFactory->extend('not_equal', function ($attribute, $value, $parameters, $validator) {
// 获取比较字段参数值
$foreignValue = $validator->getData()[$parameters[0]];
// 查询
$builder = Db::table($parameters[1])
->where($parameters[2], '=', $value)
->where($parameters[3], '!=', $foreignValue)
;
return $builder->exists();
});
}
}

4
app/Request/EvaluateRequest.php

@ -27,7 +27,7 @@ class EvaluateRequest extends FormRequest
'c_quality' => 'required|nonempty|integer',
'content' => 'required|nonempty|strlen:15,150',
'user_id' => 'required|nonempty|integer|exists:ims_cjdc_user,id',
'service_personnel_id' => 'required|nonempty|integer|exists:lanzu_service_personnel,id',
'service_personnel_id' => 'required|nonempty|integer|exists_enable:lanzu_service_personnel,id,status=1|not_equal:user_id,lanzu_service_personnel,id,user_id',
'market_id' => 'required|nonempty|integer|exists:ims_cjdc_market,id',
];
}
@ -39,6 +39,8 @@ class EvaluateRequest extends FormRequest
'service_personnel_id.exists' => ':attribute不存在',
'market_id.exists' => ':attribute不存在',
'user_id.*' => ':attribute信息不正确',
'service_personnel_id.exists_enable' => ':attribute不存在或被禁用',
'service_personnel_id.not_equal' => ':attribute不能是自己',
'service_personnel_id.*' => ':attribute信息不正确',
'market_id.*' => ':attribute信息不正确',
'c_attitude.*' => ':attribute信息不正确',

Loading…
Cancel
Save