views.py 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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
  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
  13. # from rest_framework.views import APIView
  14. # from rest_framework.response import Response
  15. def index(request):
  16. return HttpResponse("Hello, user index")
  17. @csrf_exempt
  18. @require_http_methods(["POST", "GET"])
  19. def info(request):
  20. if len(request.body) == 0:
  21. return HttpResponse(setError("请传入数据!"))
  22. body = json.loads(request.body)
  23. if body.get('id') == None:
  24. return HttpResponse(setError("该用户不存在!"))
  25. user_info = userPersonToDictionary(User_models.objects.get(id=body.get('id')))
  26. print(user_info)
  27. return HttpResponse(setSuccess(data=user_info))
  28. """ 用户登陆 """
  29. @csrf_exempt
  30. @require_http_methods(["POST"])
  31. def login(request):
  32. body = json.loads(request.body)
  33. if body.get('email') == None:
  34. return HttpResponse(setError("该用户不存在!"))
  35. if body.get('password') == None:
  36. return HttpResponse(setError("该用户不存在!"))
  37. user_info = userPersonToDictionary(User_models.objects.get(email=body.get('email'), password=body.get('password')))
  38. print(user_info)
  39. return HttpResponse(setSuccess(data=user_info))
  40. @csrf_exempt
  41. @require_http_methods(["POST"])
  42. def add(request):
  43. body = json.loads(request.body)
  44. # 如果是司机的话,需要填写车牌号
  45. # print(22, body['type'])
  46. if body['type'] == 'FL002' and body['car'] == '':
  47. return HttpResponse(setError("车牌号不存在"))
  48. isAdd = User_models.objects.all().filter(mobile=body['mobile'])
  49. if len(isAdd) > 0:
  50. return HttpResponse(setError("该用户手机号已存在,添加失败"))
  51. user_add = User_models(name=body['name'], nickname=body['nickname'], address=body['address'], email=body['email'],
  52. password=body['password'], mobile=body['mobile'], type=body['type'], sex=body['sex'],
  53. car=body['car'])
  54. user_add.save()
  55. return HttpResponse(setSuccess(msg='添加成功', data=userPersonToDictionary(user_add)))
  56. @csrf_exempt
  57. @require_http_methods(["POST"])
  58. def update(request):
  59. body = copy.deepcopy(json.loads(request.body))
  60. if body.get('id') == None or body['id'] == '':
  61. return HttpResponse(setError("用户不存在"))
  62. # type
  63. print(body.get('type'))
  64. field_list = ['address', 'password', 'nickname', 'mobile']
  65. params = {}
  66. # 用户信息更新
  67. if (body.get('type') == 'Fl001'):
  68. # 如果字段中存在未完成订单,不允许修改地址,联系方式
  69. if body.get('address') != None or body.get('mobile') != None:
  70. # 查询数据库中是否存在未完成订单
  71. user_order = Order_models.objects.filter(user_id=body['id'], status__lte=2)
  72. if len(user_order) > 0:
  73. return HttpResponse(setError("存在未完成订单,无法修改!"))
  74. for key in field_list:
  75. if params.get(key) == None and body.get(key) != None:
  76. params.setdefault(key, body.get(key))
  77. # elif body.get(key) != None and params.get(key) != None:
  78. # setattr(params, key, body.get(key))
  79. # 司机信息或者是回收站更新
  80. if body.get('type') == 'Fl002' or body.get('type') == 'Fl003':
  81. for key in field_list:
  82. # if body.get(key) != None and key != 'address':
  83. # setattr(params, key, body.get(key))
  84. if params.get(key) == None and body.get(key) != None and key != 'address':
  85. params.setdefault(key, body.get(key))
  86. User_models.objects.filter(id=body['id']).update(**params)
  87. return HttpResponse(setSuccess(msg='更新成功'))