#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time from django.views import View from Model.models import Device_User, UserRegionModel from Object.ResponseObject import ResponseObject from Object.TokenObject import TokenObject class UserRegionView(View): def get(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.GET return self.validate(request_dict, operation) def post(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.POST return self.validate(request_dict, operation) def validate(self, request_dict, operation): token = TokenObject(request_dict.get('token', None)) response = ResponseObject() if token.code != 0: return response.json(token.code) if operation == 'init': return self.do_init(token.userID, request_dict, response) else: return response.json(404) def do_init(self, userID, request_dict, response): user_qs = Device_User.objects.filter(userID=userID) if not user_qs.exists(): return response.json(309) region_id = request_dict.get('country_number', None) if region_id: user_region_qs = UserRegionModel.objects.filter(user__userID=userID) now_time = int(time.time()) if not user_region_qs.exists(): user_region = UserRegionModel(user_id=userID, region_id=region_id, add_time=now_time, update_time=now_time) user_region.save() else: update = { 'region_id': region_id, 'update_time': now_time } user_region_qs.update(**update) return response.json(0) else: return response.json(444)