/** * @brief 获得订单的实际金额和商品的实际价格 */ public function getAmount() { //获得ajax中post传来的数据 $uid = IFilter::act(IReq::get('uid')); $price = IFilter::act(IReq::get('price')); $gid = IFilter::act(IReq::get('gid')); $number = IFilter::act(IReq::get('number')); $pid = IFilter::act(IReq::get('pid')); //将price和gid转换为数组 $price_arr = array(); $gid_arr = array(); $num_arr = array(); $pid_arr = array(); $price_arr = explode(',', $price); $gid_arr = explode(',', $gid); $num_arr = explode(',', $number); $pid_arr = explode(',', $pid); //获得order_class的对象 $ord_class = new Order_Class(); //实际价格 $real_price = ''; //执行折扣前的总金额 $real_amount = 0; //循环获得商品的实际价格和实际总金额 foreach ($price_arr as $key => $value) { $real = $ord_class->get_real_price($uid, $gid_arr[$key], $pid_arr[$key], $price_arr[$key]); $real_price .= $real . ','; $real_amount = $real_amount + $real * $num_arr[$key]; } $real_price = substr($real_price, 0, -1); //获得group_id $tb_member = new IModel('member'); $member_info = $tb_member->query('user_id=' . $uid); //获得规则函数的对象 $rule = new ProRule($real_amount); $rule->setUserGroup($member_info[0]['group_id']); //获得规则折扣后的实际总金额 $real_amount = $rule->getSum(); //判断是否免运费,true免,false不免 $isBolg = $rule->isFreeFreight(); $relieve = '0'; if ($isBolg) { $relieve = '1'; } //返回页面数据实际商品价格和实际总金额 echo $relieve . ';' . $real_price . ';' . $real_amount; }