From 0f0b05510195b33920caddbaffe31de3e79dc669 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 19 May 2025 09:34:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=97=B6=E9=97=B4=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/develop/urls.py | 4 +++- apps/develop/views.py | 27 ++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/apps/develop/urls.py b/apps/develop/urls.py index 2a0f80de..a6ebb7ad 100755 --- a/apps/develop/urls.py +++ b/apps/develop/urls.py @@ -1,5 +1,6 @@ from django.urls import path, include -from apps.develop.views import BackupDatabase, BackupMedia, ReloadClientGit, ReloadServerGit, ReloadServerOnly, TestViewSet, CorrectViewSet, testScanHtml +from apps.develop.views import (BackupDatabase, BackupMedia, ReloadClientGit, +ReloadServerGit, ReloadServerOnly, TestViewSet, CorrectViewSet, testScanHtml, ChangeServerDate) from rest_framework.routers import DefaultRouter API_BASE_URL = 'api/develop/' @@ -14,6 +15,7 @@ urlpatterns = [ path(API_BASE_URL + 'reload_server_only/', ReloadServerOnly.as_view()), path(API_BASE_URL + 'backup_database/', BackupDatabase.as_view()), path(API_BASE_URL + 'backup_media/', BackupMedia.as_view()), + path(API_BASE_URL + 'change_server_date/', ChangeServerDate.as_view()), path(API_BASE_URL, include(router.urls)), path(HTML_BASE_URL + "testscan/", testScanHtml) ] diff --git a/apps/develop/views.py b/apps/develop/views.py index 3dd2d692..fe7fa83f 100755 --- a/apps/develop/views.py +++ b/apps/develop/views.py @@ -19,7 +19,6 @@ from apps.opm.models import Opl from apps.third.dahua import dhClient from apps.third.speaker import spClient from apps.third.models import TDevice -from apps.utils.permission import RbacPermission from apps.utils.sms import send_sms from apps.utils.speech import generate_voice from apps.utils.tools import get_info_from_id @@ -29,15 +28,33 @@ from rest_framework.authentication import BasicAuthentication, SessionAuthentica from apps.utils.viewsets import CustomGenericViewSet from apps.utils.wx import wxClient -from apps.wf.models import State, Transition, Workflow +from apps.wf.models import Transition from django.db import transaction -from apps.utils.snowflake import idWorker from django.core.cache import cache -import json -from apps.utils.decorators import auto_log, idempotent +from apps.utils.decorators import auto_log from django.http import HttpResponse +from server.settings import SD_PWD +import subprocess +from drf_yasg.utils import swagger_auto_schema # Create your views here. +class ChangeServerDate(APIView): + permission_classes = [IsAdminUser] + + @swagger_auto_schema(request_body=Serializer) + def post(self, request): + """ + 修改服务器时间 + + 修改服务器时间 + """ + command = 'echo "{}" | sudo -s date "{}"'.format( + SD_PWD, request.data["date"] + ) + completed = subprocess.run(command, shell=True, capture_output=True, text=True) + if completed.returncode != 0: + raise ParseError(completed.stderr) + return Response() class ReloadServerGit(APIView): permission_classes = [IsAdminUser]