SendMsgController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/4/27
  6. * Time: 下午4:26
  7. */
  8. namespace app\frontend\controllers;
  9. use app\common\components\BaseController;
  10. use app\common\services\SystemMsgService;
  11. use app\common\models\UniAccount;
  12. use app\common\facades\Setting;
  13. class SendMsgController extends BaseController
  14. {
  15. //校验
  16. public function checkSign()
  17. {
  18. $sign = request()->sign;
  19. $timeStamp = request()->timeStamp;
  20. if(empty($sign) || empty($timeStamp)){
  21. return [
  22. 'result' => 0,
  23. 'msg' => '参数错误'
  24. ];
  25. }
  26. if((time()-$timeStamp) > 60){
  27. return [
  28. 'result' => 0,
  29. 'msg' => '请求已过时'
  30. ];
  31. }
  32. $uniAccount = UniAccount::getEnable();
  33. foreach ($uniAccount as $u) {
  34. //循环取出key,一一对比,一个对了则通过
  35. Setting::$uniqueAccountId = $u->uniacid;
  36. $upgrade = Setting::get('shop.key');
  37. if(!empty($upgrade) && $sign == md5($upgrade['key'].$timeStamp)){
  38. return [
  39. 'result' => 1
  40. ];
  41. }
  42. }
  43. return [
  44. 'result' => 0,
  45. 'msg' => '签名错误'
  46. ];
  47. }
  48. //推送紧急系统通知
  49. public function pushMessage()
  50. {
  51. $checkRes = $this->checkSign();
  52. if($checkRes['result'] == 0){
  53. return $this->errorJson($checkRes['msg']);
  54. }
  55. $request = request()->all();
  56. if(empty($request['content']))
  57. {
  58. return $this->errorJson('通知内容必须填写');
  59. }
  60. $param = [
  61. 'title' => $request['title']?$request['title']:'您有一条紧急通知,请及时查看!',
  62. 'content' => $request['content'],
  63. 'redirect_url' => ''
  64. ];
  65. $uniAccount = UniAccount::getEnable();
  66. $success = 0;
  67. $fail = 0;
  68. foreach ($uniAccount as $u) {
  69. $res = (new SystemMsgService($u->uniacid))->sendSysMsg(1,$param);
  70. if($res){
  71. $success++;
  72. }else{
  73. $fail++;
  74. }
  75. }
  76. if($success > 0){
  77. return $this->successJson('成功:'.$success.',失败:'.$fail);
  78. }
  79. return $this->errorJson('推送紧急通知失败');
  80. }
  81. //插件升级
  82. public function pluginUpgrade()
  83. {
  84. $checkRes = $this->checkSign();
  85. if($checkRes['result'] == 0){
  86. return $this->errorJson($checkRes['msg']);
  87. }
  88. $param = [
  89. 'title' => '您有新的系统更新信息,请注意查看!',
  90. 'content' => '时间:'.date('Y-m-d H:i:s'),
  91. 'redirect_url' => yzWebUrl('plugin.plugins-market.Controllers.new-market.show')
  92. ];
  93. $uniAccount = UniAccount::getEnable();
  94. $success = 0;
  95. $fail = 0;
  96. foreach ($uniAccount as $u) {
  97. $res = (new SystemMsgService($u->uniacid))->sendSysMsg(1,$param);
  98. if($res){
  99. $success++;
  100. }else{
  101. $fail++;
  102. }
  103. }
  104. if($success > 0){
  105. return $this->successJson('成功:'.$success.',失败:'.$fail);
  106. }
  107. return $this->errorJson('推送插件升级通知失败');
  108. }
  109. }