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