EverydaySignIn.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Wechat\Official\Event\Click;
  3. use App\Models\Company;
  4. use App\Models\Member;
  5. use App\Services\Company\CompanyService;
  6. use App\Services\Person\ResumeService;
  7. use App\Wechat\Official\Event\EventInterface;
  8. /**
  9. * 公共号每日签到。
  10. * Class EverydaySignIn
  11. * @package App\Wechat\Official\Event\Click
  12. */
  13. class EverydaySignIn implements EventInterface
  14. {
  15. /**
  16. * @var ResumeService
  17. */
  18. private $resumeService;
  19. private $companyService;
  20. /**
  21. * PersonResumeRefresh constructor.
  22. * @param ResumeService $resumeService
  23. */
  24. public function __construct(ResumeService $resumeService, CompanyService $companyService)
  25. {
  26. $this->resumeService = $resumeService;
  27. $this->companyService = $companyService;
  28. }
  29. /**
  30. * @param array $wechatUser 从微信里获取的用户基本信息
  31. * @param bool|Company|Member $user 有没有绑定系统用户,false为未绑定,否则为对应的用户模型
  32. * @param array $payload 该事件的参数
  33. * @return mixed
  34. */
  35. public function handle(array $wechatUser, $user, array $payload)
  36. {
  37. if (!$user) {
  38. return "您还没有绑定账号,请先绑定账号:\n".
  39. "<a href='".route('mobile.auth.thirdlogin.official')."'>点此立即绑定</a>";
  40. }
  41. if ($user instanceof Company) {
  42. $url = route('mobile.auth.thirdlogin.official')
  43. .'?redirect_url='.urlencode(route('mobile.firm.index'));
  44. $companyData = $this->companyService->signIn($user);
  45. if ($companyData['code'] == 1) {
  46. return "签到成功, 获得{$companyData['info']}积分:\n".
  47. "<a href='".$url."'>前往查看</a>";
  48. } else {
  49. return "签到失败,失败原因为:{$companyData['msg']}";
  50. }
  51. }
  52. if ($user instanceof Member) {
  53. $url = route('mobile.auth.thirdlogin.official')
  54. .'?redirect_url='.urlencode(route('mobile.person.index'));
  55. $memberData = $this->resumeService->signIn($user);
  56. $res = $memberData['info'];
  57. if ($memberData['code'] == 1) {
  58. return "签到成功, 获得{$res}积分:\n".
  59. "<a href='".$url."'>前往查看</a>";
  60. } else {
  61. return "签到失败,失败原因为:{$res}";
  62. }
  63. }
  64. }
  65. }