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

112 lines
4.9 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 */
}