123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wuzhenke
- * Date: 2018/11/12
- * Time: 10:24
- */
- namespace App\Services\Common;
- use App\Repositories\CompanyRepository;
- use App\Repositories\MemberHandselRepository;
- use App\Repositories\MemberPointRepository;
- use App\Repositories\MembersChargeLogRepository;
- use App\Repositories\MemberSetmealRecordRepository;
- use App\Repositories\MemberSetmealRepository;
- use App\Repositories\SetmealRepository;
- use Illuminate\Contracts\Logging\Log;
- use Illuminate\Support\Facades\DB;
- class MembersSetmealService
- {
- protected $memberSetmealRepository;
- protected $setmealRepository;
- protected $memberPointRepository;
- protected $memberHandselRepository;
- protected $companyRepository;
- protected $membersChargeLogRepository;
- protected $memberSetmealRecordRepository;
- /**
- * MembersSetmealService constructor.
- * @param $memberSetmealRepository
- * @param $setmealRepository
- * @param $memberPointRepository
- * @param $memberHandselRepository
- * @param $companyRepository
- * @param $membersChargeLogRepository
- */
- public function __construct(MemberSetmealRepository $memberSetmealRepository, MembersChargeLogRepository $membersChargeLogRepository, CompanyRepository $companyRepository, MemberHandselRepository $memberHandselRepository, MemberPointRepository $memberPointRepository, SetmealRepository $setmealRepository
- ,MemberSetmealRecordRepository $memberSetmealRecordRepository)
- {
- $this->memberSetmealRepository = $memberSetmealRepository;
- $this->setmealRepository = $setmealRepository;
- $this->memberPointRepository = $memberPointRepository;
- $this->memberHandselRepository = $memberHandselRepository;
- $this->companyRepository = $companyRepository;
- $this->membersChargeLogRepository = $membersChargeLogRepository;
- $this->memberSetmealRecordRepository=$memberSetmealRecordRepository;
- }
- /**注册赠送套餐
- * @param $user
- * @param $setmeal_id
- * @return array
- * @throws \Prettus\Validator\Exceptions\ValidatorException
- */
- public function addMemberSetmeal($user, $setmeal_id)
- {
- $setsqlarr['uid']=$user->id;
- $setmeal = $this->setmealRepository->find($setmeal_id);
- $setsqlarr['expire']=0;
- $setsqlarr['setmeal_id']=$setmeal->id;
- $setsqlarr['setmeal_name']=$setmeal->setmeal_name;
- $setsqlarr['starttime']=time();
- $setsqlarr['days']=$setmeal->days;
- if ($setmeal->days>0) {
- $setsqlarr['endtime']=strtotime("".$setmeal->days." days");
- } else {
- $setsqlarr['endtime']=0;
- }
- $setsqlarr['expense']=$setmeal->expense;
- $setsqlarr['jobs_meanwhile']=$setmeal->jobs_meanwhile;
- $setsqlarr['refresh_jobs_free']=$setmeal->refresh_jobs_free;
- $setsqlarr['download_resume']=$setmeal->download_resume;
- $setsqlarr['download_resume_max']=$setmeal->download_resume_max;
- $setsqlarr['jobfair_num']=$setmeal->jobfair_num;
- $setsqlarr['added']=$setmeal->added;
- $setsqlarr['setmeal_img']=$setmeal->setmeal_img;
- $setsqlarr['show_apply_contact']=$setmeal->show_apply_contact;
- $setsqlarr['show_contact_direct']=$setmeal->show_contact_direct;
- $setsqlarr['is_free']=$setmeal->is_free;
- $setsqlarr['discount_download_resume']=$setmeal->discount_download_resume;
- $setsqlarr['discount_sms']=$setmeal->discount_sms;
- $setsqlarr['discount_stick']=$setmeal->discount_stick;
- $setsqlarr['discount_emergency']=$setmeal->discount_emergency;
- $setsqlarr['discount_tpl']=$setmeal->discount_tpl;
- $setsqlarr['discount_auto_refresh_jobs']=$setmeal->discount_auto_refresh_jobs;
- if (false === $this->memberSetmealRepository->create($setsqlarr)) {
- return array('state'=>false,'error'=>'数据添加失败');
- } else {
- //删除 是否过期 以及套餐图标
- unset($setsqlarr['expire']);
- unset($setsqlarr['setmeal_img']);
- //往套餐记录里头添加
- if($this->memberSetmealRecordRepository->create($setsqlarr)===false){
- return array('state'=>false,'error'=>'添加记录失败!');
- }
- //如果套餐有赠送积分,则直接更新用户积分表
- if ($setmeal->set_points) {
- if ($this->memberPointRepository->reportDeal($user->id, 1, 1, $setmeal->set_points)) {
- // 写入会员积分操作日志
- $handsel['uid'] = $user->id;
- $handsel['htype'] = 'setmeal_gifts';
- $handsel['htype_cn'] = '套餐内赠送';
- $handsel['operate'] = 1;
- $handsel['points'] = $setmeal->set_points;
- $this->memberHandselRepository->addNew($handsel);
- }
- }
- //如果套餐有赠送短信,则直接更新用户表的短信条数字段
- if ($setmeal->set_sms) {
- $this->companyRepository->updataSmsNum($user->id, 1, $setmeal->set_sms);
- }
- $this->companyRepository->companySave(['setmeal_id'=>$setmeal->id, 'setmeal_name'=>$setmeal->setmeal_name], $user->id);
- }
- if ($setmeal_id>0) {
- // 套餐变更记录
- $this->membersChargeLogRepository->createLog($user, '注册会员系统自动赠送:'.$setmeal->setmeal_name, '0.00', 1, 1, 2);
- }
- return array('state'=>true);
- }
- public function getUserSetmeal($user, $utype)
- {
- return $this->memberSetmealRepository->getSetmealByUid($user->id, $utype);
- }
- /**
- * $uid 会员uid
- * $actio 套餐项
- * $type 套餐项加减 (主要针对 发布职位默认为1是加,2为减)
- */
- public function actionUserSetmeal($uid, $action, $type = 1, $num = 1)
- {
- if ($type==1) {
- return $this->memberSetmealRepository->incrementData(array('uid'=>$uid), $action, $num);
- } elseif ($type==2) {
- $usersetmeal = $this->memberSetmealRepository->getSetmealByUid($uid, $num);
- if ($usersetmeal->$action > 0) {
- return $this->memberSetmealRepository->decrementData(array('uid'=>$uid), $action, $num);
- } else {
- return $this->memberSetmealRepository->updateSetmeal(array($action=>0), $usersetmeal->id);
- }
- }
- }
- public function getSetmealByUid($uid, $utype)
- {
- return $this->memberSetmealRepository->getSetmealByUid($uid, $utype);
- }
- }
|