OuroGameService.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. namespace App\Game\Services;
  3. use App\Facade\TableName;
  4. use App\Game\Config\GameBasicConfig;
  5. use App\Game\GlobalUserInfo;
  6. use App\Http\helper\HttpCurl;
  7. use App\Http\helper\NumConfig;
  8. use App\Models\RecordScoreInfo;
  9. use App\Notification\TelegramBot;
  10. use App\Util;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Support\Facades\Redis;
  13. use Yansongda\Pay\Log;
  14. class OuroGameService
  15. {
  16. const REASON_updateAccount=83;
  17. const REASON_PwaBonus=82;
  18. const REASON_RedEnvelope=12;
  19. const REASON_BindPhone=21;
  20. const REASON_AgentBonus=2;
  21. const REASON_AgentWithDraw=81;
  22. const REASON_RewardCode=90;
  23. public static function notifyWebHall($UserID,$GlobalUID="",$cmd='pay_finish',$data=["Golds"=>0,"PayNum"=>0]){
  24. try {
  25. $url = str_replace("wss:","https:",GameBasicConfig::$HallServer).'/phpapi';
  26. // aaa=111&password=wojiushimima&cmd=pay_finish&UserID=1
  27. if(empty($GlobalUID)){
  28. if(GlobalUserInfo::$me&&GlobalUserInfo::$me->UserID==$UserID){
  29. $user=GlobalUserInfo::$me;
  30. }else{
  31. $user=GlobalUserInfo::getGameUserInfo('UserID',$UserID);
  32. }
  33. if(!$user)return;
  34. $GlobalUID=$user->GlobalUID;
  35. }
  36. $query = ['aaa' => 111, 'password' => 'wojiushimima', 'cmd' => $cmd, 'UserID' => $UserID, 'GlobalUID' => $GlobalUID,'data' => json_encode($data)];
  37. $build_query = $url . '?' . http_build_query($query);
  38. Util::WriteLog("hallnoti",$build_query);
  39. return (new HttpCurl())->curl_get($build_query);
  40. // dd($build_query);
  41. }catch (\Exception $exception){
  42. $telegram = new TelegramBot();
  43. $env = env('APP_ENV');
  44. $telegram->sendMsg($env."24680 hallnotify error:".$exception->getMessage());
  45. }
  46. return false;
  47. }
  48. public static function notifyMail($user_id,$GlobalUID="")
  49. {
  50. self::notifyWebHall($user_id,$GlobalUID,'call_client',["type"=>"refresh_mail"]);
  51. }
  52. public static function getUserInGame($UserID,$GlobalUID="")
  53. {
  54. $key='ingame_state_'.$UserID;
  55. $ingame_state=Redis::get($key)??-1;
  56. return intval($ingame_state);
  57. }
  58. public static function AddScore($UserID,$GiftScore,$reason=null,$notify=true)
  59. {
  60. // 增加用户金币
  61. $OrgScore = DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->value('Score');
  62. Log::info('OuroService变化金币' . $GiftScore);
  63. DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('Score',$GiftScore);
  64. $NowScore=$OrgScore+$GiftScore;
  65. RecordScoreInfo::addScore($UserID, $GiftScore, $reason, $OrgScore); #赠送彩金
  66. if($reason){
  67. DB::connection('sqlsrv')->unprepared("
  68. SET NOCOUNT ON;
  69. use QPRecordDB;
  70. exec QPRecordDB.dbo.GSP_YN_GR_RecordGameScore $UserID,$GiftScore,$reason,0,'',0,0");
  71. }
  72. if(!$notify){
  73. return [$OrgScore,$NowScore];
  74. }
  75. self::notifyWebHall($UserID,"",'pay_finish',["Golds"=>$NowScore,"PayNum"=>$GiftScore]);
  76. return [$OrgScore,$NowScore];
  77. }
  78. public static function AddFreeScore($UserID,$GiftScore,$reason=null,$notify=true)
  79. {
  80. $vip = DB::table(TableName::QPAccountsDB() . 'YN_VIPAccount')
  81. ->where('UserID', $UserID)
  82. ->value('Recharge') ?: 0;
  83. if($vip){
  84. // 增加用户金币
  85. $OrgScore = DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->value('InsureScore');
  86. DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('InsureScore',$GiftScore);
  87. $NowScore=$OrgScore+$GiftScore;
  88. }else{
  89. // 增加用户金币
  90. $OrgScore = DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->value('Score');
  91. DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('Score',$GiftScore);
  92. $NowScore=$OrgScore+$GiftScore;
  93. }
  94. return [$OrgScore,$NowScore];
  95. }
  96. public static function AddDrawBase($UserID, $draw_base, $act_no=2)
  97. {
  98. // 增加可提额度
  99. if (DB::table(TableName::QPRecordDB() . 'RecordUserTotalStatistics')->where('UserID', $UserID)->first()) {
  100. DB::table(TableName::QPRecordDB() . 'RecordUserTotalStatistics')->where('UserID', $UserID)->increment('DrawBase', $draw_base);
  101. } else {
  102. DB::table(TableName::QPRecordDB() . 'RecordUserTotalStatistics')->insert(['UserID' => $UserID, 'DrawBase' => $draw_base]);
  103. }
  104. // 增加记录
  105. DB::table(TableName::agent() . 'add_draw_base')
  106. ->insert([
  107. 'user_id' => $UserID,
  108. 'draw_base' => $draw_base,
  109. 'create_time' => now(),
  110. 'admin_id' => '24680'.$act_no
  111. ]);
  112. }
  113. }