You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php 
 | |
| namespace wstmart\common\validate;
 | |
| use think\Validate;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 店铺验证器
 | |
|  */
 | |
| class Shops extends Validate{
 | |
| 	protected $rule = [
 | |
| 	    //申请入驻
 | |
|         ['shopName'  ,'require','请输入店铺名'],
 | |
|         ['userName'  ,'require|chs','请输入直营人姓名|直营人姓名请输入汉字'],
 | |
|         ['phone'  ,'require','请输入联系电话'],
 | |
|         ['provinceId'  ,'require','请选择省'],
 | |
|         ['cityId'  ,'require','请选择市'],
 | |
|         ['countyId'  ,'require','请选择区县'],
 | |
|         ['townId'  ,'require','请选择乡镇'],
 | |
|         ['villageId'  ,'require','请选择村社区'],
 | |
|         ['shopAddress'  ,'require','请输入店铺地址'],
 | |
|         ['lng'  ,'require','请在地图点击坐标'],
 | |
|         ['lat'  ,'require','请在地图点击坐标'],
 | |
|         ['bankName'  ,'require|chs','请输入银行名|银行名请输入汉字'],
 | |
|         ['accountName'  ,'require|chs','请输入开户名|开户名请输入汉字'],
 | |
|         ['bankNo'  ,'require','请输入银行卡号'],
 | |
|         ['idCardFrontImg'  ,'require','请上传身份证正面照'],
 | |
|         ['idCardBackImg'  ,'require','请上传身份证反面照'],
 | |
|         ['commissionImg'  ,'require','请上传直营人委托书照片'],
 | |
|         ['businessLicenceImg'  ,'require','请上传手持身份证和营业执照,背影为店铺照片'],
 | |
|         ['confirmationImg'  ,'require','请上传确认书照片'],
 | |
| 
 | |
|         //上传产品
 | |
|         ['goodsName'  ,'require','请输入产品名'],
 | |
|         ['largeCat'  ,'require|number','请选择一级分类|请选择一级分类!'],
 | |
|         ['mediumCat'  ,'require|number','请选择二级分类|请选择二级分类!'],
 | |
|         ['smallCat'  ,'require|number','请选择三级分类|请选择三级分类!'],
 | |
|         ['discountRate'  ,'require|float|between:0,100','请输入优惠率|请输入优惠率!|优惠率范围0%-100%!'],
 | |
|         ['freight'  ,'require|float','请输入运费|请输入运费!'],
 | |
|         ['goodsImg'  ,'require','请上传商品主图'],
 | |
|         ['gallery'  ,'require','请上传商品相册'],
 | |
|         ['isSale'  ,'require|in:0,1','请选择商品通过审核后上下架|请选择商品通过审核后上下架!'],
 | |
|     ];
 | |
| 
 | |
|     protected $scene = [
 | |
|         'join'   =>  ['shopName','userName','phone','provinceId','cityId','countyId','townId','villageId','shopAddress','lng','lat','bankName','accountName','bankNo','idCardFrontImg','idCardBackImg','commissionImg','businessLicenceImg','confirmationImg'],//商家入驻人认证
 | |
|         'addGoods'=>['goodsName' ,'largeCat','mediumCat' ,'smallCat', 'discountRate'  ,'freight'  ,'goodsImg'  ,'gallery'  ,'isSale'],
 | |
|     ];
 | |
| 
 | |
|     // 自定义验证规则
 | |
|     // protected function checkName($value,$rule,$data)
 | |
|     // {
 | |
|     //     return $rule == $value ? true : '名称错误';
 | |
|     // }
 | |
|      /**
 | |
|      * 身份证验证 start
 | |
|      */
 | |
|     function validation_filter_id_card($id_card){
 | |
|         if(strlen($id_card)==18){
 | |
|             return $this->idcard_checksum18($id_card);
 | |
|         }elseif((strlen($id_card)==15)){
 | |
|             $id_card=$this->idcard_15to18($id_card);
 | |
|             return $this->idcard_checksum18($id_card);
 | |
|         }else{
 | |
|             return false;
 | |
|         }
 | |
|     }
 | |
|      // 计算身份证校验码,根据国家标准GB 11643-1999
 | |
|      function idcard_verify_number($idcard_base){
 | |
|         if(strlen($idcard_base)!=17){
 | |
|             return false;
 | |
|         }
 | |
|         //加权因子
 | |
|         $factor=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
 | |
|         //校验码对应值
 | |
|         $verify_number_list=array('1','0','X','9','8','7','6','5','4','3','2');
 | |
|         $checksum=0;
 | |
|         for($i=0;$i<strlen($idcard_base);$i++){
 | |
|             $checksum += substr($idcard_base,$i,1) * $factor[$i];
 | |
|         }
 | |
|         $mod=$checksum % 11;
 | |
|         $verify_number=$verify_number_list[$mod];
 | |
|         return $verify_number;
 | |
|      }
 | |
|      // 将15位身份证升级到18位
 | |
|      function idcard_15to18($idcard){
 | |
|         if(strlen($idcard)!=15){
 | |
|             return false;
 | |
|         }else{
 | |
|             // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
 | |
|             if(array_search(substr($idcard,12,3),array('996','997','998','999')) !== false){
 | |
|                 $idcard=substr($idcard,0,6).'18'.substr($idcard,6,9);
 | |
|             }else{
 | |
|                 $idcard=substr($idcard,0,6).'19'.substr($idcard,6,9);
 | |
|             }
 | |
|         }
 | |
|         $idcard=$idcard.$this->idcard_verify_number($idcard);
 | |
|         return $idcard;
 | |
|      }
 | |
|      // 18位身份证校验码有效性检查
 | |
|      function idcard_checksum18($idcard){
 | |
|         if(strlen($idcard)!=18){
 | |
|             return false;
 | |
|         }
 | |
|         $idcard_base=substr($idcard,0,17);
 | |
|         if($this->idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){
 | |
|             return false;
 | |
|     return $user;
 | |
|         }else{
 | |
|             return true;
 | |
|         }
 | |
|      }
 | |
|      /***身份证验证 end */
 | |
| } |