97 lines
4.1 KiB
PHP
Executable File
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;
|
|
}
|
|
} |