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); } }