OfficialController.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. namespace App\Http\Controllers\Api\Wechat;
  3. use App\Http\Controllers\Api\ApiBaseController;
  4. use App\Models\Config;
  5. use App\Models\WeixinReply;
  6. use App\Services\Common\WechatService;
  7. use App\Wechat\Official\EventHandle;
  8. use App\Wechat\Official\MessageHandle;
  9. use EasyWeChat\Kernel\Messages\Message;
  10. class OfficialController extends ApiBaseController
  11. {
  12. /**
  13. * @var WechatService
  14. */
  15. private $wechatService;
  16. /**
  17. * OfficialController constructor.
  18. * @param WechatService $wechatService
  19. */
  20. public function __construct(WechatService $wechatService)
  21. {
  22. $this->wechatService = $wechatService;
  23. }
  24. public function index()
  25. {
  26. $official=$this->wechatService->getOfficialAccount(get_subsite_id());
  27. $official->server->push(EventHandle::class, Message::EVENT);//微信事件过滤
  28. $official->server->push(MessageHandle::class, Message::TEXT | Message::IMAGE );//被动消息过滤(图片和文字),是否触发步骤事件
  29. $official->server->push(function ($message) {
  30. $default_reply=WeixinReply::where('type', 2)->get();
  31. $key_reply=WeixinReply::where('send', $message['Content'])->where('type', 1)->first();
  32. if ($key_reply) {
  33. return $key_reply->reply;
  34. }
  35. if ($default_reply->isEmpty()) {
  36. return "";
  37. }
  38. return $default_reply->random()->reply;
  39. }, Message::TEXT);
  40. return $official->server->serve();
  41. }
  42. public function pushMenu()
  43. {
  44. $official=$this->wechatService->getOfficialAccount(get_subsite_id());
  45. $config=Config::where('alias','wechat_exe_jobfair_app_id')->select('value')->first();
  46. $menu = [
  47. [
  48. "name" => "个人服务",
  49. "sub_button" => [
  50. [
  51. "type" => "click",
  52. "name" => "刷新简历",
  53. "key" => "PersonResumeRefresh"
  54. ],
  55. [
  56. "type" => "view",
  57. "name" => "面试邀请",
  58. "url" => route('mobile.auth.thirdlogin.official')
  59. .'?redirect_url='.urlencode(route('mobile.person.jobs_interview'))
  60. ],
  61. [
  62. "type" => "view",
  63. "name" => "投递反馈",
  64. "url" => route('mobile.auth.thirdlogin.official')
  65. .'?redirect_url='.urlencode(route('mobile.person.apply_jobs'))
  66. ],
  67. [
  68. "type" => "view",
  69. "name" => "职位搜索",
  70. "url" => route('mobile.auth.thirdlogin.official')
  71. .'?redirect_url='.urlencode(route('mobile.jobs'))
  72. ],
  73. [
  74. "type" => "view",
  75. "name" => "个人中心",
  76. "url" => route('mobile.auth.thirdlogin.official')
  77. .'?redirect_url='.urlencode(route('mobile.person.index'))
  78. ]
  79. ],
  80. ],
  81. [
  82. "name" => "企业服务",
  83. "sub_button" => [
  84. [
  85. "type" => "click",
  86. "name" => "刷新职位",
  87. "key" => "CompanyJobRefresh"
  88. ],
  89. [
  90. "type" => "view",
  91. "name" => "职位管理",
  92. "url" => route('mobile.auth.thirdlogin.official')
  93. .'?redirect_url='.urlencode(route('mobile.firm.jobs.list'))
  94. ],
  95. [
  96. "type" => "view",
  97. "name" => "应聘简历",
  98. "url" => route('mobile.auth.thirdlogin.official')
  99. .'?redirect_url='.urlencode(route('mobile.firm.resume.apply'))
  100. ],
  101. [
  102. "type" => "view",
  103. "name" => "简历搜索",
  104. "url" => route('mobile.auth.thirdlogin.official')
  105. .'?redirect_url='.urlencode(route('mobile.resumes'))
  106. ]
  107. ],
  108. ],
  109. [
  110. "name" => "更多精彩",
  111. "sub_button" => [
  112. [
  113. "type" => "click",
  114. "name" => "每日签到",
  115. "key" => "EverydaySignIn"
  116. ],
  117. [
  118. "type" => "view",
  119. "name" => "账号绑定",
  120. "url" => route('mobile.auth.thirdlogin.official')
  121. ],
  122. [
  123. "type" => "view",
  124. "name" => "最近招聘会",
  125. "url" => route('mobile.auth.thirdlogin.official')
  126. .'?redirect_url='.urlencode(route('mobile.jobfair.index'))
  127. ],
  128. [
  129. "type" => "view",
  130. "name" => "进入官网",
  131. "url" => route('mobile.home')
  132. ],
  133. [
  134. "type" => "miniprogram",
  135. "name" => "线上招聘会",
  136. "url" => route('mobile.firm.jobfair.net'),
  137. "appid" => $config->value,
  138. "pagepath" => "pages/job_fair/job_fair"
  139. ],
  140. ],
  141. ]
  142. ];
  143. $official->menu->create($menu);
  144. }
  145. }