Messenger.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace app\job;
  3. use think\queue\Job;
  4. use think\facade\Log;
  5. use think\facade\Db;
  6. use app\common\api\ChuanglanSmsApi;
  7. use app\common\model\MessageRecord;
  8. /**
  9. * Description of Messenger
  10. *
  11. * @author sgq
  12. */
  13. class Messenger {
  14. public function fire(Job $job, $data) {
  15. if ($this->deal($data)) {
  16. Log::info(json_encode($data));
  17. $job->delete();
  18. return true;
  19. }
  20. Log::error(json_encode($data));
  21. if ($job->attempts() >= 3) {
  22. $job->delete();
  23. return false;
  24. }
  25. $job->release(10); //10秒后重试
  26. }
  27. /**
  28. * 处理业务逻辑
  29. * @param type $data
  30. * @return bool
  31. */
  32. public function deal($data): bool {
  33. $type = $data["type"];
  34. switch ($type) {
  35. case 1:
  36. //通知单位审核注册
  37. break;
  38. case 2:
  39. //通知人才申报初审人员
  40. try {
  41. $userId = $data["userId"];
  42. $name = $data["name"];
  43. $phone = $data["phone"];
  44. $count = $data["count"];
  45. $template = sprintf("【晋江市人才服务平台】您的部门有%d条人才认定申报记录待初审,请及时登录审批系统处理。", $count);
  46. $smsapi = new ChuanglanSmsApi();
  47. $result = $smsapi->sendSMS($phone, $template);
  48. $result = json_decode($result, true);
  49. $id = getStringId();
  50. $record_data = [
  51. 'id' => $id,
  52. 'userId' => $userId,
  53. 'bizId' => $result["msgId"],
  54. 'type' => 1,
  55. 'smsType' => 2,
  56. 'name' => $name,
  57. 'phone' => $phone,
  58. 'params' => "初级审核",
  59. 'templateCode' => $template,
  60. 'state' => $result['code'] == 0 ? 2 : 3,
  61. 'sendingDate' => date("Y-m-d H:i:s", time()),
  62. 'createTime' => date("Y-m-d H:i:s", time()),
  63. 'msg' => $result['errorMsg']
  64. ];
  65. MessageRecord::create($record_data);
  66. return true;
  67. } catch (\think\Exception $e) {
  68. return false;
  69. }
  70. break;
  71. case 3:
  72. //通知人才申报部门审核人员
  73. try {
  74. $userId = $data["userId"];
  75. $name = $data["name"];
  76. $phone = $data["phone"];
  77. $count = $data["count"];
  78. $template = sprintf("【晋江市人才服务平台】您的部门有%d条人才认定申报记录待部门审核,请及时登录审批系统处理。", $count);
  79. $smsapi = new ChuanglanSmsApi();
  80. $result = $smsapi->sendSMS($phone, $template);
  81. $result = json_decode($result, true);
  82. $id = getStringId();
  83. $record_data = [
  84. 'id' => $id,
  85. 'userId' => $userId,
  86. 'bizId' => $result["msgId"],
  87. 'type' => 1,
  88. 'smsType' => 2,
  89. 'name' => $name,
  90. 'phone' => $phone,
  91. 'params' => "部门审核",
  92. 'templateCode' => $template,
  93. 'state' => $result['code'] == 0 ? 2 : 3,
  94. 'sendingDate' => date("Y-m-d H:i:s", time()),
  95. 'createTime' => date("Y-m-d H:i:s", time()),
  96. 'msg' => $result['errorMsg']
  97. ];
  98. MessageRecord::create($record_data);
  99. return true;
  100. } catch (\think\Exception $e) {
  101. return false;
  102. }
  103. break;
  104. }
  105. return false;
  106. }
  107. }