GroupControlRecordController.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\helper\Helper;
  4. use App\Http\helper\HttpCurl;
  5. use App\Http\helper\NumConfig;
  6. use App\Http\logic\admin\GoldLogic;
  7. use App\Models\GroupControlRecord;
  8. use App\Services\GameRoomInfo;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\DB;
  11. // 群控
  12. class GroupControlRecordController
  13. {
  14. // 群控配置
  15. public function control(Request $request)
  16. {
  17. $date = date('Ymd');
  18. $kind_id = $request->post('kind_id');
  19. $game_level = $request->post('game_level');
  20. $toArr = explode('-', $game_level);
  21. $GameID = $toArr[0] ?? '';
  22. $SortID = $toArr[1] ?? '';
  23. $gameType = $request->gameType ?: '';
  24. $room_list = [];
  25. if (!empty($kind_id)) {
  26. $where[] = ['ki.KindID', '=', $kind_id];
  27. $room_list = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')
  28. ->where('GameID', $GameID)
  29. ->select('GameID', 'RoomName', 'SortID')
  30. ->get();
  31. }
  32. $where = [];
  33. !empty($GameID) && $where[] = ['rc.GameID', $GameID];
  34. !empty($SortID) && $where[] = ['rc.SortID', $SortID];
  35. if (!empty($gameType)) {
  36. $gameType = explode(',', $gameType);
  37. $where[] = [function ($query) use ($gameType) {
  38. $query->whereIn('rc.GameID', $gameType);
  39. }];
  40. }
  41. $game_name = DB::connection('read')->table('QPPlatformDB.dbo.GameKindItem')
  42. ->whereIn('GameID', config('games.openKGame'))
  43. ->pluck('KindName as GameName', 'GameID');//单选框数据
  44. $KindName = DB::connection('read')->table('QPPlatformDB.dbo.GameKindItem')->pluck('KindName', 'GameID')->toArray();
  45. $GameRoomInfo = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo')->select('ServerID', 'GameID', 'SortID')->get();
  46. $list = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig as rc')
  47. ->whereIn('rc.GameID', config('games.openKGame'))
  48. ->leftJoin('QPPlatformDB.dbo.RoomStockDay as rsd', function ($join) use ($date) {
  49. $join->on('rc.GameID', 'rsd.GameID')->on('rc.SortID', 'rsd.SortID')->where('DateID', $date);
  50. })->leftjoin('QPPlatformDB.dbo.RoomStockStatic as rs', function ($join) {
  51. $join->on('rc.GameID', 'rs.GameID')->on('rc.SortID', 'rs.SortID');
  52. })
  53. ->where($where)
  54. ->select('rc.GameID', 'rc.SortID')
  55. ->selectRaw('IsNull(Revenue,0) Revenue,IsNull(RevenueD,0) RevenueD,IsNull(Stock,0) Stock,IsNull(TurnOver,0) TurnOver,IsNull(Winlost,0) Winlost,RoomName')
  56. ->orderBy('rc.GameID')
  57. ->paginate(10);
  58. foreach ($list as &$value) {
  59. $value->WinRate = $value->LostRate = $value->ServerID = '';
  60. foreach ($GameRoomInfo as $val) {
  61. if (($value->GameID == $val->GameID) && ($value->SortID == $val->SortID)) {
  62. $value->ServerID = $val->ServerID;
  63. continue;
  64. }
  65. }
  66. $value->KindName = $KindName[$value->GameID] ?? '';
  67. $value->ShaLv = (int)$value->TurnOver > 0 ? round(($value->Winlost / $value->TurnOver) * 100, 2) : 0;
  68. $value->Stock /= NumConfig::NUM_VALUE;
  69. $value->Revenue /= NumConfig::NUM_VALUE;
  70. $value->RevenueD /= NumConfig::NUM_VALUE;
  71. $value->TurnOver /= NumConfig::NUM_VALUE;
  72. $value->Winlost /= NumConfig::NUM_VALUE;
  73. // 当前系统输赢概率
  74. $ShaLv = $value->ShaLv * NumConfig::NUM_VALUE;
  75. $first = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')
  76. ->where('GameID', $value->GameID)
  77. ->where('SortID', $value->SortID)
  78. ->whereRaw("$ShaLv between KillRateMin and KillRateMax")
  79. ->first();
  80. if ($first) {
  81. $value->WinRate = round($first->WinRate / NumConfig::NUM_VALUE, 2) . '%';
  82. $value->LostRate = round($first->LostRate / NumConfig::NUM_VALUE, 2) . '%';
  83. }
  84. switch ($value->SortID) {
  85. default:
  86. $value->SortIDTxt = $value->SortID;
  87. break;
  88. }
  89. }
  90. unset($value);
  91. if (!empty($gameType)) {
  92. $gameType = implode(',', $gameType);
  93. }
  94. return view('admin.GroupControlRecord.control', [
  95. 'list' => $list,
  96. 'kind_id' => $kind_id,
  97. 'game_level' => $game_level,
  98. 'game_name' => $game_name,
  99. 'room_list' => $room_list,
  100. 'gameType' => $gameType,
  101. 'SortID' => $SortID
  102. ]);
  103. }
  104. // 查看群控配置
  105. public function show_control_config(Request $request, $GameID)
  106. {
  107. $SortID = $request->SortID ?: '';
  108. $date = date('Ymd');
  109. $info = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig as rc')
  110. ->leftJoin('QPPlatformDB.dbo.RoomStockDay as rsd', function ($join) use ($date) {
  111. $join->on('rc.GameID', 'rsd.GameID')->on('rc.SortID', 'rsd.SortID')->where('DateID', $date);
  112. })
  113. ->where('rc.GameID', $GameID)
  114. ->where('rc.SortID', $SortID)
  115. ->select('rc.GameID', 'rc.SortID')
  116. ->selectRaw('IsNull(rsd.Winlost,0) Winlost,IsNull(rsd.TurnOver,0) TurnOver')
  117. ->first();
  118. // 展示配置
  119. $where[] = ['GameID', $GameID];
  120. $where[] = ['SortID', $SortID];
  121. $showConfig = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo as rc')
  122. ->where($where)
  123. ->select('CellScore', 'MinEnterScore', 'MaxEnterScore', 'ServerName', 'CellScore')
  124. ->first();
  125. if ($showConfig) {
  126. $showConfig->CellScore = $showConfig->CellScore / NumConfig::NUM_VALUE;
  127. $showConfig->MinEnterScore = number_float($showConfig->MinEnterScore / NumConfig::NUM_VALUE);
  128. $showConfig->MaxEnterScore = number_float($showConfig->MaxEnterScore / NumConfig::NUM_VALUE);
  129. }
  130. $list = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where($where)->get();
  131. if ($list->isNotEmpty()) {
  132. foreach ($list as &$val) {
  133. $val->KillRateMin = round($val->KillRateMin / NumConfig::NUM_VALUE, 2) . '%';
  134. $val->KillRateMax = round($val->KillRateMax / NumConfig::NUM_VALUE, 2) . '%';
  135. $val->WinRate = round($val->WinRate / NumConfig::NUM_VALUE, 2) . '%';
  136. $val->LostRate = round($val->LostRate / NumConfig::NUM_VALUE, 2) . '%';
  137. }
  138. unset($val);
  139. }
  140. if (!empty($info)) {
  141. $info->Winlost /= NumConfig::NUM_VALUE;
  142. $info->TurnOver /= NumConfig::NUM_VALUE;
  143. $info->ShaLv = $info->TurnOver > 0 ? round(($info->Winlost / $info->TurnOver) * NumConfig::NUM_VALUE, 2) : 0;
  144. }
  145. $data = compact('GameID', 'SortID', 'list', 'info', 'showConfig');
  146. return view('admin.GroupControlRecord.show_control_config', $data);
  147. }
  148. public function control_del($ID)
  149. {
  150. if (empty($ID)) return apiReturnFail('缺少参数');
  151. DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')
  152. ->where('ID', $ID)
  153. ->delete();
  154. return apiReturnSuc();
  155. }
  156. // 添加配置
  157. public function control_add(Request $request, $GameID)
  158. {
  159. $SortID = $request->SortID;
  160. $where[] = ['GameID', $GameID];
  161. $where[] = ['SortID', $SortID];
  162. if ($request->isMethod('post')) {
  163. $post = $request->all();
  164. $post['GameID'] = $GameID;
  165. $post['Status'] = 1;
  166. $KillRateMin = $post['KillRateMin'];
  167. $KillRateMax = $post['KillRateMax'];
  168. $first = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')
  169. ->where($where)
  170. ->whereRaw("($KillRateMin between KillRateMin and KillRateMax or $KillRateMax between KillRateMin and KillRateMax)")
  171. ->first();
  172. if ($first) {
  173. return apiReturnFail('档位已存在');
  174. }
  175. $count = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where($where)->count();
  176. if ($count >= 10) {
  177. return apiReturnFail('档位达到创建数量限制');
  178. }
  179. DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->insert($post);
  180. return apiReturnSuc();
  181. } else {
  182. $data = compact('GameID', 'SortID');
  183. return view('admin.GroupControlRecord.control_add', $data);
  184. }
  185. }
  186. // 修改配置
  187. public function control_update(Request $request, $GameID)
  188. {
  189. $SortID = $request->SortID;
  190. $id = $request->ID ?: '';
  191. $where[] = ['GameID', $GameID];
  192. $where[] = ['SortID', $SortID];
  193. if ($request->isMethod('post')) {
  194. $post = $request->all();
  195. $post['GameID'] = $GameID;
  196. $KillRateMin = $post['KillRateMin'];
  197. $KillRateMax = $post['KillRateMax'];
  198. $first = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')
  199. ->where('ID', '<>', $id)
  200. ->where($where)
  201. ->whereRaw("($KillRateMin between KillRateMin and KillRateMax or $KillRateMax between KillRateMin and KillRateMax)")
  202. ->first();
  203. if ($first) {
  204. return apiReturnFail('档位已存在');
  205. }
  206. $count = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where($where)->count();
  207. if ($count >= 10) {
  208. return apiReturnFail('档位达到创建数量限制');
  209. }
  210. unset($post['ID']);
  211. DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where('ID', $id)->update($post);
  212. return apiReturnSuc();
  213. } else {
  214. $info = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where('ID', $id)->first();
  215. $data = compact('GameID', 'SortID', 'info');
  216. return view('admin.GroupControlRecord.control_update', $data);
  217. }
  218. }
  219. // 修改状态
  220. public function control_updateStatus(Request $request, $id)
  221. {
  222. $status = $request->status ?: 1;
  223. $date = date('Ymd');
  224. DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')->where('ID', $id)->update(['Status' => $status]);
  225. return apiReturnSuc();
  226. }
  227. // 刷新数据
  228. public function sync_res(Request $request, $GameID)
  229. {
  230. $SortID = $request->SortID ?: '';
  231. $where[] = ['rsd.GameID', $GameID];
  232. $where[] = ['rsd.SortID', $SortID];
  233. $date = date('Ymd');
  234. $GameRoomInfo = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo')
  235. ->where('GameID', $GameID)
  236. ->where('SortID', $SortID)
  237. ->select('ServerID')
  238. ->first();
  239. $info = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockDay as rsd')
  240. ->leftjoin('QPPlatformDB.dbo.RoomStockStatic as rs', function ($join) {
  241. $join->on('rsd.GameID', 'rs.GameID')->on('rsd.SortID', 'rs.SortID');
  242. })
  243. ->where('DateID', $date)
  244. ->where($where)
  245. ->select('rsd.GameID', 'rsd.SortID', 'rs.Revenue', 'rs.RevenueD', 'rs.Stock', 'TurnOver', 'Winlost')
  246. ->first();
  247. if (empty($info)) {
  248. return apiReturnFail('刷新失败');
  249. }
  250. $info->ServerID = $GameRoomInfo->ServerID ?? '';
  251. $info->WinRate = $info->LostRate = '';
  252. $info->ShaLv = (int)$info->TurnOver > 0 ? round(($info->Winlost / $info->TurnOver) * 100, 2) : 0;
  253. $info->Stock /= NumConfig::NUM_VALUE;
  254. $info->Revenue /= NumConfig::NUM_VALUE;
  255. $info->RevenueD /= NumConfig::NUM_VALUE;
  256. $info->TurnOver /= NumConfig::NUM_VALUE;
  257. $info->Winlost /= NumConfig::NUM_VALUE;
  258. // 当前系统输赢概率
  259. $ShaLv = $info->ShaLv * NumConfig::NUM_VALUE;
  260. $first = DB::connection('write')->table('QPPlatformDB.dbo.RoomStockConfig')
  261. ->where('GameID', $info->GameID)
  262. ->where('SortID', $info->SortID)
  263. ->whereRaw("$ShaLv between KillRateMin and KillRateMax")
  264. ->first();
  265. if ($first) {
  266. $info->WinRate = round($first->WinRate / NumConfig::NUM_VALUE, 2) . '%';
  267. $info->LostRate = round($first->LostRate / NumConfig::NUM_VALUE, 2) . '%';
  268. }
  269. return apiReturnSuc($info);
  270. }
  271. // 下拉框搜索
  272. public function roomList(Request $request)
  273. {
  274. $GameID = (int)$request->post('GameID');
  275. $sql = $room_list = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')
  276. ->where('GameID', $GameID)
  277. ->select('GameID', 'RoomName', 'SortID');
  278. $list = $sql->get();
  279. return apiReturnSuc($list);
  280. }
  281. // 群控房间列表
  282. public function room(Request $request)
  283. {
  284. $kind_id = $request->post('kind_id');
  285. $game_level = $request->post('game_level');
  286. $toArr = explode('-', $game_level);
  287. $GameID = $toArr[0] ?? '';
  288. $SortID = $toArr[1] ?? '';
  289. $gameType = $request->gameType ?: '';
  290. $room_list = [];
  291. $game_name = DB::connection('read')->table('QPPlatformDB.dbo.GameKindItem')
  292. ->whereIn('GameID', config('games.openKGame'))
  293. ->pluck('KindName as GameName', 'GameID');//单选框数据
  294. $KindName = DB::connection('read')->table('QPPlatformDB.dbo.GameKindItem')->pluck('KindName', 'GameID')->toArray();
  295. if (!empty($kind_id)) {
  296. $where[] = ['ki.KindID', '=', $kind_id];
  297. $room_list = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')
  298. ->where('GameID', $GameID)
  299. ->select('GameID', 'RoomName', 'SortID')
  300. ->get();
  301. }
  302. $where = [];
  303. !empty($GameID) && $where[] = ['rsd.GameID', $GameID];
  304. !empty($SortID) && $where[] = ['rsd.SortID', $SortID];
  305. // 游戏类型搜索
  306. if (!empty($gameType)) {
  307. $gameType = explode(',', $gameType);
  308. $where[] = [function ($query) use ($gameType) {
  309. $query->whereIn('rc.GameID', $gameType);
  310. }];
  311. }
  312. $list = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig as rc')
  313. ->whereIn('rc.GameID', config('games.openKGame'))
  314. ->leftjoin('QPPlatformDB.dbo.RoomStockDay as rsd', function ($join) {
  315. $join->on('rc.GameID', 'rsd.GameID')->on('rc.SortID', 'rsd.SortID')->where('DateID', date('Ymd'));
  316. })
  317. ->where($where)
  318. ->select('rc.*')
  319. ->orderBy('rc.GameID')
  320. ->paginate(10);
  321. if (!empty($gameType)) {
  322. $gameType = implode(',', $gameType);
  323. }
  324. $data = compact('list', 'kind_id', 'room_list', 'KindName', 'game_name', 'gameType');
  325. return view('admin.GroupControlRecord.room', $data);
  326. }
  327. // 添加群控房间配置
  328. public function room_add(Request $request)
  329. {
  330. if ($request->isMethod('post')) {
  331. $post = $request->post();
  332. $first = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')
  333. ->where('GameID', $post['GameID'])
  334. ->where('SortID', $post['SortID'])
  335. ->first();
  336. if ($first) {
  337. return apiReturnFail('房间配置已存在');
  338. }
  339. DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')->insert($post);
  340. return apiReturnSuc();
  341. } else {
  342. $gameKind = DB::connection('read')->table('QPPlatformDB.dbo.GameKindItem')->select('KindName', 'KindID')->get();
  343. $sortID = [1, 2, 3, 4, 5, 6, 7];
  344. $data = compact('sortID', 'gameKind');
  345. return view('admin.GroupControlRecord.room_add', $data);
  346. }
  347. }
  348. public function room_update(Request $request, $id)
  349. {
  350. if ($request->isMethod('post')) {
  351. $post = $request->post();
  352. DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')
  353. ->where('ID', $id)
  354. ->update($post);
  355. return apiReturnSuc();
  356. } else {
  357. $info = DB::connection('write')->table('QPPlatformDB.dbo.RoomConfig')->where('ID', $id)->first();
  358. return view('admin.GroupControlRecord.room_update', compact('info'));
  359. }
  360. }
  361. public function record(Request $request)
  362. {
  363. $server_id = $request->server_id ?: '';
  364. $time = Helper::return_time($request);
  365. list($start_time, $end_time) = [$time['start_time'], $time['end_time']];
  366. $where = [];
  367. !empty($server_id) && $where[] = ['server_id', '=', $server_id];
  368. !empty($start_time) && $where[] = ['created_at', '>=', $start_time];
  369. !empty($end_time) && $where[] = ['created_at', '<=', $end_time];
  370. $list = GroupControlRecord::where($where)->orderBy('created_at', 'desc')->paginate(10);
  371. $server_ids = [];
  372. $admin_ids = [];
  373. foreach ($list as &$val) {
  374. $server_ids[] = $val->server_id;
  375. $admin_ids[] = $val->admin_id;
  376. }
  377. // 查询房间
  378. $server_names = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo')
  379. ->whereIn('ServerID', $server_ids)
  380. ->pluck('ServerName', 'ServerID')->toArray();
  381. // 查询管理员
  382. $admin_names = DB::connection('read')->table('agent.dbo.admin_users')
  383. ->whereIn('id', $admin_ids)
  384. ->pluck('account', 'id')->toArray();
  385. foreach ($list as &$val) {
  386. $val->ServerName = isset($server_names[$val->server_id]) ? $server_names[$val->server_id] : '';
  387. $val->account = isset($admin_names[$val->admin_id]) ? $admin_names[$val->admin_id] : '';
  388. }
  389. $room_list = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo')
  390. ->select('ServerID', 'ServerName')
  391. ->get();
  392. return view('admin.GroupControlRecord.index', [
  393. 'list' => $list,
  394. 'server_id' => $server_id,
  395. 'start_time' => $start_time,
  396. 'end_time' => $end_time,
  397. 'room_list' => $room_list
  398. ]);
  399. }
  400. public function show_config($id)
  401. {
  402. $filed = ['gi.GameID', 'gi.ServerName', 'gi.ServerID as gi_ServerID', 'RoomStock', 'ki.KindName', 'ki.KindID', 'si.*'];
  403. $config = DB::connection('read')->table('QPPlatformDB.dbo.GameRoomInfo as gi')
  404. ->leftJoin('QPPlatformDB.dbo.GameKindItem as ki', 'ki.GameID', '=', 'gi.GameID')
  405. ->leftJoin('QPTreasureDB.dbo.StockConfigInfo as si', 'gi.ServerID', 'si.ServerID')
  406. ->where('gi.ServerID', $id)
  407. ->select($filed)
  408. ->first();
  409. $config->BaseScore = $config->BaseScore / 100;
  410. return view('admin.GroupControlRecord.show_config', ['config' => $config]);
  411. }
  412. // 刮刮乐配置
  413. public function award_allocation(Request $request)
  414. {
  415. if ($request->isMethod('post')) {
  416. }
  417. $list = DB::connection('write')->table('QPPlatformDB.dbo.ScratchCard')
  418. ->get();
  419. foreach ($list as &$value) {
  420. $value->RewardScore = $value->RewardScore / NumConfig::NUM_VALUE;
  421. }
  422. return view('admin.GroupControlRecord.award_allocation', compact('list'));
  423. }
  424. // 刮刮乐配置修改
  425. public function award_allocation_update(Request $request, $id)
  426. {
  427. if ($request->isMethod('post')) {
  428. $post = $request->post();
  429. $CardLevel = $post['CardLevel'];
  430. $RewardRate = $post['RewardRate'];
  431. $RewardScore = $post['RewardScore'];
  432. $ImageID = $post['ImageID'];
  433. $RewardType = $post['RewardType'];
  434. $count = count($CardLevel);
  435. if ($count != count(array_unique($CardLevel))) {
  436. return apiReturnFail('等级重复');
  437. }
  438. $data = [];
  439. for ($i = 0; $i < $count; $i++) {
  440. $data[$i]['CardLevel'] = $CardLevel[$i];
  441. $data[$i]['RewardRate'] = $RewardRate[$i] ?? 0;
  442. $data[$i]['RewardScore'] = isset($RewardScore[$i]) ? $RewardScore[$i] * NumConfig::NUM_VALUE : 0;
  443. $data[$i]['CardID'] = $CardLevel[$i];
  444. $data[$i]['RewardType'] = $RewardType[$i] ?? 0;
  445. $data[$i]['ImageID'] = $ImageID[$i] ?? 0;
  446. $data[$i]['RewardRound'] = 0;
  447. }
  448. DB::connection('write')->table('QPPlatformDB.dbo.ScratchCard')
  449. ->delete();
  450. DB::connection('write')->table('QPPlatformDB.dbo.ScratchCard')
  451. ->insert($data);
  452. return apiReturnSuc();
  453. }
  454. }
  455. // 幸运宝石
  456. public function gemstone(Request $request)
  457. {
  458. $list = DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstone')
  459. ->get();
  460. foreach ($list as &$value) {
  461. $value->RewardMul = $value->RewardMul / 10;
  462. }
  463. $LuckyGemstoneMul = DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstoneMul')->first();
  464. // 倍数 /10
  465. $LuckyGemstoneMul->CrownMul = $LuckyGemstoneMul->CrownMul / 10;
  466. $arr = explode(',', $LuckyGemstoneMul->DiamondTeamMul);
  467. $newArr = [];
  468. foreach ($arr as &$value) {
  469. $newArr[] = $value / 10;
  470. }
  471. $LuckyGemstoneMul->DiamondTeamMul = implode(',', $newArr);
  472. return view('admin.GroupControlRecord.gemstone', compact('list', 'LuckyGemstoneMul'));
  473. }
  474. // 幸运宝石修改
  475. public function gemstone_update(Request $request)
  476. {
  477. if ($request->isMethod('post')) {
  478. $post = $request->post();
  479. // +-----------------------------------------------------------------------------------
  480. $GemstoneLevel = $post['GemstoneLevel'];
  481. $RewardRate = $post['RewardRate'];
  482. $RewardMul = $post['RewardMul'];
  483. $count = count($GemstoneLevel);
  484. if ($count != count(array_unique($GemstoneLevel))) {
  485. return apiReturnFail('等级重复');
  486. }
  487. $data = [];
  488. for ($i = 0; $i < $count; $i++) {
  489. $data[$i]['GemstoneLevel'] = $GemstoneLevel[$i];
  490. $data[$i]['RewardRate'] = $RewardRate[$i] ?? 0;
  491. $data[$i]['RewardMul'] = isset($RewardMul[$i]) ? $RewardMul[$i] * 10 : 0;
  492. $data[$i]['GemstoneID'] = $GemstoneLevel[$i];
  493. $data[$i]['RewardRound'] = 0;
  494. $data[$i]['RewardType'] = 0;
  495. }
  496. DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstone')
  497. ->delete();
  498. DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstone')
  499. ->insert($data);
  500. // 服务器通知
  501. // 向服务端发送通知
  502. $url = config('transfer.stock')['url'] . 'loadLuckGemstone';
  503. $data = [
  504. ];
  505. (new HttpCurl())->service($url, $data);
  506. return apiReturnSuc();
  507. }
  508. }
  509. public function LuckyGemstoneMul()
  510. {
  511. $LuckyGemstoneMul = DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstoneMul')->first();
  512. // 倍数 /10
  513. $LuckyGemstoneMul->CrownMul = $LuckyGemstoneMul->CrownMul / 10;
  514. $arr = explode(',', $LuckyGemstoneMul->DiamondTeamMul);
  515. $newArr = [];
  516. foreach ($arr as &$value) {
  517. $newArr[] = $value / 10;
  518. }
  519. $LuckyGemstoneMul->DiamondTeamMul = $newArr;
  520. return view('admin.GroupControlRecord.LuckyGemstoneMul', compact('LuckyGemstoneMul'));
  521. }
  522. public function LuckyGemstoneMul_update(Request $request)
  523. {
  524. $post = $request->post();
  525. // 钻石组倍数
  526. $DiamondTeamMul = $post['DiamondTeamMul'];
  527. // 皇冠倍数
  528. $CrownMul = $post['CrownMul'] * 10;
  529. if (count($DiamondTeamMul) != 15) {
  530. return apiReturnFail('钻石组组合倍数信息错误');
  531. }
  532. // 检查第一个倍数
  533. $RewardMul = DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstone')->pluck('RewardMul')->toArray();
  534. $newArr = [];
  535. $num = 0;
  536. foreach ($DiamondTeamMul as &$value) {
  537. $mul = $value * 10;
  538. if (!in_array($mul, $RewardMul)) {
  539. return apiReturnFail('钻石组倍数不在范围内');
  540. }
  541. $newArr[] = $mul;
  542. $num += $mul;
  543. }
  544. unset($value);
  545. if (!in_array($num, $RewardMul)) {
  546. return apiReturnFail('钻石组倍数和不在范围内');
  547. }
  548. if (!in_array($CrownMul, $RewardMul)) {
  549. return apiReturnFail('皇冠倍数不在范围内');
  550. }
  551. $LuckyGemstoneMul['DiamondTeamMul'] = implode(',', $newArr);
  552. $LuckyGemstoneMul['CrownMul'] = $post['CrownMul'] * 10;
  553. DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstoneMul')->delete();
  554. DB::connection('write')->table('QPPlatformDB.dbo.LuckyGemstoneMul')->insert($LuckyGemstoneMul);
  555. return apiReturnSuc();
  556. }
  557. }