MessageRecord.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\common\AdminController;
  4. use app\common\api\ChuanglanSmsApi;
  5. use app\common\api\MessageRecordApi;
  6. use app\common\model\MessageRecord as MessageRecordModel;
  7. class MessageRecord extends AdminController {
  8. public function index() {
  9. return view();
  10. }
  11. /**
  12. * 短信日志列表数据
  13. * @return \think\response\Json
  14. */
  15. public function list(){
  16. $res = MessageRecordApi::getList($this->request->param());
  17. return json($res);
  18. }
  19. public function sendMessage(){
  20. $content = trim($this->request['content']);
  21. $title = trim($this->request['title']);
  22. $time_day = date("Ymd",time());
  23. if(\StrUtil::isEmpOrNull($content)){
  24. return json(["msg" => '请填写信息后发送!']);
  25. }
  26. $phone_str = trim($this->request['params']);
  27. $phone_arr = explode(',',$phone_str);
  28. $template = "【晋江市人才服务平台】{$content}";
  29. $bizId = getStringId();
  30. foreach ($phone_arr as $k => $v){
  31. if (!preg_match("/^1[3456789]\d{9}$/", $v)) {
  32. unset($phone_arr[$k]);
  33. continue;
  34. }
  35. $id = getStringId();
  36. $item = [
  37. 'id' => $id,
  38. 'userId' => null,
  39. 'bizId' => $bizId,
  40. 'type' => 2,
  41. 'smsType' => 2,
  42. 'name' => "批量发送({$title}{$time_day})",
  43. 'phone' => $v,
  44. "params" => $v,
  45. "templateCode" => $template,
  46. 'state' => 3,
  47. 'sendingDate' => date("Y-m-d H:i:s",time()),
  48. 'createTime' => date("Y-m-d H:i:s",time())
  49. ];
  50. MessageRecordModel::create($item);
  51. }
  52. $smsapi = new ChuanglanSmsApi();
  53. $result = $smsapi->sendSMS(implode(',',$phone_arr), $template, true);
  54. $result = json_decode($result, true);
  55. if($result['code'] != 0 || !$result){
  56. return json(["msg" => '发送失败,原因:'.$result['errorMsg']]);
  57. }
  58. return json(["msg" => '操作成功(但不代表发送成功)'], 200);
  59. }
  60. public function resendMessage(){
  61. $messageRecordId = $this->request['messageRecordId'];
  62. if(empty($messageRecordId)){
  63. return json(["msg" => '请选择重新发送的记录']);
  64. }
  65. $message = \app\common\model\MessageRecord::where('id',$messageRecordId)->findOrEmpty();
  66. if(!$message || empty($message)){
  67. return json(["msg" => '找不到重发记录']);
  68. }
  69. if($message['state']!=2){
  70. return json(["msg" => '当前记录未发送失败,无法重发']);
  71. }
  72. $smsapi = new ChuanglanSmsApi();
  73. $result = $smsapi->sendSMS($message['phone'], $message['templateCode'], true);
  74. $result = json_decode($result, true);
  75. if($result['code'] != 0 || !$result){
  76. return json(["msg" => '发送失败,原因:'.$result['errorMsg']]);
  77. }
  78. return json(["msg" => '操作成功(但不代表发送成功)'], 200);
  79. }
  80. }