|
@@ -112,16 +112,22 @@ class OrderService extends BaseService {
|
|
|
{
|
|
|
if($this->frm==1) {
|
|
|
$goods=$this->goods;
|
|
|
- foreach ($goods as $sku_id=>&$info){
|
|
|
- $sku=GoodsSku::find($sku_id);
|
|
|
+ $newGoods=[];
|
|
|
+ foreach ($goods as $sku_id=>$info){
|
|
|
+ $sku=GoodsSku::with(['goods'])->find($sku_id);
|
|
|
if(!$sku){
|
|
|
$this->error('规格不存在');
|
|
|
}
|
|
|
- $info['sku']=$sku;
|
|
|
- $info['goods']=$sku->goods;
|
|
|
- $info['goods_id']=$sku['goods_id'];
|
|
|
+ $temp=[];
|
|
|
+ $temp['num']=$info['num'];
|
|
|
+ $temp['num_install']=$info['num_install'];
|
|
|
+ $temp['sku']=$sku;
|
|
|
+ $temp['goods']=$sku->goods;
|
|
|
+ $temp['goods_id']=$sku['goods_id'];
|
|
|
+ $temp['goods_sku_id']=$sku['id'];
|
|
|
+ $newGoods[]=$temp;
|
|
|
}
|
|
|
- return $goods;
|
|
|
+ return $newGoods;
|
|
|
}else{
|
|
|
$map=[];
|
|
|
if(!is_null($this->cartSkuIds)){
|
|
@@ -134,7 +140,7 @@ class OrderService extends BaseService {
|
|
|
return $this->getUser()->cart()
|
|
|
->where($map)
|
|
|
->with(['goods','sku'])
|
|
|
- ->select();
|
|
|
+ ->select()->toArray();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -163,17 +169,17 @@ class OrderService extends BaseService {
|
|
|
$skuIds[]=$goods['sku']['id'];
|
|
|
}
|
|
|
}
|
|
|
- $info['num']=array_sum(array_column($info['goods']->toArray(),'num'));
|
|
|
- $info['num_install']=array_sum(array_column($info['goods']->toArray(),'num_install'));
|
|
|
+ $info['num']=array_sum(array_column($info['goods'],'num'));
|
|
|
+ $info['num_install']=array_sum(array_column($info['goods'],'num_install'));
|
|
|
|
|
|
foreach ($info['goods'] as $goods){
|
|
|
- $amount=bcmul($this->getAmount($goods['sku']),$goods['num']);
|
|
|
+ $amount=bcmul($this->getAmount($goods['sku'],$goods['goods']),$goods['num']);
|
|
|
$goods['this_amount']=$amount;
|
|
|
$info['amount_total']=bcadd($info['amount_total'],$amount);
|
|
|
}
|
|
|
|
|
|
#安装费
|
|
|
- $info['amount_install']=InstallService::getFee(array_column($info['goods']->toArray(),null,'goods_sku_id'),'num_install');
|
|
|
+ $info['amount_install']=InstallService::getFee(array_column($info['goods'],null,'goods_sku_id'),'num_install');
|
|
|
$info['amount_total']=bcadd($info['amount_total'],$info['amount_install']);
|
|
|
|
|
|
#优惠券
|
|
@@ -211,8 +217,8 @@ class OrderService extends BaseService {
|
|
|
return $info;
|
|
|
}
|
|
|
|
|
|
- protected function getAmount(GoodsSku $sku){
|
|
|
- if(KillService::open() && $sku['goods']['is_kill']){
|
|
|
+ protected function getAmount($sku,$goods){
|
|
|
+ if(KillService::open() && $goods['is_kill']){
|
|
|
$amount=$sku['amount_kill'];
|
|
|
}else{
|
|
|
$amount=$sku['amount'];
|