locky 4 жил өмнө
parent
commit
385034dbd4

+ 49 - 6
AdminController/UserManageController.py

@@ -296,15 +296,16 @@ class UserManagement(View):
             userID = tko.userID
             userID = tko.userID
             if operation == 'getUserInfo':
             if operation == 'getUserInfo':
                 return self.getUserInfo(userID, request_dict, response)
                 return self.getUserInfo(userID, request_dict, response)
-            if operation == 'doEdit':
-                return self.doEdit(userID, request_dict, response)
-            if operation == 'doDelete':
+            elif operation == 'registerAccount':
+                return self.registerAccount(userID, request_dict, response)
+            elif operation == 'doDelete':
                 return self.doDelete(userID, request_dict, response)
                 return self.doDelete(userID, request_dict, response)
             else:
             else:
                 return response.json(404)
                 return response.json(404)
 
 
     def getUserInfo(self, userID, request_dict, response):
     def getUserInfo(self, userID, request_dict, response):
         print('request_dict: ', request_dict)
         print('request_dict: ', request_dict)
+        username = request_dict.get('username', '').strip()   # 移除字符串头尾的空格
         pageNo = request_dict.get('pageNo', None)
         pageNo = request_dict.get('pageNo', None)
         pageSize = request_dict.get('pageSize', None)
         pageSize = request_dict.get('pageSize', None)
 
 
@@ -313,9 +314,23 @@ class UserManagement(View):
 
 
         page = int(pageNo)
         page = int(pageNo)
         line = int(pageSize)
         line = int(pageSize)
-
         try:
         try:
-            device_user_qs = Device_User.objects.filter().all()  # values('username', 'role', 'phone', 'NickName', 'userEmail', 'data_joined', 'last_login', 'online')
+            if username:    # 查询
+                # 校验查询输入数据是否匹配用户名,手机或邮箱正则
+                dataValid = DataValid()
+                if not (dataValid.name_validate(username) or dataValid.mobile_validate(username) \
+                        or dataValid.email_validate(username)):
+                    return response.json(444)
+                device_user_qs = Device_User.objects.filter(username=username)
+                if not device_user_qs.exists():
+                    device_user_qs = Device_User.objects.filter(phone=username)
+                    if not device_user_qs.exists():
+                        device_user_qs = Device_User.objects.filter(userEmail=username)
+                        if not device_user_qs.exists():
+                            return response.json(104)
+
+            else:
+                device_user_qs = Device_User.objects.filter().all()  # 查询全部
             count = device_user_qs.count()
             count = device_user_qs.count()
             device_users = device_user_qs[(page - 1) * line:page * line]
             device_users = device_user_qs[(page - 1) * line:page * line]
             user_list = []
             user_list = []
@@ -334,10 +349,38 @@ class UserManagement(View):
                     'online': device_user.online,
                     'online': device_user.online,
                 })
                 })
             print('user_list: ', user_list)
             print('user_list: ', user_list)
-            return response.json(0, {'list': user_list, 'count': count})
+            return response.json(0, {'list': user_list, 'total': count})
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
             return response.json(500, repr(e))
             return response.json(500, repr(e))
 
 
+    def registerAccount(self, userID, request_dict, response):
+        username = request_dict.get('username', '').strip()   # 移除字符串头尾的空格
+        userEmail = request_dict.get('userEmail', '').strip()
+        password = request_dict.get('password', None)
+
+        if not all([username, password]):
+            return response.json(444)
 
 
+        # 校验用户名,邮箱,密码是否符合规则
+        dataValid = DataValid()
+        if not dataValid.name_validate(username) or not dataValid.email_validate(userEmail) \
+                or not dataValid.password_validate(password):
+            return response.json(444)
 
 
+        try:
+            # 查询用户是否已存在
+            # 创建账户信息
+            user_data = {
+                "username": username,
+                "NickName": username,
+                "userEmail": userEmail,
+                "password": make_password(password),
+                "userID": CommonService.getUserID(μs=False, setOTAID=True),
+                "is_active": True,
+                "user_isValid": True,
+            }
+            Device_User.objects.create(**user_data)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, repr(e))