소스 검색

PC软件新增根据token 获取全部信息

chenshibin 4 년 전
부모
커밋
9a8a01550d
2개의 변경된 파일52개의 추가작업 그리고 24개의 파일을 삭제
  1. 50 22
      Controller/PctestController.py
  2. 2 2
      Model/models.py

+ 50 - 22
Controller/PctestController.py

@@ -67,34 +67,30 @@ class PcTest(View):
                         return self.functionquery(request_dict, userID, response)
                     elif operation == 'job/device/add':
                         return self.jobdeviceadd(request_dict, userID, response)
-                    elif operation == 'job/device/query':
-                        return self.jobdevicequery(request_dict, jobID, response)
                     elif operation == 'device/function/add':
                         return self.devicefunctionadd(request_dict, userID, response)
-                    elif operation == 'device/function/query':
-                        return self.devicefunctionquery(request_dict, jobID, response)
                     elif operation == 'staff/add':
                         return self.staffadd(request_dict, userID, response)
                     elif operation == 'staff/query':
                         return self.staffquery(request_dict, userID, response)
                     elif operation == 'staff/delete':
                         return self.staffdelete(request_dict, userID, response)
-                    elif operation == 'log/query':
-                        return self.logquery(request_dict, userID, response)
-                    else:
-                        return response.json(404)
+
+
+                # 公共访问的接口
+                if operation == 'job/device/query':
+                    return self.jobdevicequery(request_dict, jobID, response)
+                elif operation == 'device/function/query':
+                    return self.devicefunctionquery(request_dict, jobID, response)
+                elif operation == 'log/add':
+                    return self.logadd(request_dict, userID, response)
+                elif operation == 'log/query':
+                    return self.logquery(request_dict, userID, response)
+                elif operation == 'token/fullInfo':
+                    return self.fullInfo(request_dict, userID, response)
                 else:
-                    # 普通员工访问的接口
-                    if operation == 'job/device/query':
-                        return self.jobdevicequery(request_dict, jobID, response)
-                    elif operation == 'device/function/query':
-                        return self.devicefunctionquery(request_dict, jobID, response)
-                    elif operation == 'log/add':
-                        return self.logadd(request_dict, userID, response)
-                    elif operation == 'log/query':
-                        return self.logquery(request_dict, userID, response)
-                    else:
-                        return response.json(404)
+                    return response.json(404)
+
 
     def login(self, request_dict, response):
         username = request_dict.get('username', None)
@@ -109,14 +105,14 @@ class PcTest(View):
                 return response.json(104)
             return response.json(111)
 
-        users = user_qs.values('id', 'username', 'password', 'job')[0]
+        users = user_qs.values('id', 'username', 'password', 'job__jobcode')[0]
         tko = TokenObject()
         # 加密
         res = tko.generate(
-            data={'id': users['id'], 'username': users['username'], 'password': users['password'], 'job': users['job']})
+            data={'id': users['id'], 'username': users['username'], 'password': users['password'], 'job': users['job__jobcode']})
         res_qs = {
             'res': res,
-            'job': users['job']
+            'job': users['job__jobcode']
         }
         return response.json(0, res_qs)
 
@@ -307,6 +303,38 @@ class PcTest(View):
             device_list.append(i)
         return response.json(0, device_list)
 
+    def fullInfo(self, request_dict, userID, response):
+        user_qs = PctestuserModel.objects.filter(id=userID).values('job')
+        fullinfo = []
+        data = {}
+        if user_qs.exists():
+
+            job_qs = PctestjobModel.objects.filter(id=user_qs[0]['job'])
+            user_qs = user_qs.values('username', 'password')
+
+            device_qs = PctestjobdeviceModel.objects.filter(job__in=job_qs).values('device')
+
+            function_qs = PctestModel.objects.filter(device__in=device_qs)
+
+            data = user_qs[0]
+            data['jobs'] = CommonService.qs_to_list(job_qs.values('id', 'jobname'))
+
+            i = 0
+            for jobs in data['jobs']:
+
+                data['jobs'][i]['devices'] = CommonService.qs_to_list(device_qs.filter(job__id=jobs['id']).values('device__id', 'device__devicename'))
+
+                j = 0
+                for devices in jobs['devices']:
+                    data['jobs'][i]['devices'][j]['functions'] = CommonService.qs_to_list(function_qs.filter(device__id=devices['device__id']).values('function__id','function__functionname'))
+                    j = j+1
+
+                i = i+1
+
+
+            fullinfo.append(data)
+        return response.json(0, fullinfo)
+
 
 class TokenObject1:
 

+ 2 - 2
Model/models.py

@@ -1610,7 +1610,7 @@ class CloudLogModel(models.Model):
 class PctestjobModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     jobname = models.CharField(blank=True, max_length=32, verbose_name=u'岗位名字')
-
+    jobcode = models.SmallIntegerField(default=3, verbose_name='岗位code 。1:管理员,3:普通人员')
     class Meta:
         db_table = 'pctest_job'
         verbose_name = u'pc岗位表'
@@ -1632,7 +1632,7 @@ class PctestdeviceModel(models.Model):
 class PctestfunctionModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     functionname = models.CharField(blank=True, max_length=32, verbose_name=u'职能名字')
-
+    functioncode = models.SmallIntegerField(default=3, verbose_name='职能code 。PC端自己逻辑判断')
     class Meta:
         db_table = 'pctest_function'
         verbose_name = u'pc设备职能表'