| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 | 
							- #!/usr/bin/env python3
 
- # -*- coding: utf-8 -*-
 
- import time
 
- from django.db.models import Q
 
- from django.utils.decorators import method_decorator
 
- from django.views import View
 
- from django.views.decorators.csrf import csrf_exempt
 
- from Model.models import UserModel
 
- from Object.uidManageResponseObject import uidManageResponseObject
 
- from Object.TokenObject import TokenObject
 
- from Service.ModelService import ModelService
 
- class UserView(View):
 
-     @method_decorator(csrf_exempt)
 
-     def dispatch(self, request, *args, **kwargs):
 
-         return super(UserView, self).dispatch(request, *args, **kwargs)
 
-     def get(self, request, *args, **kwargs):
 
-         # print('get')
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.GET
 
-         operation = kwargs.get('operation')
 
-         return self.validation(request_dict, operation)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         request_dict = request.POST
 
-         operation = kwargs.get('operation')
 
-         return self.validation(request_dict, operation)
 
-     def validation(self, request_dict, operation):
 
-         if operation == 'login':
 
-             return self.login(request_dict)
 
-         elif operation == 'logout':
 
-             return self.logout(request_dict)
 
-         else:
 
-             token = request_dict.get('token', None)
 
-             token = TokenObject(token)
 
-             response = uidManageResponseObject()
 
-             if token.code != 0:
 
-                 return response.json(token.code)
 
-             if operation == 'query':
 
-                 return self.do_query(request_dict)
 
-             elif operation == 'modify':
 
-                 return self.do_modify_password(request_dict)
 
-             elif operation == 'list':
 
-                 return self.do_list(request_dict)
 
-             elif operation == 'adminAdd':
 
-                 return self.do_admin_add(token.userID, request_dict, response)
 
-             elif operation == 'adminDelete':
 
-                 return self.do_admin_delete(token.userID, request_dict, response)
 
-             elif operation == 'adminUpdate':
 
-                 return self.do_admin_update(token.userID, request_dict, response)
 
-             elif operation == 'adminReset':
 
-                 return self.do_admin_reset(token.userID, request_dict, response)
 
-             else:
 
-                 return uidManageResponseObject().json(309)
 
-     def login(self, request_dict):
 
-         username = request_dict.get('username', None)
 
-         password = request_dict.get('password', None)
 
-         response = uidManageResponseObject()
 
-         if username is None or password is None:
 
-             return response.json(444)
 
-         user = UserModel.objects.filter(username=username)
 
-         if user.exists():
 
-             if user[0].password != password:
 
-                 return response.json(99)
 
-             else:
 
-                 token = TokenObject()
 
-                 res = token.generate({'userID': user[0].id})
 
-                 res['permission'] = user[0].permission
 
-                 res['username'] = user[0].username
 
-                 user[0].online = 1
 
-                 update = {
 
-                     'online': 1
 
-                 }
 
-                 user.update(**update)
 
-                 return response.json(0, res)
 
-         else:
 
-             return response.json(99)
 
-     def do_query(self, request_dict):
 
-         # print('do_query')
 
-         token = TokenObject(request_dict.get('token', None))
 
-         # page = request_dict.get('page', None)
 
-         # line = request_dict.get('line', None)
 
-         # username = request_dict.get('username', None)
 
-         response = uidManageResponseObject()
 
-         if token.code != 0:
 
-             return response.json(token.code)
 
-         # if username:
 
-         #     user_qs = UserModel.objects.filter(username__icontains=username)
 
-         #     if user_qs.exists():
 
-         #         users = list(user_qs.values('username'))
 
-         #         return response.json(0, {'data': users})
 
-         #     else:
 
-         #         return response.json(0, {'data': []})
 
-         # elif page and line:
 
-         #     print('query_page')
 
-         #     user_qs = UserModel.objects.filter(id=token.userID)
 
-         #     if user_qs.exists():
 
-         #         user = user_qs[0]
 
-         #         if user.permission == '0':
 
-         #             return self.do_query_pagination(int(page), int(line), response)
 
-         #         else:
 
-         #             return response.json(404)
 
-         #     else:
 
-         #         return response.json(9)
 
-         user_qs = UserModel.objects.filter(~Q(Q(permission='0'))).values('id', 'username')
 
-         return response.json(0, {'data': list(user_qs)})
 
-     def do_query_pagination(self, page, line, response):
 
-         # print('query start')
 
-         user_qs = UserModel.objects.filter().values()
 
-         if user_qs.exists():
 
-             count = user_qs.count()
 
-             start = (page - 1) * line
 
-             end = start + line
 
-             users = list(user_qs[start:end])
 
-             # print('query end')
 
-             return response.json(0, {'count': count, 'data': users})
 
-         else:
 
-             return response.json(0, {'count': 0, 'data': []})
 
-     def do_modify_password(self, request_dict):
 
-         token = request_dict.get('token', None)
 
-         old_password = request_dict.get('oldPassword', None)
 
-         new_password = request_dict.get('newPassword', None)
 
-         token = TokenObject(token)
 
-         response = uidManageResponseObject()
 
-         if token.code != 0:
 
-             return response.json(token.code)
 
-         if old_password and new_password:
 
-             user_qs = UserModel.objects.filter(id=token.userID)
 
-             if user_qs.exists():
 
-                 if user_qs[0].password != old_password:
 
-                     return response.json(47)
 
-                 user = {
 
-                     'password': new_password
 
-                 }
 
-                 user_qs.update(**user)
 
-                 return response.json(0)
 
-             else:
 
-                 return response.json(9)
 
-         else:
 
-             return response.json(444)
 
-     def logout(self, request_dict):
 
-         token = request_dict.get('token', None)
 
-         token = TokenObject(token)
 
-         response = uidManageResponseObject()
 
-         if token.code != 0:
 
-             return response.json(0)
 
-         user_qs = UserModel.objects.filter(id=token.userID)
 
-         if user_qs.exists():
 
-             user = {
 
-                 'online': 0
 
-             }
 
-             user_qs.update(**user)
 
-             return response.json(0)
 
-         else:
 
-             return response.json(0)
 
-     def do_list(self, request_dict):
 
-         token = request_dict.get('token', None)
 
-         response = uidManageResponseObject()
 
-         token = TokenObject(token)
 
-         if token.code != 0:
 
-             return response.json(token.code)
 
-         page = request_dict.get('page', None)
 
-         line = request_dict.get('limit', None)
 
-         if page and line:
 
-             user_qs = UserModel.objects.filter()
 
-             res = {
 
-                 'count': user_qs.count(),
 
-                 'data': []
 
-             }
 
-             if user_qs.exists():
 
-                 page = int(page)
 
-                 line = int(line)
 
-                 start = (page - 1) * line
 
-                 end = start + line
 
-                 user_qs = user_qs[start:end].values('id', 'username', 'permission', 'phone', 'login_time', 'add_time')
 
-                 res['data'] = list(user_qs)
 
-             return response.json(0, res)
 
-         else:
 
-             return response.json(444)
 
-     def do_admin_add(self, userID, request_dict, response):
 
-         # perm = ModelService.check_perm_uid_manage(userID, 0)
 
-         # if not perm:
 
-         #     return response.json(309)
 
-         print(request_dict)
 
-         username = request_dict.get('username', None)
 
-         password = request_dict.get('password', None)
 
-         phone = request_dict.get('phone', None)
 
-         role = request_dict.get('role', None)
 
-         if username and password and role:
 
-             user = UserModel()
 
-             user.username = username
 
-             user.password = password
 
-             user.permission = role
 
-             user.phone = phone
 
-             user.add_time = int(time.time())
 
-             user.save()
 
-             return response.json(0)
 
-         else:
 
-             return response.json(444)
 
-     def do_admin_delete(self, userID, request_dict, response):
 
-         # perm = ModelService.check_perm_uid_manage(userID, 0)
 
-         # if not perm:
 
-         #     return response.json(309)
 
-         username = request_dict.get('username', None)
 
-         if username:
 
-             user_qs = UserModel.objects.filter(username=username)
 
-             if user_qs.exists():
 
-                 user_qs.delete()
 
-                 return response.json(0)
 
-             else:
 
-                 return response.json(9)
 
-         else:
 
-             return response.json(444)
 
-     def do_admin_update(self, userID, request_dict, response):
 
-         # perm = ModelService.check_perm_uid_manage(userID, 0)
 
-         # if not perm:
 
-         #     return response.json(309)
 
-         username = request_dict.get('username', None)
 
-         role = request_dict.get('role', None)
 
-         password = request_dict.get('password', None)
 
-         phone = request_dict.get('phone', None)
 
-         if username:
 
-             update_data = {}
 
-             if role:
 
-                 update_data['permission'] = role
 
-             if password:
 
-                 update_data['password'] = password
 
-             if phone:
 
-                 update_data['phone'] = phone
 
-             UserModel.objects.filter(username=username).update(**update_data)
 
-             return response.json(0)
 
-         else:
 
-             return response.json(444)
 
-     def do_admin_reset(self, userID, request_dict, response):
 
-         # perm = ModelService.check_perm_uid_manage(userID, 0)
 
-         # if not perm:
 
-         #     return response.json(309)
 
-         username = request_dict.get('username', None)
 
-         if username:
 
-             user_qs = UserModel.objects.filter(username=username)
 
-             if user_qs.exists():
 
-                 user_qs.update(password='123456')
 
-                 return response.json(0)
 
-             else:
 
-                 return response.json(9)
 
-         else:
 
-             return response.json(444)
 
 
  |