TelegramBotUserServices.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. namespace App\Http\Services\Telegram;
  3. use App\Models\Telegram\TelegramBotUser;
  4. use App\Models\Telegram\TelegramBotGroup;
  5. class TelegramBotUserServices
  6. {
  7. /**
  8. * 用户关注
  9. * @param $data json数据
  10. */
  11. public function userfollow($request)
  12. {
  13. //私聊
  14. if($request['chattype'] == 'private'){
  15. $model = TelegramBotUser::where('bot_rid',$request['bot_rid'])->where('tg_uid',$request['tguserid'])->first();
  16. //不存在,且新关注
  17. if(empty($model) && $request['status'] == 'member'){
  18. TelegramBotUser::create([
  19. 'bot_rid' => $request['bot_rid'],
  20. 'tg_uid' => $request['tguserid'],
  21. 'tg_username' => $request['tgusername'],
  22. 'status' => 1, //当前状态:1使用中,2已停用
  23. 'tg_nickname' => $request['tgusernickname'],
  24. 'first_time' => now()
  25. ]);
  26. //已存在,重复关注
  27. }elseif ($request['status'] == 'member') {
  28. $save_data = [];
  29. $save_data['status'] = 1;
  30. $save_data['tg_username'] = $request['tgusername'];
  31. $save_data['tg_nickname'] = $request['tgusernickname'];
  32. $save_data['last_time'] = now();
  33. $save_data['stop_time'] = null;
  34. TelegramBotUser::where('rid',$model['rid'])->update($save_data);
  35. }
  36. //已存在,取消关注
  37. if(!empty($model) && $request['status'] == 'kicked'){
  38. $save_data = [];
  39. $save_data['status'] = 2;
  40. $save_data['stop_time'] = now();
  41. TelegramBotUser::where('rid',$model['rid'])->update($save_data);
  42. }
  43. }
  44. //群组
  45. if($request['chattype'] == 'supergroup' || $request['chattype'] == 'group'){
  46. $model = TelegramBotGroup::where('bot_rid',$request['bot_rid'])->where('tg_groupid',$request['chatid'])->first();
  47. //不存在,且新关注
  48. if(empty($model) && ($request['status'] == 'member' || $request['status'] == 'administrator')){
  49. TelegramBotGroup::create([
  50. 'bot_rid' => $request['bot_rid'],
  51. 'group_type' => $request['chattype'],
  52. 'tg_groupid' => $request['chatid'],
  53. 'tg_groupusername' => $request['tgusername'],
  54. 'tg_groupnickname' => $request['grouptitle'],
  55. 'status' => 1, //当前状态:1使用中,2已停用
  56. 'first_time' => now(),
  57. 'is_admin' => $request['status'] == 'administrator' ?'Y':'N'
  58. ]);
  59. //已存在,重复关注
  60. }elseif ($request['status'] == 'member' || $request['status'] == 'administrator') {
  61. $save_data = [];
  62. $save_data['status'] = 1;
  63. $save_data['tg_groupusername'] = $request['tgusername'];
  64. $save_data['tg_groupnickname'] = $request['grouptitle'];
  65. $save_data['last_time'] = now();
  66. $save_data['stop_time'] = null;
  67. $save_data['is_admin'] = $request['status'] == 'administrator' ?'Y':'N';
  68. TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
  69. }
  70. //已存在,取消关注
  71. if(!empty($model) && ($request['status'] == 'kicked' || $request['status'] == 'left')){
  72. $save_data = [];
  73. $save_data['status'] = 2;
  74. $save_data['stop_time'] = now();
  75. TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
  76. }
  77. }
  78. }
  79. /**
  80. * 改名称
  81. * @param $data json数据
  82. */
  83. public function changenickname($request)
  84. {
  85. //私聊
  86. if($request['chattype'] == 'private'){
  87. $model = TelegramBotUser::where('bot_rid',$request['bot_rid'])->where('tg_uid',$request['tguserid'])->first();
  88. //不存在,且新关注
  89. if(empty($model) && $request['status'] == 'member'){
  90. TelegramBotUser::create([
  91. 'bot_rid' => $request['bot_rid'],
  92. 'tg_uid' => $request['tguserid'],
  93. 'tg_username' => $request['tgusername'],
  94. 'status' => 1, //当前状态:1使用中,2已停用
  95. 'tg_nickname' => $request['tgusernickname'],
  96. 'first_time' => now()
  97. ]);
  98. //已存在,重复关注
  99. }elseif ($request['status'] == 'member') {
  100. $save_data = [];
  101. $save_data['status'] = 1;
  102. $save_data['tg_username'] = $request['tgusername'];
  103. $save_data['tg_nickname'] = $request['tgusernickname'];
  104. $save_data['last_time'] = now();
  105. $save_data['stop_time'] = null;
  106. TelegramBotUser::where('rid',$model['rid'])->update($save_data);
  107. }
  108. //已存在,取消关注
  109. if(!empty($model) && $request['status'] == 'kicked'){
  110. $save_data = [];
  111. $save_data['status'] = 2;
  112. $save_data['stop_time'] = now();
  113. TelegramBotUser::where('rid',$model['rid'])->update($save_data);
  114. }
  115. }
  116. //群组
  117. if($request['chattype'] == 'supergroup' || $request['chattype'] == 'group'){
  118. $model = TelegramBotGroup::where('bot_rid',$request['bot_rid'])->where('tg_groupid',$request['chatid'])->first();
  119. //不存在,且新关注
  120. if(empty($model)){
  121. TelegramBotGroup::create([
  122. 'bot_rid' => $request['bot_rid'],
  123. 'group_type' => $request['chattype'],
  124. 'tg_groupid' => $request['chatid'],
  125. 'tg_groupusername' => $request['chatusername'],
  126. 'tg_groupnickname' => $request['newchattitle'],
  127. 'status' => 1, //当前状态:1使用中,2已停用
  128. 'first_time' => now()
  129. ]);
  130. //已存在
  131. }else{
  132. $save_data = [];
  133. $save_data['status'] = 1;
  134. $save_data['tg_groupusername'] = $request['chatusername'];
  135. $save_data['tg_groupnickname'] = $request['newchattitle'];
  136. $save_data['last_time'] = now();
  137. $save_data['stop_time'] = null;
  138. TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
  139. }
  140. }
  141. }
  142. }