2019-09-06 23:53:10 +08:00

97 lines
4.1 KiB
PHP
Executable File

<?php
namespace wstmart\home\validate;
use think\Validate;
/**
* ============================================================================
* 商品验证器
*/
class Goods extends Validate{
protected $rule = [
['goodsName' ,'require|max:300','请输入商品名称|商品名称不能超过100个字符'],
['goodsImg' ,'require','请上传商品图片'],
['goodsType' ,'in:,0,1','无效的商品类型'],
['goodsSn' ,'checkGoodsSn:1','请输入商品编号'],
['productNo' ,'checkProductNo:1','请输入商品货号'],
['marketPrice' ,'checkMarketPrice:1','请输入市场价格'],
['shopPrice' ,'checkShopPrice:1','请输入店铺价格'],
['goodsUnit' ,'require','请输入商品单位'],
['isSale' ,'in:,0,1','无效的上架状态'],
['isRecom' ,'in:,0,1','无效的推荐状态'],
['isBest' ,'in:,0,1','无效的精品状态'],
['isNew' ,'in:,0,1','无效的新品状态'],
['isHot' ,'in:,0,1','无效的热销状态'],
['isFreeShipping','in:,0,1','无效的包邮状态'],
['goodsCatId' ,'require','请选择完整商品分类'],
['goodsDesc','require','请输入商品描述'],
['specsIds','checkSpecsIds:1','请填写完整商品规格信息']
];
/**
* 检测商品编号
*/
protected function checkGoodsSn($value){
$goodsId = Input('post.goodsId/d',0);
$key = Input('post.goodsSn');
if($key=='')return '请输入商品编号';
$isChk = model('Goods')->checkExistGoodsKey('goodsSn',$key,$goodsId);
if($isChk)return '对不起,该商品编号已存在';
return true;
}
/**
* 检测商品货号
*/
protected function checkProductNo($value){
$goodsId = Input('post.goodsId/d',0);
$key = Input('post.productNo');
if($key=='')return '请输入商品货号';
$isChk = model('Goods')->checkExistGoodsKey('productNo',$key,$goodsId);
if($isChk)return '对不起,该商品货号已存在';
return true;
}
/**
* 检测价格
*/
public function checkMarketPrice(){
$marketPrice = floatval(input('post.marketPrice'));
if($marketPrice<0.01)return '市场价格不能小于0.01';
return true;
}
public function checkShopPrice(){
$shopPrice = floatval(input('post.shopPrice'));
if($shopPrice<0.01)return '店铺价格不能小于0.01';
return true;
}
/**
* 检测商品规格是否填写完整
*/
public function checkSpecsIds(){
$specsIds = input('post.specsIds');
if($specsIds!=''){
$str = explode(',',$specsIds);
$specsIds = [];
foreach ($str as $v){
$vs = explode('-',$v);
foreach ($vs as $vv){
if(!in_array($vv,$specsIds))$specsIds[] = $vv;
}
}
//检测规格名称是否填写完整
foreach ($specsIds as $v){
if(input('post.specName_'.$v)=='')return '请填写完整商品规格值';
}
//检测销售规格是否完整
foreach ($str as $v){
if(input('post.productNo_'.$v)=='')return '请填写完整商品销售规格-货号';
if(input('post.marketPrice_'.$v)=='')return '请填写完整商品销售规格-市场价';
if(floatval(input('post.marketPrice_'.$v))<0.01)return '商品销售规格-市场价不能小于0.01';
if(input('post.specPrice_'.$v)=='')return '请填写完整商品销售规格-本店价';
if(floatval(input('post.specPrice_'.$v))<0.01)return '商品销售规格-本店价不能小于0.01';
if(input('post.specStock_'.$v)=='')return '请填写完整商品销售规格-库存';
if(intval(input('post.specStock_'.$v))<0)return '商品销售规格-库存不能小于0';
if(input('post.warnStock_'.$v)=='')return '请填写完整商品销售规格-预警库存';
if(intval(input('post.warnStock_'.$v))<0)return '商品销售规格-预警库存不能小于0';
}
if(input('post.defaultSpec')=='')return '请选择推荐规格';
}
return true;
}
}