PersonResumeRefresh.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Wechat\Official\Event\Click;
  3. use App\Models\Company;
  4. use App\Models\Member;
  5. use App\Services\Person\ResumeService;
  6. use App\Wechat\Official\Event\EventInterface;
  7. /**
  8. * 公众号个人简历刷新
  9. * Class PersonResumeRefresh
  10. * @package App\Wechat\Official\Event\Click
  11. * Auth Zhong
  12. * Date 2019-05-08
  13. */
  14. class PersonResumeRefresh implements EventInterface
  15. {
  16. /**
  17. * @var ResumeService
  18. */
  19. private $resumeService;
  20. /**
  21. * PersonResumeRefresh constructor.
  22. * @param ResumeService $resumeService
  23. */
  24. public function __construct(ResumeService $resumeService)
  25. {
  26. $this->resumeService = $resumeService;
  27. }
  28. /**
  29. * @param array $wechatUser 从微信里获取的用户基本信息
  30. * @param bool|Company|Member $user 有没有绑定系统用户,false为未绑定,否则为对应的用户模型
  31. * @param array $payload 该事件的参数
  32. * @return mixed
  33. */
  34. public function handle(array $wechatUser, $user, array $payload)
  35. {
  36. if (!$user) {
  37. return "您还没有绑定账号,请先绑定账号:\n".
  38. "<a href='".route('mobile.auth.thirdlogin.official')."'>点此立即绑定</a>";
  39. }
  40. if ($user instanceof Company) {
  41. return "您绑定的是企业账号, 无法操作个人菜单!";
  42. }
  43. $url = route('mobile.auth.thirdlogin.official')
  44. .'?redirect_url='.urlencode(route('mobile.person.resume'));
  45. $resumeData=$this->resumeService->getSuccessResumeCount($user);
  46. if ($resumeData['code'] == 0) {
  47. return "您还没有可以刷新的简历,请先创建或完善简历:\n".
  48. "<a href='".$url."'>点此立即前往</a>";
  49. }
  50. $totalNum=$resumeData['info']->count();
  51. $refreshNum = 0;
  52. $errorMessage = '';
  53. foreach ($resumeData['info'] as $resume) {
  54. $refreshRes = $this->resumeService->refreshResume($resume->id, $user);
  55. if ($refreshRes['code'] == 0) {
  56. $errorMessage = $refreshRes['info'];
  57. continue;
  58. } else {
  59. $refreshNum++;
  60. }
  61. }
  62. $point=$refreshNum*5;
  63. if (empty($errorMessage)) {
  64. return "成功刷新{$refreshNum}/{$totalNum}份简历, 获得{$point}积分:\n".
  65. "<a href='".$url."'>前往查看</a>";
  66. }
  67. return "成功刷新{$refreshNum}/{$totalNum}份简历, 获得{$point}积分:\n".
  68. "剩余简历未刷新成功原因为: {$errorMessage}\n".
  69. "<a href='".$url."'>前往查看</a>";
  70. }
  71. }