setmealIncrementsRepository = $setmealIncrementsRepository; $this->setmealRepository = $setmealRepository; } /** * @param $cat stick emergency * @return mixed */ public function getCat($cat) { return $this->setmealIncrementsRepository->getCat($cat); } //获取折扣类型 public function getIncrementDiscountByArray($cat, $member_setmeal) { switch ($cat) { case 'download_resume': case 'sms': case 'stick': case 'emergency': case 'auto_refresh_jobs': case 'tpl': $field = 'discount_'.$cat; break; default: $field = 'discount_download_resume'; break; } $return = $member_setmeal->$field; $value_arr = explode(".", $return); if (count($value_arr)>1) { if ($value_arr[1]==0) { return $value_arr[0]; } } return $return; } //获取企业增值服务信息 public function getIncrementArr($member_setmeal, $cat) { $increment_arr = $this->setmealIncrementsRepository->getIncrementCache('download_resume'); if ($increment_arr) { foreach ($increment_arr as $key => $value) { //如果是非免费套餐 if ($member_setmeal->is_free==0) { $discount = $this->getIncrementDiscountByArray($cat, $member_setmeal); ////获取折扣类型 //当前基础套餐套餐需要付的价格,如果折扣为0,则价格与原始价格一致 $increment_arr[$key]->my_price = $discount>0?round($value->price*$discount/10, 2):$value->price; //当前基础套餐的对应的折扣 $increment_arr[$key]->my_discount = $discount; //单条价格 $increment_arr[$key]->my_unit_price = round($increment_arr[$key]->my_price/$value->value, 2); //节省的数 $increment_arr[$key]->my_saved_price = $value->price-$increment_arr[$key]->my_price; } else { $free_discount = $this->getIncrementDiscountByArray($cat, $member_setmeal); //免费会员需要付的价格 $increment_arr[$key]->my_price = $free_discount>0?round($value->price*$free_discount/10, 2):$value->price; //免费会员单条价格 $increment_arr[$key]->my_unit_price = round($increment_arr[$key]->my_price/$value->value, 2); //VIP会员价格,取出折扣最大的套餐折扣 $vip_discount = $this->getMaxDiscount($cat); $increment_arr[$key]->vip_price = intval($vip_discount)>0?round($value->price*$vip_discount/10, 2):$value->price; //VIP会员单条价格 $increment_arr[$key]->vip_unit_price = round($increment_arr[$key]->vip_price/$value->value, 2); } //换算积分 $increment_arr[$key]->need_points = round($increment_arr[$key]->my_price*config('aix.companyset.points.points_set.payment_rate')); } } return $increment_arr; } public function getMaxDiscount($cat) { return $this->setmealRepository->getMaxDiscount($cat); } public function getServiceUnit() { return $this->setmealIncrementsRepository->service_unit; } public function getIncrement($id, $cat = '') { // return $this->setmealIncrementsRepository->getIncrementCache('', $id); return $this->setmealIncrementsRepository->getIncrement($id); } }