|
|
|
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.
|
|
|
|
class ProjectViewSet(viewsets.ModelViewSet):
|
|
|
|
# 字段注释
|
|
|
|
"""
|
|
|
|
id: 数据id
|
|
|
|
project_name: 项目名称
|
|
|
|
is_delete: 删除标记
|
|
|
|
"""
|
|
|
|
queryset = Project.objects.filter(is_delete=False).all()
|
|
|
|
serializer_class = ProjectSerializer
|
|
|
|
|
|
|
|
|
|
|
|
class PrdItemViewSet(viewsets.ModelViewSet):
|
|
|
|
# 字段注释
|
|
|
|
"""
|
|
|
|
id: 数据id
|
|
|
|
project: 项目名称
|
|
|
|
prd_version: 版本
|
|
|
|
prd_doc_link: 产品文档链接 json格式
|
|
|
|
prd_comment: 产品文档说明
|
|
|
|
is_delete: 删除标记
|
|
|
|
"""
|
|
|
|
queryset = PrdItem.objects.filter(is_delete=False).order_by('-id').all()
|
|
|
|
serializer_class = PrdItemSerializer
|
|
|
|
filter_backends = (DjangoFilterBackend,)
|
|
|
|
# http://127.0.0.1:8000/prd/prd_list?project=上影联合院线
|
|
|
|
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):
|
|
|
|
# 字段注释
|
|
|
|
"""
|
|
|
|
id: 数据id
|
|
|
|
prd_id: 版本id
|
|
|
|
history_doc_link: 历史产品原型链接
|
|
|
|
update_at: 最后更新日期
|
|
|
|
is_delete: 删除标记
|
|
|
|
"""
|
|
|
|
queryset = PrdHistory.objects.filter(is_delete=False).order_by('-update_at').all()
|
|
|
|
serializer_class = PrdHistorySerializer
|
|
|
|
filter_backends = (DjangoFilterBackend,)
|
|
|
|
# http://127.0.0.1:8000/prd/prd_history?prd_id=1
|
|
|
|
filterset_fields = ('prd_id',)
|