OuroGameService.php 4.9 KB

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