ProtectLevelController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. use App\Http\helper\NumConfig;
  7. class ProtectLevelController extends Controller
  8. {
  9. protected $table = 'QPAccountsDB.dbo.ProtectLevel';
  10. // 列表
  11. public function index()
  12. {
  13. $list = DB::connection('read')->table($this->table)
  14. ->orderBy('VIP')
  15. ->get();
  16. // 获取配置值(合并查询)
  17. $statusInfo = DB::connection('read')->table('QPAccountsDB.dbo.SystemStatusInfo')
  18. ->whereIn('StatusName', ['ProtectLevelDownDays', 'ProtectLevelExpireDays'])
  19. ->pluck('StatusValue', 'StatusName');
  20. $downDays = $statusInfo['ProtectLevelDownDays'] ?? null;
  21. $expireDays = $statusInfo['ProtectLevelExpireDays'] ?? null;
  22. return view('admin.protect_level.index', compact('list', 'downDays', 'expireDays'));
  23. }
  24. // 增加
  25. public function add(Request $request)
  26. {
  27. if ($request->isMethod('get')) {
  28. return view('admin.protect_level.add');
  29. }
  30. $data = $request->only([
  31. 'ID', 'Recharge', 'VIP', 'LevelUpBonus',
  32. 'MinRecharge', 'WithdrawLimit', 'DailyWithdraws',
  33. 'WithdrawFeeRate', 'Alpha', 'CustomServiceType',
  34. 'RechargeExtraSendRate', 'SuperballNum', 'BirthdayValue',
  35. ]);
  36. // 简单验证(ID唯一性后面手动检查)
  37. $this->validate($request, [
  38. 'ID' => 'required|integer',
  39. 'Recharge' => 'required|numeric|min:0',
  40. 'VIP' => 'required|integer|min:0',
  41. 'LevelUpBonus' => 'required|integer|min:0',
  42. 'MinRecharge' => 'required|integer|min:0',
  43. 'WithdrawLimit' => 'required|integer|min:0',
  44. 'DailyWithdraws' => 'required|integer|min:0|max:255',
  45. 'WithdrawFeeRate' => 'required|numeric|min:0',
  46. 'Alpha' => 'required|numeric|min:0',
  47. 'CustomServiceType' => 'required|integer|in:1,2',
  48. 'RechargeExtraSendRate' => 'required|numeric|min:0',
  49. 'SuperballNum' => 'required|integer|min:0',
  50. 'BirthdayValue' => 'required|integer|min:0',
  51. ]);
  52. // 唯一性检查
  53. if (DB::connection('read')->table($this->table)->where('ID', $data['ID'])->exists()) {
  54. return apiReturnFail('ID already exists');
  55. }
  56. $data['BirthdayValue'] = $data['BirthdayValue'] * NumConfig::NUM_VALUE;
  57. DB::connection('write')->table($this->table)->insert($data);
  58. return apiReturnSuc();
  59. }
  60. // 修改
  61. public function edit(Request $request, $id)
  62. {
  63. if ($request->isMethod('get')) {
  64. $info = DB::connection('read')->table($this->table)
  65. ->where('ID', $id)
  66. ->first();
  67. return view('admin.protect_level.edit', compact('info'));
  68. }
  69. $post = $request->only([
  70. 'Recharge', 'VIP', 'LevelUpBonus',
  71. 'MinRecharge', 'WithdrawLimit', 'DailyWithdraws',
  72. 'WithdrawFeeRate', 'Alpha', 'CustomServiceType',
  73. 'RechargeExtraSendRate', 'SuperballNum', 'BirthdayValue',
  74. ]);
  75. // 字段校验
  76. $this->validate($request, [
  77. 'Recharge' => 'required|numeric|min:0',
  78. 'VIP' => 'required|integer|min:0',
  79. 'LevelUpBonus' => 'required|integer|min:0',
  80. 'MinRecharge' => 'required|integer|min:0',
  81. 'WithdrawLimit' => 'required|integer|min:0',
  82. 'DailyWithdraws' => 'required|integer|min:0|max:255',
  83. 'WithdrawFeeRate' => 'required|numeric|min:0',
  84. 'Alpha' => 'required|numeric|min:0',
  85. 'CustomServiceType' => 'required|integer|in:1,2',
  86. 'RechargeExtraSendRate' => 'required|numeric|min:0',
  87. 'SuperballNum' => 'required|integer|min:0',
  88. 'BirthdayValue' => 'required|integer|min:0',
  89. ]);
  90. $post['BirthdayValue'] = $post['BirthdayValue'] * NumConfig::NUM_VALUE;
  91. DB::connection('write')->table($this->table)
  92. ->where('ID', $id)
  93. ->update($post);
  94. return apiReturnSuc();
  95. }
  96. // 删除
  97. public function delete($id)
  98. {
  99. DB::connection('write')->table($this->table)
  100. ->where('ID', $id)
  101. ->delete();
  102. return apiReturnSuc();
  103. }
  104. // 保存配置
  105. public function saveConfig(Request $request)
  106. {
  107. $this->validate($request, [
  108. 'down_days' => 'required|integer|min:1',
  109. 'expire_days' => 'required|integer|min:1',
  110. ]);
  111. $downDays = $request->input('down_days');
  112. $expireDays = $request->input('expire_days');
  113. // 更新或创建 ProtectLevelDownDays 配置
  114. DB::connection('write')->table('QPAccountsDB.dbo.SystemStatusInfo')
  115. ->updateOrInsert(
  116. ['StatusName' => 'ProtectLevelDownDays'],
  117. ['StatusValue' => $downDays]
  118. );
  119. // 更新或创建 ProtectLevelExpireDays 配置
  120. DB::connection('write')->table('QPAccountsDB.dbo.SystemStatusInfo')
  121. ->updateOrInsert(
  122. ['StatusName' => 'ProtectLevelExpireDays'],
  123. ['StatusValue' => $expireDays]
  124. );
  125. return apiReturnSuc();
  126. }
  127. }