Messenger.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. case 5:
  142. //变更通过通知代理人
  143. try {
  144. $userId = $data["userId"];
  145. $phone = $data["phone"];
  146. $template = $data["template"];
  147. $smsapi = new ChuanglanSmsApi();
  148. $result = $smsapi->sendSMS($phone, $template);
  149. $result = json_decode($result, true);
  150. $recordId = getStringId();
  151. $record_data = [
  152. 'id' => $recordId,
  153. 'userId' => $userId,
  154. 'bizId' => $result["msgId"],
  155. 'type' => 2,
  156. 'smsType' => 1,
  157. 'phone' => $phone,
  158. 'params' => '人才层次变更公示',
  159. 'templateCode' => $template,
  160. 'state' => $result['code'] == 0 ? 2 : 3,
  161. 'sendingDate' => date("Y-m-d H:i:s", time()),
  162. 'createTime' => date("Y-m-d H:i:s", time()),
  163. 'msg' => $result['errorMsg']
  164. ];
  165. MessageRecord::create($record_data);
  166. return true;
  167. } catch (\think\Exception $e) {
  168. Log::error(json_encode($data));
  169. Log::error($e->getMessage());
  170. return false;
  171. }
  172. break;
  173. case 6:
  174. //通用短信
  175. try {
  176. $userId = $data["userId"];
  177. $phone = $data["phone"];
  178. $template = $data["template"];
  179. $userType = $data["userType"];
  180. $processName = $data["processName"];
  181. $smsapi = new ChuanglanSmsApi();
  182. $result = $smsapi->sendSMS($phone, $template);
  183. $result = json_decode($result, true);
  184. $recordId = getStringId();
  185. $record_data = [
  186. 'id' => $recordId,
  187. 'userId' => $userId,
  188. 'bizId' => $result["msgId"],
  189. 'type' => $userType,
  190. 'smsType' => 1,
  191. 'phone' => $phone,
  192. 'params' => $processName,
  193. 'templateCode' => $template,
  194. 'state' => $result['code'] == 0 ? 2 : 3,
  195. 'sendingDate' => date("Y-m-d H:i:s", time()),
  196. 'createTime' => date("Y-m-d H:i:s", time()),
  197. 'msg' => $result['errorMsg']
  198. ];
  199. MessageRecord::create($record_data);
  200. return true;
  201. } catch (\think\Exception $e) {
  202. Log::error(json_encode($data));
  203. Log::error($e->getMessage());
  204. return false;
  205. }
  206. break;
  207. case 109:
  208. //注销审核通过通知
  209. try {
  210. $id = $data["userId"];
  211. $ep = \app\common\api\EnterpriseApi::getOne($id);
  212. if ($ep && $ep["agentPhone"]) {
  213. $template = sprintf("【晋江市人才服务平台】您申请的账号注销已通过审核,账号注销成功。");
  214. $smsapi = new ChuanglanSmsApi();
  215. $result = $smsapi->sendSMS($ep["agentPhone"], $template);
  216. $result = json_decode($result, true);
  217. $id = getStringId();
  218. $record_data = [
  219. 'id' => getStringId(),
  220. 'userId' => $id,
  221. 'bizId' => $result["msgId"],
  222. 'type' => 2,
  223. 'smsType' => 2,
  224. 'name' => $ep["name"],
  225. 'phone' => $ep["agentPhone"],
  226. 'params' => "账号注销审核",
  227. 'templateCode' => $template,
  228. 'state' => $result['code'] == 0 ? 2 : 3,
  229. 'sendingDate' => date("Y-m-d H:i:s", time()),
  230. 'createTime' => date("Y-m-d H:i:s", time()),
  231. 'msg' => $result['errorMsg']
  232. ];
  233. MessageRecord::create($record_data);
  234. return true;
  235. }
  236. } catch (\think\Exception $e) {
  237. Log::error(json_encode($data));
  238. Log::error($e->getMessage());
  239. return false;
  240. }
  241. break;
  242. }
  243. return false;
  244. }
  245. }