views.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import json
  2. from django.shortcuts import render
  3. from admin_site.utils import char_2_datetime,setSuccess
  4. from django.utils import timezone
  5. from django.views.decorators.http import require_http_methods
  6. from django.views.decorators.csrf import csrf_exempt
  7. from .models import Service as Service_models
  8. from user.models import User as User_models
  9. import re
  10. from files.tasks import del_one_file
  11. from django.http import HttpResponse, JsonResponse
  12. from django.core.paginator import Paginator
  13. from .tasks import create_service
  14. from files.models import Files as Files_models
  15. # Create your views here.
  16. """ 创建新的运算模型 """
  17. @csrf_exempt
  18. @require_http_methods(["POST"])
  19. def add(request):
  20. body = json.loads(request.body)
  21. print('fileListID ', type(body['fileListID']))
  22. params = {
  23. 'name': body.get('name', None),
  24. 'source': body.get('source', None),
  25. 'desc': body.get('desc', None),
  26. 'user_id': body.get('user_id', None),
  27. }
  28. # 创建订单
  29. service_add = Service_models(**params)
  30. service_add.save()
  31. # 定义文件删除程序
  32. for files_id in body['fileListID']:
  33. file_params = {
  34. 'service_id': service_add.id,
  35. }
  36. print('file_params', file_params)
  37. Files_models.objects.filter(id=files_id).update(**file_params)
  38. # 执行异步任务
  39. create_service.delay(service_add.id)
  40. return JsonResponse(setSuccess(msg='更新成功', data=True))
  41. @csrf_exempt
  42. @require_http_methods(["POST"])
  43. def list(request):
  44. body = json.loads(request.body)
  45. print(body['token'])
  46. page = body.get('page', 0)
  47. page_size = body.get('pageSize', 10)
  48. keyword = body.get('keyword', '')
  49. data_list = Service_models.objects.all()
  50. is_root = False
  51. params = {
  52. 'is_delete': 0
  53. }
  54. if keyword:
  55. params.setdefault('title__icontains', keyword)
  56. if body['token'] is not None:
  57. user_info = User_models.objects.get(token=body['token'])
  58. print(user_info.id)
  59. is_root = user_info.type == 'root'
  60. if not is_root:
  61. params.setdefault('user_id', user_info.id)
  62. if keyword:
  63. data_list = data_list.filter(**params)
  64. paginator = Paginator(data_list, page_size)
  65. total_count = paginator.count # 获取数据总数
  66. data = paginator.get_page(page)
  67. data_json = {
  68. 'has_previous': data.has_previous(),
  69. 'has_next': data.has_next(),
  70. 'number': data.number,
  71. 'total_count': total_count,
  72. 'num_pages': paginator.num_pages,
  73. 'list': [{'id': item.id, 'create_time': item.create_time, 'update_time': item.update_time,
  74. 'start_time': item.start_time, 'desc': item.desc, 'name': item.name, 'source': item.source,
  75. 'run_time': item.run_time, 'status': item.status, } for item in data]
  76. }
  77. return JsonResponse(setSuccess(msg='更新成功', data=data_json))
  78. @csrf_exempt
  79. @require_http_methods(["POST", "GET"])
  80. def info(request):
  81. return JsonResponse(setSuccess(msg='更新成功', data={}))