ControlController.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. // 单控配置
  4. use App\Facade\TableName;
  5. use App\Http\helper\NumConfig;
  6. use App\Http\helper\Redis;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\DB;
  9. class ControlController
  10. {
  11. // 单控配置列表
  12. public function ControlConfig(Request $request)
  13. {
  14. $list = DB::connection('write')->table('agent.dbo.ControlConfig')->get();
  15. $data = compact('list');
  16. return view('admin.control.config', $data);
  17. }
  18. // 单控配置添加
  19. public function ControlConfig_add(Request $request)
  20. {
  21. if ($request->isMethod('post')) {
  22. $post = $request->post();
  23. $data['Name']=$post['Name'];
  24. unset($post['Name']);
  25. $data['Data']=json_encode($post);
  26. $admin = session('admin');
  27. $data['AdminID'] = $admin->id;
  28. DB::connection('write')->table('agent.dbo.ControlConfig')->insert($data);
  29. return apiReturnSuc();
  30. } else {
  31. $ControlModel = new \App\Models\Control();
  32. $GameDataText=$ControlModel->GameDataText;
  33. return view('admin.control.config_add',compact('GameDataText'));
  34. }
  35. }
  36. // 单控配置修改
  37. public function ControlConfig_update(Request $request, $ID)
  38. {
  39. if ($request->isMethod('post')) {
  40. $post = $request->post();
  41. $data['Name']=$post['Name'];
  42. unset($post['Name']);
  43. $data['Data']=json_encode($post);
  44. $admin = session('admin');
  45. $data['AdminID'] = $admin->id;
  46. DB::connection('write')->table('agent.dbo.ControlConfig')->where('ID', $ID)->update($data);
  47. return apiReturnSuc();
  48. } else {
  49. $ControlModel = new \App\Models\Control();
  50. $GameDataText=$ControlModel->GameDataText;
  51. $info=$this->getConfigByID($ID);
  52. // var_dump($info);
  53. $data = compact('info','GameDataText');
  54. return view('admin.control.config_update', $data);
  55. }
  56. }
  57. // 获取配置
  58. public function getConfig()
  59. {
  60. $list = $this->getList();
  61. return apiReturnSuc($list);
  62. }
  63. // 获取配置
  64. public function getList()
  65. {
  66. $list = DB::connection('write')->table('agent.dbo.ControlConfig')->get();
  67. foreach ($list as &$info){
  68. $infoData=json_decode($info->Data);
  69. foreach ($infoData as $k=>$v){
  70. $info->$k=$v;
  71. }
  72. }
  73. return $list;
  74. }
  75. public function getConfigByID( $ID)
  76. {
  77. $info = DB::connection('write')->table('agent.dbo.ControlConfig')->where('ID', $ID)->first();
  78. $infoData=json_decode($info->Data);
  79. foreach ($infoData as $k=>$v){
  80. $info->$k=$v;
  81. }
  82. return $info;
  83. }
  84. // 选中模板给页面赋值
  85. public function gradeChange(Request $request, $ID)
  86. {
  87. $info =$this->getConfigByID($ID);
  88. return apiReturnSuc($info);
  89. }
  90. public function ControlConfigGear(Request $request)
  91. {
  92. $KindID = $request->KindID ?: '';
  93. $list = DB::connection('write')->table('agent.dbo.ControlGear')->where('KindID', $KindID)->get();
  94. return view('admin.control.control_config_gear', [
  95. 'list' => $list
  96. ]);
  97. }
  98. public function ControlConfigGearAdd(Request $request)
  99. {
  100. $Value = $request->Value ?: '';
  101. $KindID = $request->KindID ?: '';
  102. DB::connection('write')->table('agent.dbo.ControlGear')->where('KindID', $KindID)->delete();
  103. if (!empty($Value)) {
  104. $explode = explode(',', $Value);
  105. $data = [];
  106. foreach ($explode as $val) {
  107. $data[] = ['Value' => $val, 'KindID' => $KindID];
  108. }
  109. DB::connection('write')->table('agent.dbo.ControlGear')->insert($data);
  110. }
  111. return apiReturnSuc();
  112. }
  113. // 捕鱼配置
  114. public function fish_add(Request $request, $UserID)
  115. {
  116. $redis = Redis::getInstance();
  117. $redis = $redis->redis_content();
  118. if ($request->isMethod('post')) {
  119. $post = $request->post();
  120. $post['controlTarget'] *= NumConfig::NUM_VALUE;
  121. $redis->hMSet('userControl_' . $UserID, ['controlLevel' => $post['controlLevel'], 'controlTarget' => $post['controlTarget'], 'curControlValue' => 0]);
  122. // 当前余额
  123. $score = DB::connection('read')->table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->select('Score')->first()->Score ?? 0;
  124. $content = '捕鱼控制:';
  125. $content .= $post['controlLevel'] == 0 ? '不控制' : ($post['controlLevel'] > 0 ? '赢' : '输');
  126. $content .= '控制分数' . $post['controlTarget'];
  127. // 添加控制记录
  128. $data = [
  129. 'user_id' => $UserID,
  130. 'admin_id' => session('admin')->id ?? '',
  131. 'contents' => $content,
  132. 'before_config' => '',
  133. 'created_at' => date('Y-m-d H:i:s'),
  134. 'score' => $score
  135. ];
  136. DB::connection('write')->table('agent.dbo.control_record')->insert($data);
  137. return apiReturnSuc();
  138. }
  139. $info = $redis->hmGet("userControl_$UserID", ['controlLevel', 'controlTarget', 'curControlValue']);
  140. $info['controlTarget'] /= NumConfig::NUM_VALUE;
  141. $info['curControlValue'] /= NumConfig::NUM_VALUE;
  142. return view('admin.control.fish_add', compact('info', 'UserID'));
  143. }
  144. // 全局控制配置
  145. public function control_config_info()
  146. {
  147. $list = DB::connection('write')->table(TableName::QPPlatformDB() . 'ControlConfigInfo')->get();
  148. return view('admin.control.control_config_info', compact('list'));
  149. }
  150. public function control_config_info_update(Request $request, $ID)
  151. {
  152. if ($request->isMethod('post')) {
  153. $post = $request->post();
  154. $post = array_map(function ($val) {
  155. return (int)$val;
  156. }, $post);
  157. DB::connection('write')->table(TableName::QPPlatformDB() . 'ControlConfigInfo')
  158. ->where('ID', $ID)
  159. ->update($post);
  160. return apiReturnSuc();
  161. } else {
  162. $info = DB::connection('write')->table(TableName::QPPlatformDB() . 'ControlConfigInfo')->where('ID', $ID)->first();
  163. return view('admin.control.control_config_info_update', compact('info'));
  164. }
  165. }
  166. }