85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace app\admin\validate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Validate;
							 | 
						||
| 
								 | 
							
								use think\facade\Db;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FreightValidate extends Validate
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected $rule = [
							 | 
						||
| 
								 | 
							
								        'id' => 'require',
							 | 
						||
| 
								 | 
							
								        'charge_way' => 'require',
							 | 
						||
| 
								 | 
							
								        'name' => 'require|unique:freight',
							 | 
						||
| 
								 | 
							
								        'region' => 'require|checkTypeData',
							 | 
						||
| 
								 | 
							
								    ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected $message = [
							 | 
						||
| 
								 | 
							
								        'id.require' => '参数缺失',
							 | 
						||
| 
								 | 
							
								        'charge_way.require' => '请选择计费方式',
							 | 
						||
| 
								 | 
							
								        'name.require' => '请输入模板名称',
							 | 
						||
| 
								 | 
							
								        'name.unique' => '该模板名称已存在',
							 | 
						||
| 
								 | 
							
								    ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function sceneAdd()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->only(['name', 'charge_way', 'region']);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function sceneEdit()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->only(['id', 'name', 'charge_way', 'region']);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneDel()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->only(['id'])->append('id', 'checkIsAbleDel');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //添加时验证全国模板或指定地区模板的数据
							 | 
						||
| 
								 | 
							
								    protected function checkTypeData($value, $reule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        foreach ($data as &$item) {
							 | 
						||
| 
								 | 
							
								            if (is_array($item)) {
							 | 
						||
| 
								 | 
							
								                $item = array_values($item);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $configs = form_to_linear($data);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($configs as $config) {
							 | 
						||
| 
								 | 
							
								            if (
							 | 
						||
| 
								 | 
							
								                !isset($config['first_unit']) ||
							 | 
						||
| 
								 | 
							
								                !isset($config['first_money']) ||
							 | 
						||
| 
								 | 
							
								                !isset($config['continue_unit']) ||
							 | 
						||
| 
								 | 
							
								                !isset($config['continue_money'])
							 | 
						||
| 
								 | 
							
								            ) {
							 | 
						||
| 
								 | 
							
								                return '请填写完整设置参数';
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (
							 | 
						||
| 
								 | 
							
								                ($config['first_unit'] < 0) ||
							 | 
						||
| 
								 | 
							
								                ($config['first_money'] < 0) ||
							 | 
						||
| 
								 | 
							
								                ($config['continue_unit'] < 0) ||
							 | 
						||
| 
								 | 
							
								                ($config['continue_money'] < 0)
							 | 
						||
| 
								 | 
							
								            ){
							 | 
						||
| 
								 | 
							
								                return '所填设置参数不能小于0';
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //验证模板是否可以删除
							 | 
						||
| 
								 | 
							
								    protected function checkIsAbleDel($value, $reule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $freight = Db::name('goods')
							 | 
						||
| 
								 | 
							
								            ->where('express_template_id', $value)
							 | 
						||
| 
								 | 
							
								            ->find();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($freight) {
							 | 
						||
| 
								 | 
							
								            return '此模板已有商品使用!';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |