views.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. params = json.loads(request.body)
  27. if params['token'] == None:
  28. return HttpResponse(setError("该用户不存在!"))
  29. user_info = userPersonToDictionary(User_models.objects.get(token=params['token']))
  30. print(34, user_info)
  31. if user_info['isSick']:
  32. sick_list_dic = Sick_models.objects.filter(user_id=user_info['id'])
  33. sick_list = []
  34. for key in sick_list_dic:
  35. sick_list.append(key.name)
  36. if len(sick_list) > 0:
  37. user_info.setdefault('sick', sick_list)
  38. return JsonResponse(setSuccess(data=user_info))
  39. """ 用户登陆 """
  40. @csrf_exempt
  41. @require_http_methods(["POST"])
  42. def login(request):
  43. body = json.loads(request.body)
  44. if body.get('email') == None:
  45. return JsonResponse(setError('该用户不存在!'))
  46. if body.get('password') == None:
  47. return JsonResponse(setError('该用户的密码不存在!'))
  48. user_info = User_models.objects.get(email=body.get('email'))
  49. name = body.get("name", None)
  50. password = body.get("password", None)
  51. print(user_info.password, password, type(password));
  52. if user_info.email != None and user_info.password != password:
  53. return JsonResponse(setError('密码输入错误!'))
  54. # , password=body.get('password')
  55. now_time = timezone.localtime()
  56. user_str = {'username': user_info.email, 'password': password, 'now_time': get_timestamp(now_time)}
  57. token = jwt.encode(user_str, 'sercet', algorithm='HS256')
  58. params = {
  59. "token": token,
  60. 'token_exit_time': now_time
  61. }
  62. User_models.objects.filter(id=user_info.id).update(**params)
  63. new_user_info = user_to_dict(user_info)
  64. params = {**new_user_info,**params}
  65. return JsonResponse(setSuccess(data=params))
  66. @csrf_exempt
  67. @require_http_methods(["POST"])
  68. def register(request):
  69. # body = request.POST
  70. body = json.loads(request.body)
  71. is_add = User_models.objects.all().filter(email=body.get('email'))
  72. if len(is_add) > 0:
  73. return JsonResponse(setError("当前邮箱已存在,添加失败"))
  74. params = {
  75. 'email': body.get('email'),
  76. 'password': body.get('password'),
  77. }
  78. user_add = User_models(**params)
  79. user_add.save()
  80. return JsonResponse(setSuccess(msg='注册成功', data=True))
  81. @csrf_exempt
  82. @require_http_methods(["POST"])
  83. def update(request):
  84. # body = request.POST.dict()
  85. body = json.loads(request.body)
  86. print(80808080, body)
  87. if body['id'] == None or body['id'] == '':
  88. return JsonResponse(setError("用户不存在"))
  89. # if(body['id'])
  90. new_body = {}
  91. body.setdefault('is_sick', body['isSick'])
  92. print(99, body['is_sick'])
  93. del body['isSick']
  94. if body['is_sick']:
  95. add_sick(request)
  96. for field in body:
  97. match = re.search(r'\bsick\[\b', field)
  98. if match == None:
  99. new_body[field] = body[field]
  100. else:
  101. print(107, body['is_sick'])
  102. Sick_models.objects.filter(user_id=body.get('id')).delete()
  103. new_body = body
  104. del new_body['sick']
  105. # type
  106. # field_list = ['address', 'password', 'nickname', 'mobile']
  107. # params = {}
  108. # # 用户信息更新
  109. # if (body.get('type') == 'Fl001'):
  110. # # 如果字段中存在未完成订单,不允许修改地址,联系方式
  111. # if body.get('address') != None or body.get('mobile') != None:
  112. # # 查询数据库中是否存在未完成订单
  113. # user_order = Order_models.objects.filter(user_id=body['id'], status__lte=2)
  114. # if len(user_order) > 0:
  115. # return JsonResponse(setError("存在未完成订单,无法修改!"))
  116. # for key in field_list:
  117. # if params.get(key) == None and body.get(key) != None:
  118. # params.setdefault(key, body.get(key))
  119. # # elif body.get(key) != None and params.get(key) != None:
  120. # # setattr(params, key, body.get(key))
  121. #
  122. # # 司机信息或者是回收站更新
  123. # if body.get('type') == 'Fl002' or body.get('type') == 'Fl003':
  124. # for key in field_list:
  125. # # if body.get(key) != None and key != 'address':
  126. # # setattr(params, key, body.get(key))
  127. # if params.get(key) == None and body.get(key) != None and key != 'address':
  128. # params.setdefault(key, body.get(key))
  129. # Order_models.objects.filter(user_id=body['id'], status__lte=1)
  130. User_models.objects.filter(id=body['id']).update(**new_body)
  131. return JsonResponse(setSuccess(msg='更新成功', data=True))