137 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			137 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace app\admin\validate\integral;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								use app\common\basics\Validate;
							 | 
						|||
| 
								 | 
							
								use app\common\enum\IntegralGoodsEnum;
							 | 
						|||
| 
								 | 
							
								use app\common\model\integral\IntegralGoods;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								 * 积分商品验证
							 | 
						|||
| 
								 | 
							
								 * Class IntegralGoodsValidate
							 | 
						|||
| 
								 | 
							
								 * @package app\admin\validate\kefu
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								class IntegralGoodsValidate extends Validate
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    protected $rule = [
							 | 
						|||
| 
								 | 
							
								        'id'=>'require|checkGoods',
							 | 
						|||
| 
								 | 
							
								        'type' => 'require|in:1,2',
							 | 
						|||
| 
								 | 
							
								        'name' => 'require',
							 | 
						|||
| 
								 | 
							
								        'image' => 'require',
							 | 
						|||
| 
								 | 
							
								        'market_price' => 'checkMarketPrice',
							 | 
						|||
| 
								 | 
							
								        'stock' => 'require|integer',
							 | 
						|||
| 
								 | 
							
								        'exchange_way' => 'requireIf:type,1',
							 | 
						|||
| 
								 | 
							
								        'need_integral' => 'require|integer|checkNeedIntegral',
							 | 
						|||
| 
								 | 
							
								        'need_money' => 'requireIf:exchange_way,2|checkNeedMoney',
							 | 
						|||
| 
								 | 
							
								        'delivery_way' => 'requireIf:type,1',
							 | 
						|||
| 
								 | 
							
								        'express_type' => 'requireIf:delivery_way,1',
							 | 
						|||
| 
								 | 
							
								        'express_money' => 'requireIf:express_type,2|checkExpressMoney',
							 | 
						|||
| 
								 | 
							
								        'balance' => 'requireIf:type,2|checkBalance',
							 | 
						|||
| 
								 | 
							
								        'status' => 'require|in:0,1',
							 | 
						|||
| 
								 | 
							
								    ];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    protected $message = [
							 | 
						|||
| 
								 | 
							
								        'id.require' => '参数缺失',
							 | 
						|||
| 
								 | 
							
								        'type.require' => '请选择兑换类型',
							 | 
						|||
| 
								 | 
							
								        'type.in' => '兑换类型错误',
							 | 
						|||
| 
								 | 
							
								        'name.require' => '请填写商品名称',
							 | 
						|||
| 
								 | 
							
								        'image.require' => '请上传商品封面',
							 | 
						|||
| 
								 | 
							
								        'stock.require' => '请填写发放库存',
							 | 
						|||
| 
								 | 
							
								        'stock.integer' => '请填写整数发放库存',
							 | 
						|||
| 
								 | 
							
								        'exchange_way.requireIf' => '请选择兑换方式',
							 | 
						|||
| 
								 | 
							
								        'need_integral.require' => '请填写兑换积分',
							 | 
						|||
| 
								 | 
							
								        'need_integral.integer' => '请填写整数兑换积分',
							 | 
						|||
| 
								 | 
							
								        'need_money.requireIf' => '请填写兑换金额',
							 | 
						|||
| 
								 | 
							
								        'delivery_way.requireIf' => '请选择物流配送方式',
							 | 
						|||
| 
								 | 
							
								        'express_type.requireIf' => '请选择物流方式',
							 | 
						|||
| 
								 | 
							
								        'express_money.requireIf' => '请填写运费',
							 | 
						|||
| 
								 | 
							
								        'balance.requireIf' => '请填写红包面值',
							 | 
						|||
| 
								 | 
							
								        'status.require' => '请选择商品状态',
							 | 
						|||
| 
								 | 
							
								        'status.in' => '商品状态参数错误',
							 | 
						|||
| 
								 | 
							
								    ];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public function sceneAdd()
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        $this->remove('id', true);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public function sceneEdit()
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public function sceneDel()
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        $this->only(['id']);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public function sceneDetail()
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        $this->only(['id']);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    protected function checkGoods($value, $rule, $data)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        $goods = IntegralGoods::where(['id' => $value])->findOrEmpty();
							 | 
						|||
| 
								 | 
							
								        if ($goods->isEmpty()) {
							 | 
						|||
| 
								 | 
							
								            return '积分商品不存在';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        if ($goods['del'] == 1) {
							 | 
						|||
| 
								 | 
							
								            return '积分商品已被删除';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // 验证统一运费时,运费不小于0
							 | 
						|||
| 
								 | 
							
								    protected function checkExpressMoney($value, $rule, $data)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        // 快递配送  统一运费 运费须大于0
							 | 
						|||
| 
								 | 
							
								        if ($data['delivery_way'] == IntegralGoodsEnum::DELIVERY_EXPRESS
							 | 
						|||
| 
								 | 
							
								            && $data['express_type'] == IntegralGoodsEnum::EXPRESS_TYPE_UNIFIED
							 | 
						|||
| 
								 | 
							
								            && $value <= 0
							 | 
						|||
| 
								 | 
							
								        ) {
							 | 
						|||
| 
								 | 
							
								            return '请输入大于0的运费';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // 验证兑换积分需大于0
							 | 
						|||
| 
								 | 
							
								    protected function checkNeedIntegral($value, $rule, $data)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        if ($value <= 0) {
							 | 
						|||
| 
								 | 
							
								            return '请输入大于0的兑换积分';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // 验证兑换方式为 积分+金额 时,金额不小于0
							 | 
						|||
| 
								 | 
							
								    protected function checkNeedMoney($value, $rule, $data)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        if ($data['exchange_way'] == IntegralGoodsEnum::EXCHANGE_WAY_HYBRID && $value <= 0) {
							 | 
						|||
| 
								 | 
							
								            return '请输入大于0的兑换金额';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // 验证兑换类型为 红包时,红包面额不小于0
							 | 
						|||
| 
								 | 
							
								    protected function checkBalance($value, $rule, $data)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        if ($data['type'] == IntegralGoodsEnum::TYPE_BALANCE && $value <= 0) {
							 | 
						|||
| 
								 | 
							
								            return '请输入大于0的红包面值';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    protected function checkMarketPrice($value)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        if (!empty($value) && $value < 0) {
							 | 
						|||
| 
								 | 
							
								            return '请输入正确市场价';
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        return true;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 |