def list(self, request): user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) queryset = self.get_queryset().filter(user_id=user_id) serializer = self.get_serializer(queryset, many=True) result = serializer.data return JsonResponse(data={'flag': True, 'data': result}, status=200)
def get(self, request): print(request.query_params) serializer = CodeSerializer(data=request.query_params) if serializer.is_valid(): print(serializer.data) phone = serializer.validated_data.get('phone') code = producecode() # 设置过期时间 key = 'House' + phone Res.set(key, code, ex=60 * 5) print('验证码:', code) data = { 'code': code } return JsonResponse(data=data, status=200) else: return JsonResponse(data=None, status=400)
def post(self, request): # 验证前端数据 serializer = LoginSerializer(data=request.data) # is_valid()判断数据是否符合要求 if not serializer.is_valid(): return JsonResponse(data={'login': False, 'message': '验证码错误!'}, status=400) # 判断用户是否创建 # validated_data用于获取验证并处理好的数据 # 反序列化为json数据 user_obj = serializer.create(request.data) Res.set('user_id', user_obj.id, ex=1393840000) result = UserSerializer(user_obj) user_data = result.data reward = Reward.objects.filter(user=user_obj, is_grant=True).first() if reward: user_data['reward'] = reward.total_money else: user_data['reward'] = 0 user_roles = user_obj.roles.all() permissions = [] if user_roles: for role in user_roles: ret = { 'id': None, 'title': None, 'code': None } permission = role.permissions.all() if permission: for per in permission: ret = { 'id': per.id, 'title': per.title, 'code': per.code } permissions.append(ret) user_data['permissions'] = permissions data = { 'login': True, 'user': user_data, } return JsonResponse(data=data, status=200)
def validate_code(self, value): if len(value) != 4: raise ValidationError('验证码错误!') phone = self.initial_data.get('phone') key = 'House' + phone code_redis = Res.get(key).decode('utf-8') if not code_redis: raise ValidationError('验证码已过期!') if value.lower() != code_redis.lower(): raise ValidationError('验证码错误!') return value
def create(self, request, *args, **kwargs): serializers = self.get_serializer(data=request.data) if not serializers.is_valid(): return JsonResponse(data={'message': '数据错误'}, status=400) user_id = Res.get('user_id').decode('utf-8') instance = serializers.create(serializers.validated_data, user_id) return JsonResponse(data={ 'flag': True, 'result': { 'message': 'success' } }, status=200)
def create(self, request): serializers = self.get_serializer(data=request.data) user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) if not serializers.is_valid(): return JsonResponse(data={'message': '数据错误'}, status=400) address_obj = serializers.create(serializers.validated_data, user_id) result = self.get_serializer(address_obj) return JsonResponse(data={ 'flag': True, 'result': result.data }, status=200)
def get_default_address(self, request): ''' 获取默认地址 :param request: :return: ''' user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) instance = self.get_queryset().filter(user_id=user_id, is_default=True).first() result = self.get_serializer(instance) return JsonResponse(data={ 'flag': True, 'result': result.data }, status=200)
def update(self, request, pk): user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) instance = self.get_queryset().filter(id=pk).first() if not instance: return JsonResponse(data={'message': '该地址不存在!'}, status=400) serializers = self.get_serializer(data=request.data) if not serializers.is_valid(): return JsonResponse(data={'message': '数据错误'}, status=400) address_obj = serializers.update(instance, serializers.validated_data) result = self.get_serializer(address_obj) return JsonResponse(data={ 'flag': True, 'result': result.data }, status=200)
def create(self, request): serializers = self.get_serializer(data=request.data) user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) if not serializers.is_valid(): return JsonResponse(data={'message': '数据错误'}, status=400) order_obj = serializers.create(serializers.validated_data, user_id) order_service_obj = OrderService.objects.filter(order=order_obj) result = OrderServiceSerializer(order_service_obj, many=True) data = {} service_list = [] for item in result.data: data['order'] = item['order'] item['service']['o_service_num'] = item['o_service_num'] item['service']['service_price'] = item['service_price'] service_list.append(item['service']) data['service'] = service_list return JsonResponse(data={'flag': True, 'result': data}, status=200)
def set_default_address(self, request): ''' 设置默认地址 ''' user_id = Res.get('user_id').decode('utf-8') if not user_id: return JsonResponse(data={'message': '用户未登录!'}, status=400) serializers = AddressDefaultSerializer(data=request.data) if not serializers.is_valid(): return JsonResponse(data={'message': '数据错误'}, status=400) queryset = self.get_queryset().filter(user_id=user_id) instance = serializers.set_default_address(queryset, serializers.validated_data) result = self.get_serializer(instance) return JsonResponse(data={ 'flag': True, 'result': result.data }, status=200)
def retrieve(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance) comments_list = [] comments = Comment.objects.filter(sid=instance.id) for com in comments: user = UserInfo.objects.filter(id=com.uid).first() comment_str = user.nickName + ':' + com.content comments_list.append(comment_str) user_id = Res.get('user_id').decode('utf-8') res = serializer.data res['day_price'] = (res['grade'] * res['s_category']['price'] * 8) * 0.75 res['month_price'] = (res['grade'] * res['s_category']['price'] * 8 * 30) * 0.6 if res['grade'] > 1: res['price'] = res['grade'] * res['s_category']['price'] * 0.85 res['day_price'] = (res['grade'] * res['s_category']['price'] * 0.85 * 8) * 0.75 res['month_price'] = (res['grade'] * res['s_category']['price'] * 0.85 * 8 * 30) * 0.6 res['collect'] = False collect = Collect.objects.filter(user_id=user_id, service_id=res['id']).first() if collect: res['collect'] = collect.is_collect if comments_list: res['comment'] = '<br>'.join(comments_list) return JsonResponse(res)