<?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; } }