diff --git a/dingxin_toolbox_drf/settings.py b/dingxin_toolbox_drf/settings.py index e22829b..59dbbc4 100644 --- a/dingxin_toolbox_drf/settings.py +++ b/dingxin_toolbox_drf/settings.py @@ -43,6 +43,13 @@ CONFIG = { "USER": "test", "PASSWORD": "cine123456", "NAME": "fws_dgp_card_db", + }, + 'AX_CLOUD_DB': { + "HOST": '172.16.1.63', + "PORT": 3306, + "USER": "root", + "PASSWORD": "Cine123456", + "NAME": "axshare", } }, 'local': { @@ -62,6 +69,13 @@ CONFIG = { "USER": "test", "PASSWORD": "cine123456", "NAME": "fws_dgp_card_db", + }, + 'AX_CLOUD_DB': { + "HOST": '172.16.1.63', + "PORT": 3306, + "USER": "root", + "PASSWORD": "Cine123456", + "NAME": "axshare", } }, 'prd': { @@ -81,6 +95,13 @@ CONFIG = { "USER": "test", "PASSWORD": "cine123456", "NAME": "fws_dgp_card_db", + }, + 'AX_CLOUD_DB': { + "HOST": '172.16.1.63', + "PORT": 3306, + "USER": "root", + "PASSWORD": "Cine123456", + "NAME": "axshare", } } } diff --git a/product/urls.py b/product/urls.py index a00a8bf..13c5d8b 100644 --- a/product/urls.py +++ b/product/urls.py @@ -26,4 +26,5 @@ urlpatterns = [ path('prd_update//', views.PrdItemViewSet.as_view({'put': 'update'}), name='prd_update'), path('prd_delete//', views.PrdItemViewSet.as_view({'delete': 'destroy'}), name='prd_delete'), path('prd_history', views.PrdHistoryViewSet.as_view({'get': 'list'}), name='prd_history'), + path('prd_list/ax_cloud', views.PrdItemViewSet.as_view({'get': 'get_ax_cloud_time'}), name='ax_cloud'), ] diff --git a/product/views.py b/product/views.py index db91959..de75522 100644 --- a/product/views.py +++ b/product/views.py @@ -1,7 +1,16 @@ +from pydoc import pager + from rest_framework import viewsets +from rest_framework.response import Response + from product.serializers import * from django_filters.rest_framework import DjangoFilterBackend +from rest_framework.decorators import action from product.utils.pagination import PageNumberPagination, CustomPageNumberPagination +import pymysql +from pymysql.cursors import DictCursor +from dingxin_toolbox_drf.settings import CONFIG +from env import * # Create your views here. @@ -33,6 +42,38 @@ class PrdItemViewSet(viewsets.ModelViewSet): filterset_fields = ('project',) pagination_class = CustomPageNumberPagination + @action(methods=['get'], detail=False, url_path='ax_cloud') + def get_ax_cloud_time(self, request): + # 获取数据 + queryset = self.get_queryset() + + if queryset is not None: + # 获取项目时间 + db_config = CONFIG[ENV]['AX_CLOUD_DB'] + db = { + 'host': db_config['HOST'], + 'port': db_config['PORT'], + 'user': db_config['USER'], + 'password': db_config['PASSWORD'], + 'db': db_config['NAME'], + } + print(db) + db_conn = pymysql.Connect(**db) + db_cursor = db_conn.cursor(cursor=DictCursor) + sql = "select Shortcut, ModifiedOn from axshare.axshare_ShortcutKey;" + db_cursor.execute(sql) + ax_cloud_data = db_cursor.fetchall() + db_conn.close() + # 遍历数据 + for data in queryset: + shortcut_key = data.prd_doc_link.split(r'/')[-1] + for item in ax_cloud_data: + if item['Shortcut'].lower() == shortcut_key.lower(): + data.update_at = item['ModifiedOn'] + page = self.paginate_queryset(queryset) + serializer = self.get_serializer(page, many=True) + return self.get_paginated_response(serializer.data) + return Response(None) class PrdHistoryViewSet(viewsets.ModelViewSet): # 字段注释 @@ -47,4 +88,4 @@ class PrdHistoryViewSet(viewsets.ModelViewSet): serializer_class = PrdHistorySerializer filter_backends = (DjangoFilterBackend,) # http://127.0.0.1:8000/prd/prd_history?prd_id=1 - filterset_fields = ('prd_id',) \ No newline at end of file + filterset_fields = ('prd_id',)