123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace app\api\validate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Validate;
							 | 
						||
| 
								 | 
							
								use app\common\enum\IntegralGoodsEnum;
							 | 
						||
| 
								 | 
							
								use app\common\enum\IntegralOrderEnum;
							 | 
						||
| 
								 | 
							
								use app\common\enum\PayEnum;
							 | 
						||
| 
								 | 
							
								use app\common\model\integral\IntegralOrder;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 积分订单验证
							 | 
						||
| 
								 | 
							
								 * Class IntegralOrderValidate
							 | 
						||
| 
								 | 
							
								 * @package app\api\validate
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class IntegralOrderValidate extends Validate
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    protected $rule = [
							 | 
						||
| 
								 | 
							
								        'id' => 'require|number|checkOrder',
							 | 
						||
| 
								 | 
							
								    ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected $message = [
							 | 
						||
| 
								 | 
							
								        'id.require' => '参数缺失',
							 | 
						||
| 
								 | 
							
								        'id.number' => '参数类型错误',
							 | 
						||
| 
								 | 
							
								    ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneDetail()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->only(['id']);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneCancel()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->only(['id'])->append('id', 'checkCancel');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneConfirm()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->only(['id'])->append('id', 'checkConfirm');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneTraces()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->only(['id']);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function sceneDel()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->only(['id'])->append('id','checkDel');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 验证订单
							 | 
						||
| 
								 | 
							
								    protected function checkOrder($value, $rule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $condition = ['id' => $value, 'user_id' => $data['user_id']];
							 | 
						||
| 
								 | 
							
								        $order = IntegralOrder::where($condition)->findOrEmpty();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($order->isEmpty()) {
							 | 
						||
| 
								 | 
							
								            return '订单不存在';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($order['del'] == 1) {
							 | 
						||
| 
								 | 
							
								            return '订单已删除';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function checkConfirm($value, $rule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $order = IntegralOrder::findOrEmpty($value);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($order['order_status'] < IntegralOrderEnum::ORDER_STATUS_DELIVERY) {
							 | 
						||
| 
								 | 
							
								            return '订单未发货';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($order['order_status'] == IntegralOrderEnum::ORDER_STATUS_COMPLETE) {
							 | 
						||
| 
								 | 
							
								            return '订单已完成';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function checkDel($value, $rule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $order = IntegralOrder::findOrEmpty($value);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 订单状态为 已关闭 且 [未支付 或者 已退款才可以删除]
							 | 
						||
| 
								 | 
							
								        if ($order['order_status'] == IntegralOrderEnum::ORDER_STATUS_DOWN) {
							 | 
						||
| 
								 | 
							
								            if ($order['pay_status'] == PayEnum::UNPAID  || $order['refund_status'] == 1) {
							 | 
						||
| 
								 | 
							
								                return true;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return '订单不可删除';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 取消
							 | 
						||
| 
								 | 
							
								    public function checkCancel($value, $rule, $data)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $order = IntegralOrder::findOrEmpty($value);
							 | 
						||
| 
								 | 
							
								        $goods_snap = $order['goods_snap'];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 商品类型为红包的不可取消
							 | 
						||
| 
								 | 
							
								        if ($goods_snap['type'] == IntegralGoodsEnum::TYPE_BALANCE) {
							 | 
						||
| 
								 | 
							
								            return '此订单不可取消';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($order['order_status'] >= IntegralOrderEnum::ORDER_STATUS_GOODS) {
							 | 
						||
| 
								 | 
							
								            return '此订单不可取消';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |