其余文件
This commit is contained in:
82
app/api/validate/IntegralPlaceOrderValidate.php
Normal file
82
app/api/validate/IntegralPlaceOrderValidate.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\validate;
|
||||
|
||||
use app\common\basics\Validate;
|
||||
use app\common\enum\IntegralGoodsEnum;
|
||||
use app\common\model\integral\IntegralGoods;
|
||||
use app\common\model\user\UserAddress;
|
||||
|
||||
/**
|
||||
* 积分订单下单验证
|
||||
* Class IntegralOrderValidate
|
||||
* @package app\api\validate
|
||||
*/
|
||||
class IntegralPlaceOrderValidate extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
'num' => 'require|number|gt:0',
|
||||
'id' => 'require|number|checkGoods',
|
||||
'address_id' => 'require|checkAddress',
|
||||
];
|
||||
|
||||
protected $message = [
|
||||
'id.require' => '参数缺失',
|
||||
'id.number' => '参数类型错误',
|
||||
'num.require' => '请选择商品数量',
|
||||
'num.number' => '商品数量参数类型错误',
|
||||
'num.gt' => '请选择商品数量',
|
||||
'address_id.require' => '请选择地址',
|
||||
];
|
||||
|
||||
|
||||
public function sceneSettlement()
|
||||
{
|
||||
return $this->only(['code','num']);
|
||||
}
|
||||
|
||||
public function sceneSubmit()
|
||||
{
|
||||
return $this->only(['id', 'num', 'address_id'])
|
||||
->append('id', 'checkGoods');
|
||||
}
|
||||
|
||||
|
||||
// 验证商品
|
||||
protected function checkGoods($value, $rule, $data)
|
||||
{
|
||||
$goods = IntegralGoods::where([
|
||||
'id' => $value,
|
||||
'del' => IntegralGoodsEnum::DEL_NORMAL,
|
||||
'status' => IntegralGoodsEnum::STATUS_SHELVES
|
||||
])->findOrEmpty();
|
||||
|
||||
if ($goods->isEmpty()) {
|
||||
return '积分商品不存在';
|
||||
}
|
||||
|
||||
if ($goods['stock'] < intval($data['num'])) {
|
||||
return '积分商品库存不足';
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// 验证地址信息
|
||||
protected function checkAddress($value, $rule, $data)
|
||||
{
|
||||
$condition = [
|
||||
'id' => (int)$value,
|
||||
'user_id' => $data['user_id'],
|
||||
'del' => 0
|
||||
];
|
||||
$address = UserAddress::where($condition)->findOrEmpty();
|
||||
|
||||
if ($address->isEmpty()) {
|
||||
return '收货地址信息不存在';
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user