php cart,server/API/cart.php · 山上下起了雨/AliceSPA - Gitee.com

include_once "common.php";

include_once "product.php";

function checkCartPermission($app,$user){

return hasPermission($user,PERMISSION_USER);

}

function isCartItemExist($app,$uid,$pid){

return RjCart::findFirst(array(

'RjCart.user_id = :uid: AND RjCart.product_id = :pid:',

'bind' => array(

'uid' => $uid,

'pid' => $pid

)

))===false?false:true;

}

function getCarts($uid){

return RjCart::find(array(

'user_id = :uid:',

'bind' => array(

'uid' => $uid

)

));

}

$app->get('/cart/all',function()use($app){

$uti = $app->utility;

$user = getCurrentUser($app);

if(!checkCartPermission($app,$user)){

$uti->addError(ERROR_NO_PERMISSION);

return;

}

$items = getCarts($user['id']);

$uti->setSuccessTrue();

$t = array();

foreach($items as $item){

$a = $item->toArray();

$p = $item->product;

$a['product'] = $p->toArray();

$uti->addFiles2Array($a['product'],'images',$p->images,'getImageUrl');

$t[] = $a;

}

$uti->setItem('cart',$t);

});

$app->post('/cart/delete',function()use($app){

$uti = $app->utility;

$data = getPostJsonObject();

$user = getCurrentUser($app);

if(!checkCartPermission($app,$user)){

$uti->addError(ERROR_NO_PERMISSION);

return;

}

$app->db->begin();

$res = RjCart::find(array(

'RjCart.user_id = :uid: AND RjCart.product_id = :pid:',

'bind' => array(

'uid' => $user['id'],

'pid' => $data->product_id

)));

foreach($res as $c){

if(!$c->delete()){

$app->db->rollback();

return;

};

}

$app->db->commit();

$uti->setSuccessTrue();

});

$app->get('/cart/delete_all',function()use($app){

$uti = $app->utility;

$user = getCurrentUser($app);

if(!checkCartPermission($app,$user)) {

$uti->addError(ERROR_NO_PERMISSION);

return;

}

$phql = "DELETE FROM RjCart WHERE RjCart.user_id = :uid:";

$state = $app->modelsManager->executeQuery($phql,array(

'uid' => $user['id'],

));

if(!$state->success()){

$uti->addError(ERROR_EXECUTE_FAIL);

return;

}

$uti->setSuccessTrue();

});

$app->post('/cart/add',function()use($app){

$uti = $app->utility;

$data = getPostJsonObject();

$user = getCurrentUser($app);

if(!checkCartPermission($app,$user)){

$uti->addError(ERROR_NO_PERMISSION);

return;

}

if(isCartItemExist($app,$user['id'],$data->product_id)){

$uti->addError(ERROR_HAS_CURRENT_RECORD);

return;

}

$pro = getProductById($app,$data->product_id);

if($pro == null){

$uti->addError(ERROR_NO_CURRENT_RECORD);

return;

}

if($pro['price'] != $data->price){

$uti->addError(ERROR_NO_CURRENT_RECORD);

return;

}

$t = new RjCart();

$t->user_id = $user['id'];

$t->product_id = $data->product_id;

$t->number = $data->number;

$t->price = $data->price;

if(!$t->create()){

$uti->addError(ERROR_EXECUTE_FAIL);

return;

}

$uti->setSuccessTrue();

});

$app->post('/cart/setNumber',function()use($app){

$uti = $app->utility;

$data = getPostJsonObject();

$user = getCurrentUser($app);

if(!checkCartPermission($app,$user)){

$uti->addError(ERROR_NO_PERMISSION);

return;

}

if(!isCartItemExist($app,$user['id'],$data->product_id)){

$uti->addError(ERROR_NO_CURRENT_RECORD);

return;

}

if(!isset($data->number) || $data->number <= 0){

$uti->addError(ERROR_NUMBER_INVILID);

return;

}

$t = RjCart::findFirst(array(

'user_id=:uid: AND product_id=:pid:',

'bind' => array(

'uid' => $user['id'],

'pid' => $data->product_id,

)

));

if($t===false){

$uti->addError(ERROR_NO_CURRENT_RECORD);

return;

}

$number = getProductNumber($t->product_id);

if($number === false){

$uti->addError(ERROR_NO_CURRENT_RECORD);

return;

}

if($number < $data->number) {

$uti->addError(ERROR_PRODUCT_NOT_ENOUGH);

return;

}

if(!$t->save(array('number'=>$data->number))){

$uti->addError(ERROR_EXECUTE_FAIL);

return;

}

$uti->setSuccessTrue();

});

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值