153 lines
4.3 KiB
PHP
Executable File
153 lines
4.3 KiB
PHP
Executable File
<?php
|
|
namespace wstmart\mobile\controller;
|
|
use wstmart\common\model\Carts as M;
|
|
use wstmart\common\model\UserAddress;
|
|
use wstmart\common\model\Payments;
|
|
/**
|
|
* ============================================================================
|
|
* 购物车控制器
|
|
*/
|
|
class Carts extends Base{
|
|
|
|
// 前置方法执行列表
|
|
protected $beforeActionList = [
|
|
'checkAuth'
|
|
];
|
|
/**
|
|
* 批量修改购物车状态
|
|
*/
|
|
public function batchChangeCartGoods(){
|
|
$m = new M();
|
|
return $m->batchChangeCartGoods();
|
|
}
|
|
/**
|
|
* 查看购物车列表
|
|
*/
|
|
public function index(){
|
|
$m = new M();
|
|
$carts = $m->getCarts(false);
|
|
$this->assign('carts',$carts);
|
|
return $this->fetch('carts');
|
|
}
|
|
/**
|
|
* 加入购物车
|
|
*/
|
|
public function addCart(){
|
|
$m = new M();
|
|
$rs = $m->addCart();
|
|
$rs['cartNum'] = WSTCartNum();
|
|
return $rs;
|
|
}
|
|
/**
|
|
* 修改购物车商品状态
|
|
*/
|
|
public function changeCartGoods(){
|
|
$m = new M();
|
|
$rs = $m->changeCartGoods();
|
|
return $rs;
|
|
}
|
|
/**
|
|
* 删除购物车里的商品
|
|
*/
|
|
public function delCart(){
|
|
$m = new M();
|
|
$rs= $m->delCart();
|
|
return $rs;
|
|
}
|
|
/**
|
|
* 计算运费、惠宝和总商品价格
|
|
*/
|
|
public function getCartMoney(){
|
|
$m = new M();
|
|
$data = $m->getCartMoney();
|
|
return $data;
|
|
}
|
|
/**
|
|
* 计算运费、惠宝和总商品价格/虚拟商品
|
|
*/
|
|
public function getQuickCartMoney(){
|
|
$m = new M();
|
|
$data = $m->getQuickCartMoney();
|
|
return $data;
|
|
}
|
|
/**
|
|
* 跳去购物车结算页面
|
|
*/
|
|
public function settlement(){
|
|
$m = new M();
|
|
//获取一个用户地址
|
|
$addressId = (int)input('addressId');
|
|
$ua = new UserAddress();
|
|
if($addressId>0){
|
|
$userAddress = $ua->getById($addressId);
|
|
}else{
|
|
$userAddress = $ua->getDefaultAddress();
|
|
}
|
|
$this->assign('userAddress',$userAddress);
|
|
//获取支付方式
|
|
$pa = new Payments();
|
|
$payments = $pa->getByGroup('2');
|
|
$areaId2 = isset($userAddress['areaId2']) ? $userAddress['areaId2'] : 0;
|
|
//dump($payments);
|
|
//获取已选的购物车商品
|
|
$carts = $m->getCarts(true, 0, $areaId2);
|
|
|
|
//hook("mobileControllerCartsSettlement",["carts"=>$carts,"payments"=>&$payments]);
|
|
//ect整合相关优惠还有判断不能和在线支付商品一块
|
|
// hook("ectIntegration",["carts"=>&$carts,'isSettlement'=>false,'uId'=>(int)session('WST_USER.userId')]);
|
|
$this->assign('payments',$payments);
|
|
//获取用户惠宝
|
|
$user = model('users')->getFieldsById((int)session('WST_USER.userId'),'userScore');
|
|
//计算可用惠宝和金额
|
|
$goodsTotalMoney = (int)(($carts['goodsTotalMoney'] - $carts['promotionMoney'] - $carts['allShippingMoney']) * HuiScale());//$carts['goodsTotalMoney']; 惠宝最多可抵用20% mark 20170907
|
|
$goodsTotalScore = WSTScoreToMoney($goodsTotalMoney,true);
|
|
|
|
$useOrderScore =0;
|
|
$useOrderMoney = 0;
|
|
if($user['userScore']>$goodsTotalScore){
|
|
$useOrderScore = $goodsTotalScore;
|
|
$useOrderMoney = $goodsTotalMoney;
|
|
}else{
|
|
$useOrderScore = $user['userScore'];
|
|
$useOrderMoney = WSTScoreToMoney($useOrderScore);
|
|
}
|
|
$this->assign('userOrderScore',$useOrderScore);
|
|
$this->assign('userOrderMoney',$useOrderMoney);
|
|
|
|
$this->assign('carts',$carts);
|
|
return $this->fetch('settlement');
|
|
}
|
|
/**
|
|
* 跳去虚拟商品购物车结算页面
|
|
*/
|
|
public function quickSettlement(){
|
|
$m = new M();
|
|
//获取支付方式
|
|
$pa = new Payments();
|
|
$payments = $pa->getByGroup('2');
|
|
$this->assign('payments',$payments);
|
|
//获取用户惠宝
|
|
$user = model('users')->getFieldsById((int)session('WST_USER.userId'),'userScore');
|
|
//获取已选的购物车商品
|
|
$carts = $m->getQuickCarts();
|
|
//计算可用惠宝和金额
|
|
$goodsTotalMoney = (int)($carts['goodsTotalMoney'] * HuiScale());//$carts['goodsTotalMoney']; 惠宝最多可抵用20% mark 20170907
|
|
$goodsTotalScore = WSTScoreToMoney($goodsTotalMoney,true);
|
|
|
|
$useOrderScore =0;
|
|
$useOrderMoney = 0;
|
|
if($user['userScore']>$goodsTotalScore){
|
|
$useOrderScore = $goodsTotalScore;
|
|
$useOrderMoney = $goodsTotalMoney;
|
|
}else{
|
|
$useOrderScore = $user['userScore'];
|
|
$useOrderMoney = WSTScoreToMoney($useOrderScore);
|
|
}
|
|
$this->assign('userOrderScore',$useOrderScore);
|
|
$this->assign('userOrderMoney',$useOrderMoney);
|
|
|
|
$this->assign('carts',$carts);
|
|
return $this->fetch('settlement_quick');
|
|
}
|
|
}
|