180 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | likeshop100%开源免费商用商城系统
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
 | ||
| // | 开源版本可自由商用,可去除界面版权logo
 | ||
| // | 商业版本务必购买商业授权,以免引起法律纠纷
 | ||
| // | 禁止对系统程序代码以任何目的,任何形式的再发布
 | ||
| // | gitee下载:https://gitee.com/likeshop_gitee
 | ||
| // | github下载:https://github.com/likeshop-github
 | ||
| // | 访问官网:https://www.likeshop.cn
 | ||
| // | 访问社区:https://home.likeshop.cn
 | ||
| // | 访问手册:http://doc.likeshop.cn
 | ||
| // | 微信公众号:likeshop技术社区
 | ||
| // | likeshop团队 版权所有 拥有最终解释权
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | author: likeshopTeam
 | ||
| // +----------------------------------------------------------------------
 | ||
| 
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | likeshop100%开源免费商用商城系统
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
 | ||
| // | 开源版本可自由商用,可去除界面版权logo
 | ||
| // | 商业版本务必购买商业授权,以免引起法律纠纷
 | ||
| // | 禁止对系统程序代码以任何目的,任何形式的再发布
 | ||
| // | gitee下载:https://gitee.com/likeshop_gitee
 | ||
| // | github下载:https://github.com/likeshop-github
 | ||
| // | 访问官网:https://www.likeshop.cn
 | ||
| // | 访问社区:https://home.likeshop.cn
 | ||
| // | 访问手册:http://doc.likeshop.cn
 | ||
| // | 微信公众号:likeshop技术社区
 | ||
| // | likeshop团队 版权所有 拥有最终解释权
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | author: likeshopTeam
 | ||
| // +----------------------------------------------------------------------
 | ||
| 
 | ||
| 
 | ||
| namespace app\shopapi\validate;
 | ||
| use app\common\basics\Validate;
 | ||
| use app\common\enum\ShopEnum;
 | ||
| 
 | ||
| /**
 | ||
|  * 商家信息验证
 | ||
|  * Class ShopInfoValidate
 | ||
|  * @package app\shopapi\validate
 | ||
|  */
 | ||
| class ShopDataSetValidate extends Validate
 | ||
| {
 | ||
| 
 | ||
|     protected $rule = [
 | ||
|         'dataset'           => 'require|checkData',
 | ||
|     ];
 | ||
|     protected $message = [
 | ||
|         'dataset.require'   => '请输入信息',
 | ||
|     ];
 | ||
| 
 | ||
| 
 | ||
|     protected $allow_fields = [
 | ||
|         'nickname',                                 //联系人
 | ||
|         'mobile'            => 'checkMobile',       //联系电话
 | ||
|         'intro',                                    //简介
 | ||
|         'is_run'            => 'checkRund',         //营业状态
 | ||
|         'province_id',                              //省id
 | ||
|         'city_id',                                  //城市id
 | ||
|         'district_id',                              //区id
 | ||
|         'address',                                  //详情地址
 | ||
|         'refund_address'    => 'checkRefund',       //退款地址
 | ||
|         'weekdays'          => 'checkWeekDay',      //营业时间
 | ||
|         'run_start_time'    => 'checkTime',         //每天营业开始时间
 | ||
|         'run_end_time'      => 'checkTime',          //每天营业结束时间
 | ||
|         'open_invoice',                             //发票开关 0- 关闭 1-开启
 | ||
|         'spec_invoice',                             //是否支持专票 0-不支持 1-支持
 | ||
|     ];
 | ||
| 
 | ||
|     protected function checkData($dataset,$rule,$data){
 | ||
|         foreach ($dataset as $field => $value){
 | ||
| 
 | ||
|             $allow_fields = array_keys($this->allow_fields);
 | ||
|             if(!in_array($field,$allow_fields)){
 | ||
|                 return '该信息不允许修改';
 | ||
|             }
 | ||
| 
 | ||
|             $func = $this->allow_fields[$field] ?? '';
 | ||
|             if($func){
 | ||
|                 $result = call_user_func([ShopDataSetValidate::class,$func],$data);
 | ||
|                 if(true !== $result){
 | ||
|                     return $result;
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     //验证手机号码是否正确
 | ||
|     protected function checkMobile($data){
 | ||
|         $mobile = $data['mobile'];
 | ||
|         $check = $this->checkRule($mobile, 'mobile');
 | ||
|         if(false === $check){
 | ||
|             return '手机号格式错误';
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     //验证营业状态是否正确
 | ||
|     protected function checkRund($data){
 | ||
|        if(!in_array($data['is_run'],[ShopEnum::SHOP_RUN_CLOSE,ShopEnum::SHOP_RUN_OPEN])){
 | ||
|             return '营业状态错误';
 | ||
|        }
 | ||
|        return true;
 | ||
|     }
 | ||
| 
 | ||
|     //验证营业天是否正确
 | ||
|     protected function checkWeekDay($data){
 | ||
|         foreach ($data['weekdays'] as $day){
 | ||
|             if(!in_array($day,[0,1,2,3,4,5,6])){
 | ||
|                 return '工作日错误';
 | ||
|             }
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     //验证时间是否正确
 | ||
|     protected function checkTime($data){
 | ||
|         if(empty($data['run_start_time']) || empty($data['run_end_time'])){
 | ||
|             return '请选择营业时间';
 | ||
|         }
 | ||
|         if($data['run_start_time'] >= $data['run_end_time']){
 | ||
|             return '营业时间错误';
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     //验证退款信息
 | ||
|     protected function checkRefund($data){
 | ||
|         $refund_address = $data['refund_address'];
 | ||
|         if(empty($refund_address)){
 | ||
|             return '请输入退款地址';
 | ||
|         }
 | ||
| 
 | ||
|         foreach ($refund_address as $index => $value){
 | ||
|             switch ($index){
 | ||
|                 case "nickname":
 | ||
|                     if(empty($value)){
 | ||
|                         return '请输入退款联系人';
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 case "mobile":
 | ||
|                     $check = $this->checkRule($value, 'mobile');
 | ||
|                     if(false === $check){
 | ||
|                         return '手机号格式错误';
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 case "province_id":
 | ||
|                     if(empty($value)){
 | ||
|                         return '请选择省份';
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 case "city_id":
 | ||
|                     if(empty($value)){
 | ||
|                         return '请选择城市';
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 case "district_id":
 | ||
|                     if(empty($value)){
 | ||
|                         return '请选择地区';
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 case "address":
 | ||
|                     if(empty($value)){
 | ||
|                         return '请输入详情地址';
 | ||
|                     }
 | ||
|                     break;
 | ||
|             }
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| } |