SignInRewardController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\logic\admin\SignInRewardLogic;
  5. use App\Models\SignInRewardConfig;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Validator;
  8. /**
  9. * 签到奖励配置控制器
  10. */
  11. class SignInRewardController extends Controller
  12. {
  13. /**
  14. * @var SignInRewardLogic
  15. */
  16. protected $logic;
  17. public function __construct()
  18. {
  19. $this->logic = new SignInRewardLogic();
  20. }
  21. /**
  22. * 列表页面
  23. *
  24. * @param Request $request
  25. * @return \Illuminate\View\View
  26. */
  27. public function listView(Request $request)
  28. {
  29. $list = $this->logic->getList(10);
  30. return view('admin.sign_in_reward.list', [
  31. 'list' => $list,
  32. ]);
  33. }
  34. /**
  35. * 更新页面
  36. *
  37. * @param int $dayNumber
  38. * @return \Illuminate\View\View
  39. */
  40. public function updateView($dayNumber)
  41. {
  42. $config = SignInRewardConfig::findOrFail($dayNumber);
  43. return view('admin.sign_in_reward.update', [
  44. 'config' => $config,
  45. ]);
  46. }
  47. /**
  48. * 处理更新请求
  49. *
  50. * @param Request $request
  51. * @param int $dayNumber
  52. * @return \Illuminate\Http\JsonResponse
  53. */
  54. public function update(Request $request, $dayNumber)
  55. {
  56. $data = $request->only(['RewardScore']);
  57. // 验证输入
  58. $validator = Validator::make($data, [
  59. 'RewardScore' => ['required', 'integer', 'min:0'],
  60. ], [
  61. 'RewardScore.required' => '奖励积分不能为空',
  62. 'RewardScore.integer' => '奖励积分必须是整数',
  63. 'RewardScore.min' => '奖励积分不能为负数',
  64. ]);
  65. if ($validator->fails()) {
  66. return $this->json(400, $validator->errors()->first());
  67. }
  68. // 使用 Logic 处理业务逻辑
  69. if (!$this->logic->update($dayNumber, $data)) {
  70. return $this->json(400, $this->logic->getError());
  71. }
  72. return $this->json(200, '修改成功');
  73. }
  74. }