1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from django.contrib import auth
- from rest_framework.views import APIView
- from rest_framework.response import Response
- from rest_framework import status
- from rest_framework.authtoken.models import Token
- from rest_framework.authentication import BasicAuthentication, TokenAuthentication
- from .serializers import UserRegisterSerializer
- from django.middleware.csrf import get_token
- from django.contrib.auth import login
- from api.utils import *
- from api.models import File, Mission, Plan, Result
- import requests
- import json, csv
- class RawDataTrans(APIView):
- authentication_classes = []
- permission_classes = []
- def get(self, request):
- if request.user:
- # 用户从前端发来请求
- return success("测试返回图数据")
- else:
- # 进程管理器发来请求
- # mission = Mission.objects.get(id=int(request.data.get('missionId')))
- plan = Plan.objects.get(id=int(request.data.get('planId')))
- return success("测试返回图数据")
- def post(self, request):
- mission = Mission.objects.get(id=int(request.data.get('missionId')))
- plan = Plan.objects.get(id=int(request.data.get('planId')))
- nodes = request.data.get('nodes')
- edges = request.data.get('edges')
- for param in [mission, plan, nodes, edges]:
- if not param:
- print("结果传递参数不足")
- return failed(message="缺少结果参数")
- try:
- result = plan.own_result
- print("PLAN结果数据已存在,是否重复提交?")
- return failed(message="重复提交结果")
- except Result.DoesNotExist:
- # 读取nodes和edges,生成结果文件
- nodeFile = File(type='csv', usage='result', content='node', user=plan.user)
- nodeFile.save()
- if not nodeFile.generate(nodes) == OK:
- return failed(message="保存结果文件失败")
- edgeFile = File(type='csv', usage='result', content='edge', user=plan.user)
- edgeFile.save()
- if not edgeFile.generate(edges) == OK:
- return failed(message="保存结果文件失败")
- nodeFile.associate = edgeFile
- edgeFile.associate = nodeFile
- nodeFile.save()
- edgeFile.save()
- result = Result()
- result.plan = plan
- result.mission = mission
- result.user = plan.user
- result.nodeFile = nodeFile
- result.edgeFile = edgeFile
- result.save()
- return success(message="保存结果文件成功")
-
|