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