123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wuzhenke
- * Date: 2018/11/12
- * Time: 19:09
- */
- namespace App\Services\Common;
- use App\Repositories\SetmealIncrementsRepository;
- use App\Repositories\SetmealRepository;
- class SetmealIncrementsService
- {
- protected $setmealIncrementsRepository;
- protected $setmealRepository;
- /**
- * SetmealIncrementsService constructor.
- * @param $setmealIncrementsRepository
- * @param $setmealRepository
- */
- public function __construct(SetmealIncrementsRepository $setmealIncrementsRepository, SetmealRepository $setmealRepository)
- {
- $this->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);
- }
- }
|