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