123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- namespace App\Http\Services\Telegram;
- use App\Models\Telegram\TelegramBotUser;
- use App\Models\Telegram\TelegramBotGroup;
- class TelegramBotUserServices
- {
- /**
- * 用户关注
- * @param $data json数据
- */
- public function userfollow($request)
- {
- //私聊
- if($request['chattype'] == 'private'){
- $model = TelegramBotUser::where('bot_rid',$request['bot_rid'])->where('tg_uid',$request['tguserid'])->first();
- //不存在,且新关注
- if(empty($model) && $request['status'] == 'member'){
- TelegramBotUser::create([
- 'bot_rid' => $request['bot_rid'],
- 'tg_uid' => $request['tguserid'],
- 'tg_username' => $request['tgusername'],
- 'status' => 1, //当前状态:1使用中,2已停用
- 'tg_nickname' => $request['tgusernickname'],
- 'first_time' => now()
- ]);
- //已存在,重复关注
- }elseif ($request['status'] == 'member') {
- $save_data = [];
- $save_data['status'] = 1;
- $save_data['tg_username'] = $request['tgusername'];
- $save_data['tg_nickname'] = $request['tgusernickname'];
- $save_data['last_time'] = now();
- $save_data['stop_time'] = null;
- TelegramBotUser::where('rid',$model['rid'])->update($save_data);
- }
- //已存在,取消关注
- if(!empty($model) && $request['status'] == 'kicked'){
- $save_data = [];
- $save_data['status'] = 2;
- $save_data['stop_time'] = now();
- TelegramBotUser::where('rid',$model['rid'])->update($save_data);
- }
- }
-
- //群组
- if($request['chattype'] == 'supergroup' || $request['chattype'] == 'group'){
- $model = TelegramBotGroup::where('bot_rid',$request['bot_rid'])->where('tg_groupid',$request['chatid'])->first();
- //不存在,且新关注
- if(empty($model) && ($request['status'] == 'member' || $request['status'] == 'administrator')){
- TelegramBotGroup::create([
- 'bot_rid' => $request['bot_rid'],
- 'group_type' => $request['chattype'],
- 'tg_groupid' => $request['chatid'],
- 'tg_groupusername' => $request['tgusername'],
- 'tg_groupnickname' => $request['grouptitle'],
- 'status' => 1, //当前状态:1使用中,2已停用
- 'first_time' => now(),
- 'is_admin' => $request['status'] == 'administrator' ?'Y':'N'
- ]);
- //已存在,重复关注
- }elseif ($request['status'] == 'member' || $request['status'] == 'administrator') {
- $save_data = [];
- $save_data['status'] = 1;
- $save_data['tg_groupusername'] = $request['tgusername'];
- $save_data['tg_groupnickname'] = $request['grouptitle'];
- $save_data['last_time'] = now();
- $save_data['stop_time'] = null;
- $save_data['is_admin'] = $request['status'] == 'administrator' ?'Y':'N';
- TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
- }
-
- //已存在,取消关注
- if(!empty($model) && ($request['status'] == 'kicked' || $request['status'] == 'left')){
- $save_data = [];
- $save_data['status'] = 2;
- $save_data['stop_time'] = now();
- TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
- }
- }
- }
-
- /**
- * 改名称
- * @param $data json数据
- */
- public function changenickname($request)
- {
- //私聊
- if($request['chattype'] == 'private'){
- $model = TelegramBotUser::where('bot_rid',$request['bot_rid'])->where('tg_uid',$request['tguserid'])->first();
- //不存在,且新关注
- if(empty($model) && $request['status'] == 'member'){
- TelegramBotUser::create([
- 'bot_rid' => $request['bot_rid'],
- 'tg_uid' => $request['tguserid'],
- 'tg_username' => $request['tgusername'],
- 'status' => 1, //当前状态:1使用中,2已停用
- 'tg_nickname' => $request['tgusernickname'],
- 'first_time' => now()
- ]);
- //已存在,重复关注
- }elseif ($request['status'] == 'member') {
- $save_data = [];
- $save_data['status'] = 1;
- $save_data['tg_username'] = $request['tgusername'];
- $save_data['tg_nickname'] = $request['tgusernickname'];
- $save_data['last_time'] = now();
- $save_data['stop_time'] = null;
- TelegramBotUser::where('rid',$model['rid'])->update($save_data);
- }
- //已存在,取消关注
- if(!empty($model) && $request['status'] == 'kicked'){
- $save_data = [];
- $save_data['status'] = 2;
- $save_data['stop_time'] = now();
- TelegramBotUser::where('rid',$model['rid'])->update($save_data);
- }
- }
-
- //群组
- if($request['chattype'] == 'supergroup' || $request['chattype'] == 'group'){
- $model = TelegramBotGroup::where('bot_rid',$request['bot_rid'])->where('tg_groupid',$request['chatid'])->first();
- //不存在,且新关注
- if(empty($model)){
- TelegramBotGroup::create([
- 'bot_rid' => $request['bot_rid'],
- 'group_type' => $request['chattype'],
- 'tg_groupid' => $request['chatid'],
- 'tg_groupusername' => $request['chatusername'],
- 'tg_groupnickname' => $request['newchattitle'],
- 'status' => 1, //当前状态:1使用中,2已停用
- 'first_time' => now()
- ]);
- //已存在
- }else{
- $save_data = [];
- $save_data['status'] = 1;
- $save_data['tg_groupusername'] = $request['chatusername'];
- $save_data['tg_groupnickname'] = $request['newchattitle'];
- $save_data['last_time'] = now();
- $save_data['stop_time'] = null;
- TelegramBotGroup::where('rid',$model['rid'])->update($save_data);
- }
- }
- }
-
- }
|