<?php

namespace app\api\controller\order;

use app\admin\logic\order\CartLogic;
use app\admin\validate\order\CartValidate;
use app\api\controller\BaseApiController;
use app\api\lists\order\CartList;
use app\common\model\order\Cart;

class CartController extends BaseApiController
{
    public function list(){
        return $this->dataLists(new CartList());
    }

    /**
     * @notes 添加购物车
     */
    public function create(){
        $params = (new CartValidate())->post()->goCheck('add');
        $params['uid']=$this->request->userId;
        $result=Cart::where(['uid'=>$params['uid'],'goods_id'=>$params['goods_id'],'is_fail'=>0,'is_pay'=>0])->find();
        $count=Cart::where(['uid'=>$params['uid'],'is_fail'=>0,'is_pay'=>0])->count();
        if($count>100){
            return $this->fail('购物车商品不能大于100个,请先结算');
        }
        if($result){
            $res=CartLogic::edit($params);
        }else{
            $res=CartLogic::add($params);
        }
        if($res){
            return $this->success('添加成功');
        }else{
            return $this->fail(CartLogic::getError());
        }
    }

    /**
     * @notes 修改购物车
     */
    public function change(){
        $params = (new CartValidate())->post()->goCheck('change');
        $params['uid']=$this->request->userId;
        $res=CartLogic::edit($params,'dec');
        if($res){
            return $this->success('修改成功');
        }else{
            return $this->fail(CartLogic::getError());
        }
    }
    /**
     * @notes 删除购物车
     */
    public function delete(){
        $params = (new CartValidate())->post()->goCheck('delete');
        $params['uid']=$this->request->userId;
        $res=CartLogic::delete($params);
        if($res){
            return $this->success('删除成功');
        }else{
            return $this->fail(CartLogic::getError());
        }
    }

    

}