From 2cb4ca00d3965a42e1e8d2ac31c14d6281ac2e67 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 10 Jan 2024 10:11:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base-=20=E5=9F=BA=E4=BA=8E=E9=A1=B9?= =?UTF-8?q?=E7=9B=AEcode=E8=BF=94=E5=9B=9E=E6=88=96=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/system/views.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/apps/system/views.py b/apps/system/views.py index 63fc343f..b6c7e4d6 100755 --- a/apps/system/views.py +++ b/apps/system/views.py @@ -40,7 +40,7 @@ from rest_framework.viewsets import GenericViewSet from cron_descriptor import get_description import locale from drf_yasg.utils import swagger_auto_schema -from server.settings import get_sysconfig, update_sysconfig +from server.settings import get_sysconfig, update_sysconfig, update_dict # logger.info('请求成功! response_code:{};response_headers:{}; # response_body:{}'.format(response_code, response_headers, response_body[:251])) @@ -692,7 +692,16 @@ class SysBaseConfigView(APIView): 获取系统基本信息 """ - config = get_sysconfig() + project_code = request.query_params.get('project_code', '') + if project_code: + from apps.develop.models import Project + try: + project = Project.objects.get(code=project_code) + config = project.config_json + except Project.DoesNotExist: + raise ParseError('项目不存在') + else: + config = get_sysconfig() base_dict = {key: config[key] for key in self.read_keys if key in config} return Response(base_dict) @@ -710,7 +719,17 @@ class SysConfigView(MyLoggingMixin, APIView): reload = False if request.query_params.get('reload', None): reload = True - return Response(get_sysconfig(reload=reload)) + project_code = request.query_params.get('project_code', '') + if project_code: + from apps.develop.models import Project + try: + project = Project.objects.get(code=project_code) + config = project.config_json + except Project.DoesNotExist: + raise ParseError('项目不存在') + else: + config = get_sysconfig(reload=reload) + return Response(config) @swagger_auto_schema(request_body=Serializer) def put(self, request, format=None): @@ -720,5 +739,17 @@ class SysConfigView(MyLoggingMixin, APIView): 修改config json """ data = request.data - update_sysconfig(data) + project_code = data.get('project_code', '') + if project_code: + from apps.develop.models import Project + try: + project = Project.objects.get(code=project_code) + config = project.config_json + new_config = update_dict(config, data) + project.config_json = new_config + project.save() + except Project.DoesNotExist: + raise ParseError('项目不存在') + else: + update_sysconfig(data) return Response()