<?php //取得商品最终使用价格 //param string goods_id 商品编号 //param string goods_num 购买数量 //param boolean is_spec_price 是否加入规格价格 //param mix spec 规格ID的数组或者逗号分隔的字符串 //return 商品最终购买价格 function get_final_price($goods_id, $goods_num='1', $is_spec_price=false, $spec=array()) { $final_price='0';//商品最终购买价格 $volume_price='0';//商品优惠价格 $promote_price='0';//商品促销价格 $user_price='0';//商品会员价格 $price_list=get_volume_price_list($goods_id,'1');//取得商品优惠价格列表 if(!empty($price_list)){ foreach($price_list as $value){ if($goods_num >= $value['number']){ $volume_price=$value['price']; } } } //取得商品促销价格列表 //取得商品信息 $sql='select g.promote_price, g.promote_start_date, g.promote_end_date, IFNULL(mp.user_price, g.shop_price * '.$_SESSION['discount'].') as shop_price from '.$GLOBALS['ecs']->table('goods').' as g left join '.$GLOBALS['ecs']->table('member_price')." as mp on mp.goods_id = g.goods_id and mp.user_rank='".$_SESSION['user_rank']."' where g.goods_id='".$goods_id."' and g.is_delete=0"; $goods=$GLOBALS['db']->getRow($sql); //计算商品的促销价格 if($goods['promote_price'] > 0){ $promote_price=bargain_price($goods['promote_price'], $goods['promote_start_date'], $goods['promote_end_date']); }else{ $promote_price=0; } $user_price=$goods['shop_price'];//取得商品会员价格列表 //比较商品的优惠价格,促销价格,会员价格 if(empty($volume_price) && empty($promote_price)) { $final_price=$user_price; }elseif(!empty($volume_price) && empty($promote_price)) { $final_price=min($volume_price, $user_price); }elseif(empty($volume_price) && !empty($promote_price)) { $final_price=min($promote_price, $user_price); }elseif(!empty($volume_price) && !empty($promote_price)) { $final_price=min($volume_price, $promote_price, $user_price); }else{ $final_price=$user_price; } //如果需要加入规格价格 if($is_spec_price){ if(!empty($spec)){ $spec_price=spec_price($spec); $final_price+=$spec_price; } } return $final_price; } ?>