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 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 # 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", "GET"]) def info(request): if len(request.body) == 0: return HttpResponse(setError("请传入数据!")) body = json.loads(request.body) if body.get('id') == None: return HttpResponse(setError("该用户不存在!")) user_info = userPersonToDictionary(User_models.objects.get(id=body.get('id'))) print(user_info) return HttpResponse(setSuccess(data=user_info)) """ 用户登陆 """ @csrf_exempt @require_http_methods(["POST"]) def login(request): body = json.loads(request.body) if body.get('email') == None: return HttpResponse(setError("该用户不存在!")) if body.get('password') == None: return HttpResponse(setError("该用户不存在!")) user_info = userPersonToDictionary(User_models.objects.get(email=body.get('email'), password=body.get('password'))) print(user_info) return HttpResponse(setSuccess(data=user_info)) @csrf_exempt @require_http_methods(["POST"]) def add(request): body = json.loads(request.body) # 如果是司机的话,需要填写车牌号 # print(22, body['type']) if body['type'] == 'FL002' and body['car'] == '': return HttpResponse(setError("车牌号不存在")) isAdd = User_models.objects.all().filter(mobile=body['mobile']) if len(isAdd) > 0: return HttpResponse(setError("该用户手机号已存在,添加失败")) user_add = User_models(name=body['name'], nickname=body['nickname'], address=body['address'], email=body['email'], password=body['password'], mobile=body['mobile'], type=body['type'], sex=body['sex'], car=body['car']) user_add.save() return HttpResponse(setSuccess(msg='添加成功', data=userPersonToDictionary(user_add))) @csrf_exempt @require_http_methods(["POST"]) def update(request): body = copy.deepcopy(json.loads(request.body)) if body.get('id') == None or body['id'] == '': return HttpResponse(setError("用户不存在")) # type print(body.get('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 HttpResponse(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)) User_models.objects.filter(id=body['id']).update(**params) return HttpResponse(setSuccess(msg='更新成功'))