123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Http\Controllers\Controller;
- use App\Http\Requests\Admin\RuleRequest;
- use App\Models\Node;
- use App\Models\Rule;
- use App\Models\RuleLog;
- use Exception;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- use Response;
- class RuleController extends Controller
- {
-
- public function index(Request $request)
- {
- $type = $request->input('type');
- $query = Rule::query();
- if ($type) {
- $query->whereType($type);
- }
- return view('admin.rule.index', ['rules' => $query->paginate(15)->appends($request->except('page'))]);
- }
-
- public function store(RuleRequest $request): JsonResponse
- {
- if (Rule::create($request->validated())) {
- return Response::json(['status' => 'success', 'message' => '提交成功']);
- }
- return Response::json(['status' => 'fail', 'message' => '操作失败']);
- }
-
- public function update(RuleRequest $request, Rule $rule): JsonResponse
- {
- if ($rule->update($request->validated())) {
- return Response::json(['status' => 'success', 'message' => '操作成功']);
- }
- return Response::json(['status' => 'fail', 'message' => '操作失败']);
- }
-
- public function destroy(Rule $rule): JsonResponse
- {
- try {
- $rule->delete();
- } catch (Exception $e) {
- return Response::json(['status' => 'fail', 'message' => '操作失败, '.$e->getMessage()]);
- }
- return Response::json(['status' => 'success', 'message' => '操作成功']);
- }
-
- public function ruleLogList(Request $request)
- {
- $uid = $request->input('uid');
- $email = $request->input('email');
- $nodeId = $request->input('node_id');
- $ruleId = $request->input('rule_id');
- $query = RuleLog::query();
- if ($uid) {
- $query->whereUserId($uid);
- }
- if (isset($email)) {
- $query->whereHas('user', static function ($q) use ($email) {
- $q->where('email', 'like', '%'.$email.'%');
- });
- }
- if ($nodeId) {
- $query->whereNodeId($nodeId);
- }
- if ($ruleId) {
- $query->whereRuleId($ruleId);
- }
- return view('admin.rule.log', [
- 'nodes' => Node::all(),
- 'rules' => Rule::all(),
- 'ruleLogs' => $query->latest()->paginate(15)->appends($request->except('page')),
- ]);
- }
-
- public function clearLog(): JsonResponse
- {
- try {
- $ret = RuleLog::query()->delete();
- } catch (Exception $e) {
- return Response::json(['status' => 'fail', 'message' => '清理失败, '.$e->getMessage()]);
- }
- if ($ret || RuleLog::doesntExist()) {
- return Response::json(['status' => 'success', 'message' => '清理成功']);
- }
- return Response::json(['status' => 'fail', 'message' => '清理失败']);
- }
- }
|