123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- import json
- import copy
- from django.utils import timezone
- from django.shortcuts import render
- from user.models import User as User_models
- from order.models import Order as Order_models
- # Create your views here.
- from django.http import HttpResponse, JsonResponse
- from django.views.decorators.http import require_http_methods
- from django.views.decorators.csrf import csrf_exempt
- from django.core import serializers # 序列化 QuerySet
- from admin_site.utils import setError, setSuccess, userPersonToDictionary, get_timestamp,user_to_dict
- from sick.views import add_sick
- from sick.models import Sick as Sick_models
- from rest_framework.parsers import JSONParser
- import jwt
- import re
- import pytz
- # from rest_framework.views import APIView
- # from rest_framework.response import Response
- def index(request):
- return HttpResponse("Hello, user index")
- @csrf_exempt
- @require_http_methods(["POST"])
- def info(request):
- params = json.loads(request.body)
- if params['token'] == None:
- return HttpResponse(setError("该用户不存在!"))
- user_info = userPersonToDictionary(User_models.objects.get(token=params['token']))
- print(34, user_info)
- if user_info['isSick']:
- sick_list_dic = Sick_models.objects.filter(user_id=user_info['id'])
- sick_list = []
- for key in sick_list_dic:
- sick_list.append(key.name)
- if len(sick_list) > 0:
- user_info.setdefault('sick', sick_list)
- return JsonResponse(setSuccess(data=user_info))
- """ 用户登陆 """
- @csrf_exempt
- @require_http_methods(["POST"])
- def login(request):
- body = json.loads(request.body)
- if body.get('email') == None:
- return JsonResponse(setError('该用户不存在!'))
- if body.get('password') == None:
- return JsonResponse(setError('该用户的密码不存在!'))
- user_info = User_models.objects.get(email=body.get('email'))
- name = body.get("name", None)
- password = body.get("password", None)
- print(user_info.password, password, type(password));
- if user_info.email != None and user_info.password != password:
- return JsonResponse(setError('密码输入错误!'))
- # , password=body.get('password')
- now_time = timezone.localtime()
- user_str = {'username': user_info.email, 'password': password, 'now_time': get_timestamp(now_time)}
- token = jwt.encode(user_str, 'sercet', algorithm='HS256')
- params = {
- "token": token,
- 'token_exit_time': now_time
- }
- User_models.objects.filter(id=user_info.id).update(**params)
- new_user_info = user_to_dict(user_info)
- params = {**new_user_info,**params}
- return JsonResponse(setSuccess(data=params))
- @csrf_exempt
- @require_http_methods(["POST"])
- def register(request):
- # body = request.POST
- body = json.loads(request.body)
- is_add = User_models.objects.all().filter(email=body.get('email'))
- if len(is_add) > 0:
- return JsonResponse(setError("当前邮箱已存在,添加失败"))
- params = {
- 'email': body.get('email'),
- 'password': body.get('password'),
- }
- user_add = User_models(**params)
- user_add.save()
- return JsonResponse(setSuccess(msg='注册成功', data=True))
- @csrf_exempt
- @require_http_methods(["POST"])
- def update(request):
- # body = request.POST.dict()
- body = json.loads(request.body)
- print(80808080, body)
- if body['id'] == None or body['id'] == '':
- return JsonResponse(setError("用户不存在"))
- # if(body['id'])
- new_body = {}
- body.setdefault('is_sick', body['isSick'])
- print(99, body['is_sick'])
- del body['isSick']
- if body['is_sick']:
- add_sick(request)
- for field in body:
- match = re.search(r'\bsick\[\b', field)
- if match == None:
- new_body[field] = body[field]
- else:
- print(107, body['is_sick'])
- Sick_models.objects.filter(user_id=body.get('id')).delete()
- new_body = body
- del new_body['sick']
- # type
- # field_list = ['address', 'password', 'nickname', 'mobile']
- # params = {}
- # # 用户信息更新
- # if (body.get('type') == 'Fl001'):
- # # 如果字段中存在未完成订单,不允许修改地址,联系方式
- # if body.get('address') != None or body.get('mobile') != None:
- # # 查询数据库中是否存在未完成订单
- # user_order = Order_models.objects.filter(user_id=body['id'], status__lte=2)
- # if len(user_order) > 0:
- # return JsonResponse(setError("存在未完成订单,无法修改!"))
- # for key in field_list:
- # if params.get(key) == None and body.get(key) != None:
- # params.setdefault(key, body.get(key))
- # # elif body.get(key) != None and params.get(key) != None:
- # # setattr(params, key, body.get(key))
- #
- # # 司机信息或者是回收站更新
- # if body.get('type') == 'Fl002' or body.get('type') == 'Fl003':
- # for key in field_list:
- # # if body.get(key) != None and key != 'address':
- # # setattr(params, key, body.get(key))
- # if params.get(key) == None and body.get(key) != None and key != 'address':
- # params.setdefault(key, body.get(key))
- # Order_models.objects.filter(user_id=body['id'], status__lte=1)
- User_models.objects.filter(id=body['id']).update(**new_body)
- return JsonResponse(setSuccess(msg='更新成功', data=True))
|