You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.7 KiB

<?php
namespace app\api\validate;
use think\Validate;
class Goods extends Validate
{
/**
* 验证规则.
*/
protected $rule = [
'page|页数' => 'number',
'limit|条数' => 'number',
'goods_name|商品名称' => 'max:20',
'user_isli|用户ISLI标识码' => 'require',
'goods_isli|商品ISLI标识码' => 'require',
'goods_num|商品数量' => 'require|number|>:0',
'use_years|使用年限' => 'require|number|>:0',
// 'platform' => '、require|number|in:1,2',
// 'hot' => 'require|number|in:1,2',
// 'hotsale' => 'require|number|in:1,2',
'source_type' => 'max:20',
'entrust_time' => 'checkDateTime',
'record_type' => 'number|in:1,2',
'entrust_user_name' => 'max:30',
'authorization' => 'number|in:1,2',
'pay_type' => 'number|in:1,2',
'entrust_name' => 'max:300',
'type' => 'require|in:1,2,3',
'goods_status' => 'checkStatusStr',
'createtime' => 'checkDateTime',
];
/**
* 提示消息.
*/
protected $message = [
];
/**
* 字段描述.
*/
protected $field = [
];
/**
* 验证场景.
*/
protected $scene = [
'list' => ['page', 'limit', 'goods_name'],
'addShoppingCar' => ['user_isli', 'goods_isli', 'use_years'],
'delShoppingCar' => ['user_isli', 'goods_isli'],
'addCarGoodsCount' => ['user_isli', 'goods_isli'],
'decCarGoodsCount' => ['user_isli', 'goods_isli'],
'getShoppingCar' => ['user_isli'],
'getTypeGoods' => ['type'],
'searchGoods' => ['entrust_time', 'record_type', 'entrust_user_name', 'authorization', 'pay_type', 'entrust_name', 'source_type', 'goods_status', 'page', 'limit'],
];
function checkDateTime($value){
if(!is_array($value)){
return "时间格式为数组";
}
if(count($value) != 2){
return "时间数组错误";
}
if(!isset($value[0]) || !isset($value[1]) || empty($value[0]) || empty($value[1])){
return "时间数组错误";
}
if(strtotime($value[0]) == false || strtotime($value[1]) == false){
return "格式错误";
}
return true;
}
function checkStatusStr($value){
if(empty($value)){
return true;
}
if(!is_string($value)){
return "格式错误";
}
$arr = explode(',', $value);
if(count($arr) <= 0){
return "数据错误";
}
foreach($arr as $val){
if(!preg_match("/^\d*$/" , $val)){
return "需为数字";
}
}
return true;
}
}