Messenger.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. $job->delete();
  17. return true;
  18. }
  19. if ($job->attempts() >= 3) {
  20. $job->delete();
  21. return false;
  22. }
  23. $job->release(10); //10秒后重试
  24. }
  25. /**
  26. * 处理业务逻辑
  27. * @param type $data
  28. * @return bool
  29. */
  30. public function deal($data): bool {
  31. $type = $data["type"];
  32. switch ($type) {
  33. case 1:
  34. //通知单位审核注册
  35. break;
  36. case 2:
  37. //通知人才申报初审人员
  38. try {
  39. $userId = $data["userId"];
  40. $name = $data["name"];
  41. $phone = $data["phone"];
  42. $count = $data["count"];
  43. $template = sprintf("【晋江市人才服务平台】您的部门有%d条人才认定申报记录待初审,请及时登录审批系统处理。", $count);
  44. $smsapi = new ChuanglanSmsApi();
  45. $result = $smsapi->sendSMS($phone, $template);
  46. $result = json_decode($result, true);
  47. $id = getStringId();
  48. $record_data = [
  49. 'id' => $id,
  50. 'userId' => $userId,
  51. 'bizId' => $result["msgId"],
  52. 'type' => 1,
  53. 'smsType' => 2,
  54. 'name' => $name,
  55. 'phone' => $phone,
  56. 'params' => "初级审核",
  57. 'templateCode' => $template,
  58. 'state' => $result['code'] == 0 ? 2 : 3,
  59. 'sendingDate' => date("Y-m-d H:i:s", time()),
  60. 'createTime' => date("Y-m-d H:i:s", time()),
  61. 'msg' => $result['errorMsg']
  62. ];
  63. MessageRecord::create($record_data);
  64. return true;
  65. } catch (\think\Exception $e) {
  66. Log::error(json_encode($data));
  67. Log::error($e->getMessage());
  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. Log::error(json_encode($data));
  102. Log::error($e->getMessage());
  103. return false;
  104. }
  105. break;
  106. case 4:
  107. //通知人才申报复审人员
  108. try {
  109. $userId = $data["userId"];
  110. $name = $data["name"];
  111. $phone = $data["phone"];
  112. $count = $data["count"];
  113. $template = sprintf("【晋江市人才服务平台】您的部门有%d条人才认定申报记录待复审,请及时登录审批系统处理。", $count);
  114. $smsapi = new ChuanglanSmsApi();
  115. $result = $smsapi->sendSMS($phone, $template);
  116. $result = json_decode($result, true);
  117. $id = getStringId();
  118. $record_data = [
  119. 'id' => $id,
  120. 'userId' => $userId,
  121. 'bizId' => $result["msgId"],
  122. 'type' => 1,
  123. 'smsType' => 2,
  124. 'name' => $name,
  125. 'phone' => $phone,
  126. 'params' => "复审",
  127. 'templateCode' => $template,
  128. 'state' => $result['code'] == 0 ? 2 : 3,
  129. 'sendingDate' => date("Y-m-d H:i:s", time()),
  130. 'createTime' => date("Y-m-d H:i:s", time()),
  131. 'msg' => $result['errorMsg']
  132. ];
  133. MessageRecord::create($record_data);
  134. return true;
  135. } catch (\think\Exception $e) {
  136. Log::error(json_encode($data));
  137. Log::error($e->getMessage());
  138. return false;
  139. }
  140. break;
  141. }
  142. return false;
  143. }
  144. }