views.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import json
  2. import copy
  3. from django.utils import timezone
  4. from django.shortcuts import render
  5. from user.models import User as User_models
  6. from order.models import Order as Order_models
  7. # Create your views here.
  8. from django.http import HttpResponse, JsonResponse
  9. from django.views.decorators.http import require_http_methods
  10. from django.views.decorators.csrf import csrf_exempt
  11. from django.core import serializers # 序列化 QuerySet
  12. from admin_site.utils import setError, setSuccess, userPersonToDictionary, get_timestamp,user_to_dict
  13. from sick.views import add_sick
  14. from sick.models import Sick as Sick_models
  15. from rest_framework.parsers import JSONParser
  16. import jwt
  17. import re
  18. import pytz
  19. # from rest_framework.views import APIView
  20. # from rest_framework.response import Response
  21. def index(request):
  22. return HttpResponse("Hello, user index")
  23. @csrf_exempt
  24. @require_http_methods(["POST"])
  25. def info(request):
  26. # print(26, request.POST.get('token'))
  27. if request.POST.get('token') == None:
  28. return HttpResponse(setError("该用户不存在!"))
  29. user_info = userPersonToDictionary(User_models.objects.get(token=request.POST.get('token')))
  30. print(34343, user_info['id'])
  31. if user_info['isSick'] == 'true':
  32. sick_list_dic = Sick_models.objects.filter(user_id=user_info['id'])
  33. sick_list = []
  34. for key in sick_list_dic:
  35. print(39, key.name)
  36. sick_list.append(key.name)
  37. print(42, sick_list)
  38. if len(sick_list) > 0:
  39. user_info.setdefault('sick', sick_list)
  40. print('user_info', user_info)
  41. return JsonResponse(setSuccess(data=user_info))
  42. """ 用户登陆 """
  43. @csrf_exempt
  44. @require_http_methods(["POST"])
  45. def login(request):
  46. body = request.POST
  47. if body.get('email') == None:
  48. return HttpResponse(setError("该用户不存在!"))
  49. if body.get('password') == None:
  50. return HttpResponse(setError("该用户不存在!"))
  51. user_info = User_models.objects.get(email=body.get('email'), password=body.get('password'))
  52. name = body.get("name", None)
  53. password = body.get("password", None)
  54. now_time = timezone.localtime()
  55. user_str = {'username': name, 'password': password, 'now_time': get_timestamp(now_time)}
  56. token = jwt.encode(user_str, 'sercet', algorithm='HS256')
  57. params = {
  58. "token": token,
  59. 'token_exit_time': now_time
  60. }
  61. User_models.objects.filter(id=user_info.id).update(**params)
  62. new_user_info = user_to_dict(user_info)
  63. params = {**new_user_info,**params}
  64. return JsonResponse(setSuccess(data=params))
  65. @csrf_exempt
  66. @require_http_methods(["POST"])
  67. def register(request):
  68. body = request.POST
  69. is_add = User_models.objects.all().filter(email=body.get('email'))
  70. if len(is_add) > 0:
  71. return JsonResponse(setError("当前邮箱已存在,添加失败"))
  72. params = {
  73. 'email': body.get('email'),
  74. 'password': body.get('email'),
  75. }
  76. user_add = User_models(**params)
  77. user_add.save()
  78. return JsonResponse(setSuccess(msg='注册成功', data=True))
  79. @csrf_exempt
  80. @require_http_methods(["POST"])
  81. def update(request):
  82. body = request.POST.dict()
  83. print(80808080, body)
  84. if body['id'] == None or body['id'] == '':
  85. return JsonResponse(setError("用户不存在"))
  86. # if(body['id'])
  87. new_body = {}
  88. body.setdefault('is_sick', body['isSick'])
  89. print(99, body['is_sick'])
  90. del body['isSick']
  91. if body['is_sick'] == 'true':
  92. add_sick(request)
  93. for field in body:
  94. match = re.search(r'\bsick\[\b', field)
  95. if match == None:
  96. new_body[field] = body[field]
  97. else:
  98. print(107, body['is_sick'])
  99. Sick_models.objects.filter(user_id=body.get('id')).delete()
  100. new_body = body
  101. # type
  102. # field_list = ['address', 'password', 'nickname', 'mobile']
  103. # params = {}
  104. # # 用户信息更新
  105. # if (body.get('type') == 'Fl001'):
  106. # # 如果字段中存在未完成订单,不允许修改地址,联系方式
  107. # if body.get('address') != None or body.get('mobile') != None:
  108. # # 查询数据库中是否存在未完成订单
  109. # user_order = Order_models.objects.filter(user_id=body['id'], status__lte=2)
  110. # if len(user_order) > 0:
  111. # return JsonResponse(setError("存在未完成订单,无法修改!"))
  112. # for key in field_list:
  113. # if params.get(key) == None and body.get(key) != None:
  114. # params.setdefault(key, body.get(key))
  115. # # elif body.get(key) != None and params.get(key) != None:
  116. # # setattr(params, key, body.get(key))
  117. #
  118. # # 司机信息或者是回收站更新
  119. # if body.get('type') == 'Fl002' or body.get('type') == 'Fl003':
  120. # for key in field_list:
  121. # # if body.get(key) != None and key != 'address':
  122. # # setattr(params, key, body.get(key))
  123. # if params.get(key) == None and body.get(key) != None and key != 'address':
  124. # params.setdefault(key, body.get(key))
  125. # Order_models.objects.filter(user_id=body['id'], status__lte=1)
  126. User_models.objects.filter(id=body['id']).update(**new_body)
  127. return JsonResponse(setSuccess(msg='更新成功', data=True))