MembersSetmealService.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2018/11/12
  6. * Time: 10:24
  7. */
  8. namespace App\Services\Common;
  9. use App\Repositories\CompanyRepository;
  10. use App\Repositories\MemberHandselRepository;
  11. use App\Repositories\MemberPointRepository;
  12. use App\Repositories\MembersChargeLogRepository;
  13. use App\Repositories\MemberSetmealRecordRepository;
  14. use App\Repositories\MemberSetmealRepository;
  15. use App\Repositories\SetmealRepository;
  16. use Illuminate\Contracts\Logging\Log;
  17. use Illuminate\Support\Facades\DB;
  18. class MembersSetmealService
  19. {
  20. protected $memberSetmealRepository;
  21. protected $setmealRepository;
  22. protected $memberPointRepository;
  23. protected $memberHandselRepository;
  24. protected $companyRepository;
  25. protected $membersChargeLogRepository;
  26. protected $memberSetmealRecordRepository;
  27. /**
  28. * MembersSetmealService constructor.
  29. * @param $memberSetmealRepository
  30. * @param $setmealRepository
  31. * @param $memberPointRepository
  32. * @param $memberHandselRepository
  33. * @param $companyRepository
  34. * @param $membersChargeLogRepository
  35. */
  36. public function __construct(MemberSetmealRepository $memberSetmealRepository, MembersChargeLogRepository $membersChargeLogRepository, CompanyRepository $companyRepository, MemberHandselRepository $memberHandselRepository, MemberPointRepository $memberPointRepository, SetmealRepository $setmealRepository
  37. ,MemberSetmealRecordRepository $memberSetmealRecordRepository)
  38. {
  39. $this->memberSetmealRepository = $memberSetmealRepository;
  40. $this->setmealRepository = $setmealRepository;
  41. $this->memberPointRepository = $memberPointRepository;
  42. $this->memberHandselRepository = $memberHandselRepository;
  43. $this->companyRepository = $companyRepository;
  44. $this->membersChargeLogRepository = $membersChargeLogRepository;
  45. $this->memberSetmealRecordRepository=$memberSetmealRecordRepository;
  46. }
  47. /**注册赠送套餐
  48. * @param $user
  49. * @param $setmeal_id
  50. * @return array
  51. * @throws \Prettus\Validator\Exceptions\ValidatorException
  52. */
  53. public function addMemberSetmeal($user, $setmeal_id)
  54. {
  55. $setsqlarr['uid']=$user->id;
  56. $setmeal = $this->setmealRepository->find($setmeal_id);
  57. $setsqlarr['expire']=0;
  58. $setsqlarr['setmeal_id']=$setmeal->id;
  59. $setsqlarr['setmeal_name']=$setmeal->setmeal_name;
  60. $setsqlarr['starttime']=time();
  61. $setsqlarr['days']=$setmeal->days;
  62. if ($setmeal->days>0) {
  63. $setsqlarr['endtime']=strtotime("".$setmeal->days." days");
  64. } else {
  65. $setsqlarr['endtime']=0;
  66. }
  67. $setsqlarr['expense']=$setmeal->expense;
  68. $setsqlarr['jobs_meanwhile']=$setmeal->jobs_meanwhile;
  69. $setsqlarr['refresh_jobs_free']=$setmeal->refresh_jobs_free;
  70. $setsqlarr['download_resume']=$setmeal->download_resume;
  71. $setsqlarr['download_resume_max']=$setmeal->download_resume_max;
  72. $setsqlarr['jobfair_num']=$setmeal->jobfair_num;
  73. $setsqlarr['added']=$setmeal->added;
  74. $setsqlarr['setmeal_img']=$setmeal->setmeal_img;
  75. $setsqlarr['show_apply_contact']=$setmeal->show_apply_contact;
  76. $setsqlarr['show_contact_direct']=$setmeal->show_contact_direct;
  77. $setsqlarr['is_free']=$setmeal->is_free;
  78. $setsqlarr['discount_download_resume']=$setmeal->discount_download_resume;
  79. $setsqlarr['discount_sms']=$setmeal->discount_sms;
  80. $setsqlarr['discount_stick']=$setmeal->discount_stick;
  81. $setsqlarr['discount_emergency']=$setmeal->discount_emergency;
  82. $setsqlarr['discount_tpl']=$setmeal->discount_tpl;
  83. $setsqlarr['discount_auto_refresh_jobs']=$setmeal->discount_auto_refresh_jobs;
  84. if (false === $this->memberSetmealRepository->create($setsqlarr)) {
  85. return array('state'=>false,'error'=>'数据添加失败');
  86. } else {
  87. //删除 是否过期 以及套餐图标
  88. unset($setsqlarr['expire']);
  89. unset($setsqlarr['setmeal_img']);
  90. //往套餐记录里头添加
  91. if($this->memberSetmealRecordRepository->create($setsqlarr)===false){
  92. return array('state'=>false,'error'=>'添加记录失败!');
  93. }
  94. //如果套餐有赠送积分,则直接更新用户积分表
  95. if ($setmeal->set_points) {
  96. if ($this->memberPointRepository->reportDeal($user->id, 1, 1, $setmeal->set_points)) {
  97. // 写入会员积分操作日志
  98. $handsel['uid'] = $user->id;
  99. $handsel['htype'] = 'setmeal_gifts';
  100. $handsel['htype_cn'] = '套餐内赠送';
  101. $handsel['operate'] = 1;
  102. $handsel['points'] = $setmeal->set_points;
  103. $this->memberHandselRepository->addNew($handsel);
  104. }
  105. }
  106. //如果套餐有赠送短信,则直接更新用户表的短信条数字段
  107. if ($setmeal->set_sms) {
  108. $this->companyRepository->updataSmsNum($user->id, 1, $setmeal->set_sms);
  109. }
  110. $this->companyRepository->companySave(['setmeal_id'=>$setmeal->id, 'setmeal_name'=>$setmeal->setmeal_name], $user->id);
  111. }
  112. if ($setmeal_id>0) {
  113. // 套餐变更记录
  114. $this->membersChargeLogRepository->createLog($user, '注册会员系统自动赠送:'.$setmeal->setmeal_name, '0.00', 1, 1, 2);
  115. }
  116. return array('state'=>true);
  117. }
  118. public function getUserSetmeal($user, $utype)
  119. {
  120. return $this->memberSetmealRepository->getSetmealByUid($user->id, $utype);
  121. }
  122. /**
  123. * $uid 会员uid
  124. * $actio 套餐项
  125. * $type 套餐项加减 (主要针对 发布职位默认为1是加,2为减)
  126. */
  127. public function actionUserSetmeal($uid, $action, $type = 1, $num = 1)
  128. {
  129. if ($type==1) {
  130. return $this->memberSetmealRepository->incrementData(array('uid'=>$uid), $action, $num);
  131. } elseif ($type==2) {
  132. $usersetmeal = $this->memberSetmealRepository->getSetmealByUid($uid, $num);
  133. if ($usersetmeal->$action > 0) {
  134. return $this->memberSetmealRepository->decrementData(array('uid'=>$uid), $action, $num);
  135. } else {
  136. return $this->memberSetmealRepository->updateSetmeal(array($action=>0), $usersetmeal->id);
  137. }
  138. }
  139. }
  140. public function getSetmealByUid($uid, $utype)
  141. {
  142. return $this->memberSetmealRepository->getSetmealByUid($uid, $utype);
  143. }
  144. }