PublicService.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace App\Services;
  3. use App\Constants\HttpStatus;
  4. use App\Models\User;
  5. use Exception;
  6. use Illuminate\Support\Facades\App;
  7. class PublicService extends BaseService
  8. {
  9. public static function init($telegram, $data, $chatId, $firstName, $messageId): void
  10. {
  11. switch ($data) {
  12. case "message@@close"://关闭本条消息
  13. $telegram->deleteMessage(['chat_id' => $chatId, 'message_id' => $messageId]);
  14. break;
  15. }
  16. }
  17. /**
  18. * 设置用户的访客ID
  19. * @param $memberId string 会员编号
  20. * @param $visitorId string 访客ID
  21. * @return void
  22. * @throws Exception
  23. */
  24. public static function setVisitorId(string $memberId, string $visitorId): void
  25. {
  26. try {
  27. $user = User::where('member_id', $memberId)->first();
  28. if (!$user) throw new Exception('验证失败', HttpStatus::CUSTOM_ERROR);
  29. if (empty($user->visitor_id)) {
  30. if (User::where('visitor_id', $visitorId)->exists()) {
  31. User::where('visitor_id', $visitorId)->update(['status' => 1]);
  32. $user->status = 1;
  33. }
  34. $user->visitor_id = $visitorId;
  35. }
  36. if (empty($user->register_ip)) {
  37. $registerIp = request()->ip();
  38. if (User::where('register_ip', $registerIp)->exists()) {
  39. User::where('register_ip', $registerIp)->update(['status' => 1]);
  40. $user->status = 1;
  41. }
  42. $user->register_ip = $registerIp;
  43. }
  44. $user->save();
  45. }catch (Exception $e){
  46. throw new Exception('验证失败', HttpStatus::CUSTOM_ERROR);
  47. }
  48. }
  49. /**
  50. * 用户初始化 (用户注册)/ 更新用户昵称
  51. * @param $chatId
  52. * @param $username
  53. * @param $firstName
  54. * @return User
  55. */
  56. public static function index($chatId, $username, $firstName): User
  57. {
  58. //给每个用户生成一个专属的钱包
  59. WalletService::getUserWallet($chatId);
  60. $user = User::where('member_id', $chatId)->first();
  61. if (!$user) $user = new User();
  62. $user->member_id = $chatId;
  63. $user->first_name = $firstName;
  64. if ($username) $user->username = $username;
  65. $user->save();
  66. return $user;
  67. }
  68. }