Browse Source

初版调试

chenjunkai 7 years ago
parent
commit
f87e04f66b
75 changed files with 2576 additions and 3523 deletions
  1. 135 91
      .idea/workspace.xml
  2. BIN
      Ansjer/__pycache__/config.cpython-36.pyc
  3. BIN
      Ansjer/__pycache__/settings.cpython-36.pyc
  4. BIN
      Ansjer/__pycache__/urls.cpython-36.pyc
  5. 43 14
      Ansjer/config.py
  6. 11 17
      Ansjer/settings.py
  7. 9 4
      Ansjer/test/util/encryDownLoad.py
  8. 78 94
      Ansjer/urls.py
  9. 72 111
      Controller/AccessLog.py
  10. 78 75
      Controller/AdminManage.py
  11. 50 54
      Controller/AppInfo.py
  12. 40 85
      Controller/CheckUserData.py
  13. 23 23
      Controller/DeviceLog.py
  14. 44 43
      Controller/DeviceManage.py
  15. 66 67
      Controller/DeviceMeal.py
  16. 71 69
      Controller/EquipmentInfo.py
  17. 170 211
      Controller/EquipmentManager.py
  18. 55 50
      Controller/EquipmentOTA.py
  19. 55 50
      Controller/EquipmentSensor.py
  20. 14 11
      Controller/EquipmentStatus.py
  21. 54 49
      Controller/FeedBackInfo.py
  22. 94 91
      Controller/HlsManage.py
  23. 30 26
      Controller/LogAccess.py
  24. 39 83
      Controller/LogManager.py
  25. 65 65
      Controller/MealManage.py
  26. 247 349
      Controller/OTAEquipment.py
  27. 255 106
      Controller/OauthManage.py
  28. 182 474
      Controller/PermissionManager.py
  29. 149 145
      Controller/StreamMedia.py
  30. 15 12
      Controller/SysManage.py
  31. 18 10
      Controller/Test.py
  32. 145 747
      Controller/UserManger.py
  33. BIN
      Controller/__pycache__/AccessLog.cpython-36.pyc
  34. BIN
      Controller/__pycache__/AdminManage.cpython-36.pyc
  35. BIN
      Controller/__pycache__/AppInfo.cpython-36.pyc
  36. BIN
      Controller/__pycache__/CheckUserData.cpython-36.pyc
  37. BIN
      Controller/__pycache__/DeviceLog.cpython-36.pyc
  38. BIN
      Controller/__pycache__/DeviceManage.cpython-36.pyc
  39. BIN
      Controller/__pycache__/DeviceMeal.cpython-36.pyc
  40. BIN
      Controller/__pycache__/EquipmentInfo.cpython-36.pyc
  41. BIN
      Controller/__pycache__/EquipmentManager.cpython-36.pyc
  42. BIN
      Controller/__pycache__/EquipmentOTA.cpython-36.pyc
  43. BIN
      Controller/__pycache__/EquipmentSensor.cpython-36.pyc
  44. BIN
      Controller/__pycache__/EquipmentStatus.cpython-36.pyc
  45. BIN
      Controller/__pycache__/FeedBackInfo.cpython-36.pyc
  46. BIN
      Controller/__pycache__/HlsManage.cpython-36.pyc
  47. BIN
      Controller/__pycache__/LogAccess.cpython-36.pyc
  48. BIN
      Controller/__pycache__/LogManager.cpython-36.pyc
  49. BIN
      Controller/__pycache__/MealManage.cpython-36.pyc
  50. BIN
      Controller/__pycache__/OTAEquipment.cpython-36.pyc
  51. BIN
      Controller/__pycache__/OauthManage.cpython-36.pyc
  52. BIN
      Controller/__pycache__/PermissionManager.cpython-36.pyc
  53. BIN
      Controller/__pycache__/StreamMedia.cpython-36.pyc
  54. BIN
      Controller/__pycache__/SysManage.cpython-36.pyc
  55. BIN
      Controller/__pycache__/Test.cpython-36.pyc
  56. BIN
      Controller/__pycache__/UserController.cpython-36.pyc
  57. BIN
      Controller/__pycache__/UserManger.cpython-36.pyc
  58. BIN
      Controller/__pycache__/shareUserPermission.cpython-36.pyc
  59. 114 121
      Controller/shareUserPermission.py
  60. 3 15
      DB/data.json
  61. BIN
      Model/__pycache__/models.cpython-36.pyc
  62. 18 70
      Model/models.py
  63. 1 1
      Object/AWS/SesClassObject.py
  64. BIN
      Object/AWS/__pycache__/SesClassObject.cpython-36.pyc
  65. 51 0
      Object/TokenObject1.py
  66. 31 2
      Service/CommonService.py
  67. 27 32
      Service/MiscellService.py
  68. 13 4
      Service/ModelService.py
  69. 4 40
      Service/TemplateService.py
  70. BIN
      Service/__pycache__/CommonService.cpython-36.pyc
  71. BIN
      Service/__pycache__/MiscellService.cpython-36.pyc
  72. BIN
      Service/__pycache__/ModelService.cpython-36.pyc
  73. BIN
      Service/__pycache__/TemplateService.cpython-36.pyc
  74. BIN
      Service/__pycache__/middleware.cpython-36.pyc
  75. 7 12
      Service/middleware.py

+ 135 - 91
.idea/workspace.xml

@@ -1,7 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
 <project version="4">
   <component name="ChangeListManager">
   <component name="ChangeListManager">
-    <list default="true" id="f832eaab-acfa-4d84-99b0-aa8cb529c6e4" name="Default" comment="" />
+    <list default="true" id="f832eaab-acfa-4d84-99b0-aa8cb529c6e4" name="Default" comment="">
+      <change afterPath="$PROJECT_DIR$/Object/TokenObject1.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Ansjer/config.py" beforeDir="false" afterPath="$PROJECT_DIR$/Ansjer/config.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Ansjer/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/Ansjer/settings.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Ansjer/test/util/encryDownLoad.py" beforeDir="false" afterPath="$PROJECT_DIR$/Ansjer/test/util/encryDownLoad.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Ansjer/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/Ansjer/urls.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/AccessLog.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/AccessLog.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/AdminManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/AdminManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/AppInfo.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/AppInfo.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/CheckUserData.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/CheckUserData.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/DeviceLog.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/DeviceLog.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/DeviceManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/DeviceManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/DeviceMeal.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/DeviceMeal.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/EquipmentInfo.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/EquipmentInfo.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/EquipmentManager.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/EquipmentManager.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/EquipmentOTA.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/EquipmentOTA.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/EquipmentSensor.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/EquipmentSensor.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/EquipmentStatus.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/EquipmentStatus.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/FeedBackInfo.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/FeedBackInfo.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/HlsManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/HlsManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/LogAccess.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/LogAccess.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/LogManager.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/LogManager.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/MealManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/MealManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/OTAEquipment.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/OTAEquipment.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/OauthManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/OauthManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/PermissionManager.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/PermissionManager.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/StreamMedia.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/StreamMedia.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/SysManage.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/SysManage.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/Test.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/Test.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/UserManger.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/UserManger.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Controller/shareUserPermission.py" beforeDir="false" afterPath="$PROJECT_DIR$/Controller/shareUserPermission.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/DB/data.json" beforeDir="false" afterPath="$PROJECT_DIR$/DB/data.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Model/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/Model/models.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Object/AWS/SesClassObject.py" beforeDir="false" afterPath="$PROJECT_DIR$/Object/AWS/SesClassObject.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Service/CommonService.py" beforeDir="false" afterPath="$PROJECT_DIR$/Service/CommonService.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Service/MiscellService.py" beforeDir="false" afterPath="$PROJECT_DIR$/Service/MiscellService.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Service/ModelService.py" beforeDir="false" afterPath="$PROJECT_DIR$/Service/ModelService.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Service/TemplateService.py" beforeDir="false" afterPath="$PROJECT_DIR$/Service/TemplateService.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Service/middleware.py" beforeDir="false" afterPath="$PROJECT_DIR$/Service/middleware.py" afterDir="false" />
+    </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="SHOW_DIALOG" value="false" />
@@ -14,11 +53,11 @@
   </component>
   </component>
   <component name="FileEditorManager">
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="UserController.py" pinned="false" current-in-tab="true">
+      <file leaf-file-name="UserController.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Controller/UserController.py">
         <entry file="file://$PROJECT_DIR$/Controller/UserController.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="320">
-              <caret line="553" column="28" selection-start-line="553" selection-start-column="28" selection-end-line="553" selection-end-column="28" />
+            <state relative-caret-position="232">
+              <caret line="546" column="30" selection-start-line="546" selection-start-column="30" selection-end-line="546" selection-end-column="30" />
               <folding>
               <folding>
                 <element signature="e#311#342#0" expanded="true" />
                 <element signature="e#311#342#0" expanded="true" />
                 <element signature="e#3045#3912#0" />
                 <element signature="e#3045#3912#0" />
@@ -29,41 +68,51 @@
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="CommonService.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Service/CommonService.py">
+      <file leaf-file-name="AccessLog.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Controller/AccessLog.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="198">
-              <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
-              <folding>
-                <element signature="e#24#49#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="-282">
+              <caret line="136" selection-start-line="136" selection-end-line="136" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="config.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Ansjer/config.py">
+      <file leaf-file-name="SyncdbTools.sh" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Ansjer/test/SyncdbTools.sh">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="169">
-              <caret line="32" column="52" lean-forward="true" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" />
+            <state relative-caret-position="108">
+              <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="settings.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Ansjer/settings.py">
+      <file leaf-file-name="CloudfrontSignCookie.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Object/AWS/CloudfrontSignCookie.py">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file leaf-file-name="CloudfrontSignUrl.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Object/AWS/CloudfrontSignUrl.py">
+          <provider selected="true" editor-type-id="text-editor" />
+        </entry>
+      </file>
+      <file leaf-file-name="CommonService.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Service/CommonService.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="72">
-              <caret line="4" column="20" lean-forward="true" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
+            <state relative-caret-position="216">
+              <caret line="12" selection-start-line="12" selection-end-line="12" />
+              <folding>
+                <element signature="e#24#49#0" expanded="true" />
+              </folding>
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="TokenObject.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Object/TokenObject.py">
+      <file leaf-file-name="settings.py" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/Ansjer/settings.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="186">
-              <caret line="44" column="8" selection-start-line="44" selection-start-column="8" selection-end-line="44" selection-end-column="8" />
+            <state relative-caret-position="72">
+              <caret line="4" column="20" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
@@ -71,8 +120,8 @@
       <file leaf-file-name="urls.py" pinned="false" current-in-tab="false">
       <file leaf-file-name="urls.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Ansjer/urls.py">
         <entry file="file://$PROJECT_DIR$/Ansjer/urls.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="252">
-              <caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
+            <state relative-caret-position="270">
+              <caret line="15" column="7" lean-forward="true" selection-start-line="15" selection-start-column="7" selection-end-line="15" selection-end-column="7" />
               <folding>
               <folding>
                 <element signature="e#0#32#0" expanded="true" />
                 <element signature="e#0#32#0" expanded="true" />
               </folding>
               </folding>
@@ -92,24 +141,6 @@
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file leaf-file-name="SesClassObject.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Object/AWS/SesClassObject.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state>
-              <caret column="89" selection-start-column="89" selection-end-column="89" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="models.py" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Model/models.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="440">
-              <caret line="161" column="13" selection-start-line="161" selection-start-column="4" selection-end-line="161" selection-end-column="13" />
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file leaf-file-name="RedisObject.py" pinned="false" current-in-tab="false">
       <file leaf-file-name="RedisObject.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Object/RedisObject.py">
         <entry file="file://$PROJECT_DIR$/Object/RedisObject.py">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
@@ -144,6 +175,9 @@
       <replace>request_dict</replace>
       <replace>request_dict</replace>
     </replaceStrings>
     </replaceStrings>
   </component>
   </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
   <component name="IdeDocumentHistory">
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
     <option name="CHANGED_PATHS">
       <list>
       <list>
@@ -158,8 +192,8 @@
         <option value="$PROJECT_DIR$/Ansjer/urls.py" />
         <option value="$PROJECT_DIR$/Ansjer/urls.py" />
         <option value="$PROJECT_DIR$/Object/RedisObject.py" />
         <option value="$PROJECT_DIR$/Object/RedisObject.py" />
         <option value="$PROJECT_DIR$/Service/CommonService.py" />
         <option value="$PROJECT_DIR$/Service/CommonService.py" />
-        <option value="$PROJECT_DIR$/Ansjer/settings.py" />
         <option value="$PROJECT_DIR$/Controller/UserController.py" />
         <option value="$PROJECT_DIR$/Controller/UserController.py" />
+        <option value="$PROJECT_DIR$/Ansjer/settings.py" />
       </list>
       </list>
     </option>
     </option>
   </component>
   </component>
@@ -177,6 +211,7 @@
     <option name="width" value="814" />
     <option name="width" value="814" />
     <option name="height" value="877" />
     <option name="height" value="877" />
   </component>
   </component>
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
   <component name="ProjectView">
     <navigator proportions="" version="1">
     <navigator proportions="" version="1">
       <foldersAlwaysOnTop value="true" />
       <foldersAlwaysOnTop value="true" />
@@ -199,14 +234,13 @@
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
               <item name="AnsjerFormal" type="462c0819:PsiDirectoryNode" />
               <item name="AnsjerFormal" type="462c0819:PsiDirectoryNode" />
               <item name="Ansjer" type="462c0819:PsiDirectoryNode" />
               <item name="Ansjer" type="462c0819:PsiDirectoryNode" />
-              <item name="test" type="462c0819:PsiDirectoryNode" />
+              <item name="file" type="462c0819:PsiDirectoryNode" />
             </path>
             </path>
             <path>
             <path>
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
               <item name="AnsjerFormal" type="462c0819:PsiDirectoryNode" />
               <item name="AnsjerFormal" type="462c0819:PsiDirectoryNode" />
               <item name="Ansjer" type="462c0819:PsiDirectoryNode" />
               <item name="Ansjer" type="462c0819:PsiDirectoryNode" />
               <item name="test" type="462c0819:PsiDirectoryNode" />
               <item name="test" type="462c0819:PsiDirectoryNode" />
-              <item name="util" type="462c0819:PsiDirectoryNode" />
             </path>
             </path>
             <path>
             <path>
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
               <item name="AnsjerFormal" type="b2602c69:ProjectViewProjectNode" />
@@ -342,14 +376,15 @@
       <window_info anchor="bottom" id="TODO" order="7" sideWeight="0.49485862" weight="0.32440946" />
       <window_info anchor="bottom" id="TODO" order="7" sideWeight="0.49485862" weight="0.32440946" />
       <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.4730077" side_tool="true" weight="0.1849315" />
       <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.4730077" side_tool="true" weight="0.1849315" />
       <window_info anchor="bottom" id="Database Changes" order="16" show_stripe_button="false" />
       <window_info anchor="bottom" id="Database Changes" order="16" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" order="13" show_stripe_button="false" sideWeight="0.49485862" weight="0.2109589" />
+      <window_info anchor="bottom" id="Version Control" order="13" sideWeight="0.49485862" weight="0.2109589" />
       <window_info anchor="bottom" id="Python Console" order="12" sideWeight="0.49485862" weight="0.16692914" />
       <window_info anchor="bottom" id="Python Console" order="12" sideWeight="0.49485862" weight="0.16692914" />
-      <window_info anchor="bottom" id="Run" order="3" sideWeight="0.52699226" visible="true" weight="0.1630137" />
+      <window_info anchor="bottom" id="Run" order="3" sideWeight="0.52699226" visible="true" weight="0.16186556" />
       <window_info anchor="right" id="Mongo Explorer" order="8" />
       <window_info anchor="right" id="Mongo Explorer" order="8" />
       <window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.55205655" weight="0.5284327" />
       <window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.55205655" weight="0.5284327" />
       <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.493007" visible="true" weight="0.20951156" />
       <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.493007" visible="true" weight="0.20951156" />
       <window_info anchor="bottom" id="Docker" order="14" show_stripe_button="false" />
       <window_info anchor="bottom" id="Docker" order="14" show_stripe_button="false" />
       <window_info anchor="right" id="Database" order="7" weight="0.2689243" />
       <window_info anchor="right" id="Database" order="7" weight="0.2689243" />
+      <window_info anchor="bottom" id="Find" order="2" weight="0.32784638" />
       <window_info anchor="right" id="SciView" order="6" weight="0.32969153" />
       <window_info anchor="right" id="SciView" order="6" weight="0.32969153" />
       <window_info anchor="bottom" id="Structure" order="8" sideWeight="0.39138818" side_tool="true" weight="0.2" />
       <window_info anchor="bottom" id="Structure" order="8" sideWeight="0.39138818" side_tool="true" weight="0.2" />
       <window_info id="Favorites" order="1" sideWeight="0.506993" side_tool="true" weight="0.17771883" />
       <window_info id="Favorites" order="1" sideWeight="0.506993" side_tool="true" weight="0.17771883" />
@@ -360,7 +395,6 @@
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" id="R Graphics" order="4" />
       <window_info anchor="right" id="R Graphics" order="4" />
       <window_info anchor="right" id="R Packages" order="3" />
       <window_info anchor="right" id="R Packages" order="3" />
-      <window_info anchor="bottom" id="Find" order="2" weight="0.32891247" />
       <window_info anchor="bottom" id="TeamCity" order="10" sideWeight="0.4969088" weight="0.32911393" />
       <window_info anchor="bottom" id="TeamCity" order="10" sideWeight="0.4969088" weight="0.32911393" />
       <window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
       <window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
       <window_info anchor="bottom" id="Cvs" order="5" weight="0.25" />
       <window_info anchor="bottom" id="Cvs" order="5" weight="0.25" />
@@ -411,23 +445,6 @@
     </breakpoint-manager>
     </breakpoint-manager>
   </component>
   </component>
   <component name="editorHistoryManager">
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/Controller/OTAEquipment.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1494">
-          <caret line="83" column="31" selection-start-line="83" selection-start-column="31" selection-end-line="83" selection-end-column="31" />
-          <folding>
-            <element signature="e#0#22#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Object/TokenObject.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="396">
-          <caret line="24" column="22" selection-start-line="24" selection-start-column="22" selection-end-line="24" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Controller/PermissionManager.py">
     <entry file="file://$PROJECT_DIR$/Controller/PermissionManager.py">
       <provider selected="true" editor-type-id="text-editor" />
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
     </entry>
@@ -650,9 +667,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Controller/AccessLog.py">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
     <entry file="file://$PROJECT_DIR$/Controller/DeviceManage.py">
     <entry file="file://$PROJECT_DIR$/Controller/DeviceManage.py">
       <provider selected="true" editor-type-id="text-editor" />
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
     </entry>
@@ -736,32 +750,22 @@
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/Ansjer/config.py">
     <entry file="file://$PROJECT_DIR$/Ansjer/config.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="169">
-          <caret line="32" column="52" lean-forward="true" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Ansjer/urls.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="252">
-          <caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
-          <folding>
-            <element signature="e#0#32#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="259">
+          <caret line="36" column="23" selection-start-line="36" selection-start-column="23" selection-end-line="36" selection-end-column="23" />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/Object/AWS/SesClassObject.py">
     <entry file="file://$PROJECT_DIR$/Object/AWS/SesClassObject.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state>
         <state>
-          <caret column="89" selection-start-column="89" selection-end-column="89" />
+          <caret column="27" selection-start-column="27" selection-end-column="27" />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/Model/models.py">
     <entry file="file://$PROJECT_DIR$/Model/models.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="440">
-          <caret line="161" column="13" selection-start-line="161" selection-start-column="4" selection-end-line="161" selection-end-column="13" />
+        <state relative-caret-position="566">
+          <caret line="158" column="13" selection-start-line="158" selection-start-column="13" selection-end-line="158" selection-end-column="13" />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
@@ -784,25 +788,31 @@
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/Service/CommonService.py">
     <entry file="file://$PROJECT_DIR$/Service/CommonService.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="198">
-          <caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
+        <state relative-caret-position="216">
+          <caret line="12" selection-start-line="12" selection-end-line="12" />
           <folding>
           <folding>
             <element signature="e#24#49#0" expanded="true" />
             <element signature="e#24#49#0" expanded="true" />
           </folding>
           </folding>
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Ansjer/settings.py">
+    <entry file="file://$PROJECT_DIR$/Ansjer/test/cloudfront_sign_url.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="72">
-          <caret line="4" column="20" lean-forward="true" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
+        <state relative-caret-position="396">
+          <caret line="22" column="69" lean-forward="true" selection-start-line="22" selection-start-column="69" selection-end-line="22" selection-end-column="69" />
+          <folding>
+            <element signature="e#0#15#0" expanded="true" />
+          </folding>
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <entry file="file://$PROJECT_DIR$/Object/AWS/CloudfrontSignUrl.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
     <entry file="file://$PROJECT_DIR$/Controller/UserController.py">
     <entry file="file://$PROJECT_DIR$/Controller/UserController.py">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="320">
-          <caret line="553" column="28" selection-start-line="553" selection-start-column="28" selection-end-line="553" selection-end-column="28" />
+        <state relative-caret-position="232">
+          <caret line="546" column="30" selection-start-line="546" selection-start-column="30" selection-end-line="546" selection-end-column="30" />
           <folding>
           <folding>
             <element signature="e#311#342#0" expanded="true" />
             <element signature="e#311#342#0" expanded="true" />
             <element signature="e#3045#3912#0" />
             <element signature="e#3045#3912#0" />
@@ -812,5 +822,39 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <entry file="file://$PROJECT_DIR$/Controller/AccessLog.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-282">
+          <caret line="136" selection-start-line="136" selection-end-line="136" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Ansjer/test/SyncdbTools.sh">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="108">
+          <caret line="6" column="26" selection-start-line="6" selection-start-column="26" selection-end-line="6" selection-end-column="26" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Object/AWS/CloudfrontSignCookie.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Ansjer/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="270">
+          <caret line="15" column="7" lean-forward="true" selection-start-line="15" selection-start-column="7" selection-end-line="15" selection-end-column="7" />
+          <folding>
+            <element signature="e#0#32#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Ansjer/settings.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="72">
+          <caret line="4" column="20" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
   </component>
   </component>
 </project>
 </project>

BIN
Ansjer/__pycache__/config.cpython-36.pyc


BIN
Ansjer/__pycache__/settings.cpython-36.pyc


BIN
Ansjer/__pycache__/urls.cpython-36.pyc


+ 43 - 14
Ansjer/config.py

@@ -12,26 +12,55 @@
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
 #主要静态变量配置文件
 #主要静态变量配置文件
-import os
 import datetime
 import datetime
-from var_dump import var_dump
+from Ansjer.settings import SERVER_TYPE
+
 
 
-# 根目录
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 # 发送邮件邮箱
 # 发送邮件邮箱
 COMPANY_EMAIL = 'user_server@nsst.com'
 COMPANY_EMAIL = 'user_server@nsst.com'
-# token加密令牌,过期时间,刷新过期时间
-SECRET_KEY = 'c7ki2_gkg4#sjfm-u1%$s#&n#szf01f*v69rwv2qsf#-zmm@tl'
-EXPIRATION_DELTA = datetime.timedelta(days=7)
-REFRESH_EXPIRATION_DELTA = datetime.timedelta(days=7)
-STATIC_URL = '/static/'
-
-
-
-
 AWS_ACCESS_ID = 'AKIAJKPU23EU5QWHFPKQ'
 AWS_ACCESS_ID = 'AKIAJKPU23EU5QWHFPKQ'
 AWS_ACCESS_SECRET = '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'
 AWS_ACCESS_SECRET = 'oYJsF4h95ITWf3bxpPf5uUTvULPrq8DhRaQQzTjf'
 AWS_ACCESS_REGION = 'us-east-1'
 AWS_ACCESS_REGION = 'us-east-1'
 AWS_BUCKET = 'ansjertest'
 AWS_BUCKET = 'ansjertest'
 # 设定离线时间为5分钟
 # 设定离线时间为5分钟
-OFF_LINE_TIME_DELTA = 5
+OFF_LINE_TIME_DELTA = 5
+
+# token的secret
+OAUTH_ACCESS_TOKEN_SECRET = 'a+jbgnw%@1%zy^=@dn62%'
+OAUTH_REFRESH_TOKEN_SECRET = 'r+jbgnw%@1%zy^=@dn62%'
+# access_token超时
+# OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(hours=1)
+OAUTH_ACCESS_TOKEN_TIME = datetime.timedelta(days=3)
+# refresh_token超时
+OAUTH_REFRESH_TOKEN_TIME = datetime.timedelta(days=3)
+# 腾讯验证,短信发送
+TX_PHONE_APP_ID = '1400052907'
+TX_PHONE_APP_KEY= '7705976ca6e85fe7b86d6bc2d11f7783'
+
+#验证码超时时间
+AuthCode_Expire = 600
+
+if SERVER_TYPE == 'local':
+    NGINX_RTMP_STAT = 'http://192.168.136.45:8077/stat'
+    SERVER_DOMAIN = 'http://192.168.136.45:8077'
+    DATABASE_DATA = 'Ansjer'
+    SERVER_HOST = '192.168.136.45'
+    RTMP_PUSH_URL = 'rtmp://192.168.136.45:1935/hls'
+    DOMAIN_OAUTH_URI = 'http://192.168.136.45:7088/'
+    DOMAIN_RESOURCE_URI = 'http://192.168.136.45:8077/'
+elif SERVER_TYPE == 'test':
+    NGINX_RTMP_STAT = 'http://13.56.215.252:82/stat'
+    SERVER_DOMAIN = 'https://www.dvema.com:8222'
+    DATABASE_DATA = 'AnsjerTest'
+    SERVER_HOST = 'localhost'
+    RTMP_PUSH_URL = 'http://13.56.215.252:8091/hls'
+    DOMAIN_OAUTH_URI = 'https://www.dvema.com:8022/'
+    DOMAIN_RESOURCE_URI = 'https://www.dvema.com:8222/'
+elif SERVER_TYPE == 'formal':
+    NGINX_RTMP_STAT = 'http://13.56.215.252:81/stat'
+    SERVER_DOMAIN = 'https://www.dvema.com:8111'
+    DATABASE_DATA = 'Ansjer81'
+    SERVER_HOST = 'localhost'
+    RTMP_PUSH_URL = 'http://13.56.215.252:8091/hls'
+    DOMAIN_OAUTH_URI = 'https://www.dvema.com:8011/'
+    DOMAIN_RESOURCE_URI = 'https://www.dvema.com:8111/'

+ 11 - 17
Ansjer/settings.py

@@ -1,9 +1,12 @@
-from Ansjer.config import *
+import os
 
 
 SERVER_TYPE = 'local'
 SERVER_TYPE = 'local'
-#SERVER_TYPE = 'test'
+# SERVER_TYPE = 'test'
 # SERVER_TYPE = 'formal'
 # SERVER_TYPE = 'formal'
+# 根目录
 
 
+SECRET_KEY = 'c7ki2_gkg4#sjfm-u1%$s#&n#szf01f*v69rwv2qsf#-zmm@tl'
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 DEBUG = True
 DEBUG = True
 # DEBUG = False
 # DEBUG = False
 ALLOWED_HOSTS = ['*']
 ALLOWED_HOSTS = ['*']
@@ -17,8 +20,6 @@ INSTALLED_APPS = [
     'django.contrib.staticfiles',
     'django.contrib.staticfiles',
     'corsheaders',
     'corsheaders',
     'imagekit',
     'imagekit',
-    # 'guardian',
-    'django_global_request',
     'Model',
     'Model',
 ]
 ]
 
 
@@ -28,7 +29,7 @@ MIDDLEWARE = [
     'django.middleware.security.SecurityMiddleware',
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.common.CommonMiddleware',
-    'django.middleware.csrf.CsrfViewMiddleware',
+    # 'django.middleware.csrf.CsrfViewMiddleware',
     'corsheaders.middleware.CorsPostCsrfMiddleware',
     'corsheaders.middleware.CorsPostCsrfMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
@@ -44,6 +45,9 @@ AUTHENTICATION_BACKENDS = (
 
 
 ADDR_URL = []
 ADDR_URL = []
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
+
+STATIC_URL = '/static/'
+
 # 上传路径根目录
 # 上传路径根目录
 MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')
 MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')
 # 在浏览器上访问该上传文件的url的前缀
 # 在浏览器上访问该上传文件的url的前缀
@@ -52,9 +56,7 @@ ROOT_URLCONF = 'Ansjer.urls'
 LOGIN_URL = '/account/login'
 LOGIN_URL = '/account/login'
 AUTH_USER_MODEL = 'Model.Device_User'  # 自定义Model
 AUTH_USER_MODEL = 'Model.Device_User'  # 自定义Model
 APPEND_SLASH = False
 APPEND_SLASH = False
-# 腾讯验证
-SDK_AppID = '1400052907'
-App_Key = '7705976ca6e85fe7b86d6bc2d11f7783'
+
 TEMPLATES = [
 TEMPLATES = [
     {
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
@@ -73,25 +75,17 @@ TEMPLATES = [
 
 
 WSGI_APPLICATION = 'Ansjer.wsgi.application'
 WSGI_APPLICATION = 'Ansjer.wsgi.application'
 
 
+# 服务器类型
 if SERVER_TYPE == 'local':
 if SERVER_TYPE == 'local':
-    NGINX_RTMP_STAT = 'http://192.168.136.45:8077/stat'
-    SERVER_DOMAIN = 'http://192.168.136.45:8077'
     DATABASE_DATA = 'Ansjer'
     DATABASE_DATA = 'Ansjer'
     SERVER_HOST = '192.168.136.45'
     SERVER_HOST = '192.168.136.45'
-    RTMP_PUSH_URL = 'rtmp://192.168.136.45:1935/hls'
-
 elif SERVER_TYPE == 'test':
 elif SERVER_TYPE == 'test':
     NGINX_RTMP_STAT = 'http://13.56.215.252:82/stat'
     NGINX_RTMP_STAT = 'http://13.56.215.252:82/stat'
-    SERVER_DOMAIN = 'http://13.56.215.252:82'
     DATABASE_DATA = 'AnsjerTest'
     DATABASE_DATA = 'AnsjerTest'
     SERVER_HOST = 'localhost'
     SERVER_HOST = 'localhost'
-    RTMP_PUSH_URL = 'http://13.56.215.252:8091/hls'
 elif SERVER_TYPE == 'formal':
 elif SERVER_TYPE == 'formal':
-    NGINX_RTMP_STAT = 'http://13.56.215.252:81/stat'
-    SERVER_DOMAIN = 'http://13.56.215.252:81'
     DATABASE_DATA = 'Ansjer81'
     DATABASE_DATA = 'Ansjer81'
     SERVER_HOST = 'localhost'
     SERVER_HOST = 'localhost'
-    RTMP_PUSH_URL = 'http://13.56.215.252:8091/hls'
 
 
 DATABASES = {'default': {
 DATABASES = {'default': {
     'ENGINE': 'django.db.backends.mysql',
     'ENGINE': 'django.db.backends.mysql',

+ 9 - 4
Ansjer/test/util/encryDownLoad.py

@@ -55,12 +55,17 @@ def get_timestamp10():
     """获取当前时间长度为10位长度的时间戳"""
     """获取当前时间长度为10位长度的时间戳"""
     return int(time.time())
     return int(time.time())
 
 
-url = 'http://192.168.136.45:8077'
-secret = 'ansjer';  # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s,url为请求地址
-path = '/OTA/downloads/IPC/18E2012008A/4.1.5/V4.1.5.18E2012008A.img'  # 下载文件
+
+secret = 'ansjer';  # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s,url为请求地址  secure_link_md5 xiaozhong.com$uri$arg_e;
+# path = '/hls/5553.mp4/index.m3u8'  # 下载文件
+# path = '/L59KVYDAEPHR1T6M111A_0/555666.mp4'  # 下载文件
+path = '/5553.mp4'  # 下载文件
+# path = '/444.mp4'  # 下载文件
 # 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
 # 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期
 expire = get_timestamp10() + 3600;
 expire = get_timestamp10() + 3600;
 res = md5(str(secret) + str(path) + str(expire), True)
 res = md5(str(secret) + str(path) + str(expire), True)
 md5 = str(base64_encode(res, True))
 md5 = str(base64_encode(res, True))
 md5 = md5.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '')
 md5 = md5.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '')
-print(url+path+'?' + 'st=' + str(md5) + '&e=' + str(expire))
+
+# print('生成代相关认证签名的地址:','http://52.8.197.107/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))
+print('io:','http://52.8.197.107/5553.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))

+ 78 - 94
Ansjer/urls.py

@@ -1,140 +1,124 @@
 from django.contrib import admin
 from django.contrib import admin
 from django.conf.urls import url
 from django.conf.urls import url
-from django.urls import path
-# from django.views.generic.base import RedirectView
+from django.urls import path,re_path
 from Controller import FeedBackInfo, EquipmentOTA, EquipmentInfo, EquipmentSensor, StreamMedia, AdminManage, AppInfo, \
 from Controller import FeedBackInfo, EquipmentOTA, EquipmentInfo, EquipmentSensor, StreamMedia, AdminManage, AppInfo, \
-    AccessLog, Test, MealManage, DeviceMeal, HlsManage, DeviceManage, EquipmentStatus, SysManage,DeviceLog,LogAccess,EquipmentManager,LogManager,PermissionManager,OTAEquipment,BatchProcessingDatabase,shareUserPermission,UserManger, CheckUserData
+    AccessLog, Test, MealManage, DeviceMeal, HlsManage, DeviceManage, EquipmentStatus, SysManage,DeviceLog,LogAccess,EquipmentManager,LogManager,PermissionManager,OTAEquipment,shareUserPermission,UserManger, CheckUserData, OauthManage,UserController
 
 
 urlpatterns = [
 urlpatterns = [
+    url(r'^account/authcode$', UserController.authCodeView.as_view()),
+    url(r'^account/register$', UserController.registerView.as_view()),
+    url(r'^account/login$', UserController.LoginView.as_view()),
+    url(r'^account/logout$', UserController.LogoutView.as_view(), name='logout_user'),
+    url(r'^account/changePwd$', UserController.ChangePwdView.as_view(), name='change_password'),
+    url(r'^account/forget$', UserController.ForgetPwdView.as_view(), name='forget_password'),
+    url(r'^accounts/email-re-pwd/$', UserController.EmailResetPwdView.as_view()),
+
+    ###
     url(r'^admin/', admin.site.urls),
     url(r'^admin/', admin.site.urls),
-    # url(r'^favicon.ico$', RedirectView.as_view(url=r'favicon.ico', permanent=True)),
     url(r'^favicon.ico$', UserManger.success, name=u'favicon.ico'),
     url(r'^favicon.ico$', UserManger.success, name=u'favicon.ico'),
-    url(r'^$', UserManger.LoginView.as_view(), name='login'),
-    url(r'^account/login$', UserManger.LoginView.as_view(), name='login_user'),
-    url(r'^account/logout$', UserManger.LogoutView.as_view(), name='logout_user'),
-    url(r'^account/authcode$', UserManger.getAuthCodeView.as_view(), name='auth_code'),
-    url(r'^account/register$', UserManger.registerView.as_view(), name='register_user'),
-    url(r'^account/changePwd$', UserManger.ChangePwdView.as_view(), name='change_password'),
-    url(r'^account/active/(?P<active_code>.*)$', CheckUserData.ActiveUserView.as_view(), name='user_active'),
-    # 配置激活账户链接
-    url(r'^account/forget$', UserManger.ForgetPwdView.as_view(), name='forget_password'),
-    url(r'^account/activate/(?P<token>\w+.[-_\w]*\w+.[-_\w]*\w+)$', CheckUserData.Active_User, name='active_user'),
-    url(r'^account/password/edit$', UserManger.ResetPwdView.as_view(), name='reset_password'),
-    url(r'^account/password/mobiletoResetPwd$', CheckUserData.MobiletoResetPwdView.as_view(),
-        name='Mobile_Reset_Password'),
-    url(r'^account/modifyPwd$', CheckUserData.ModifyPwdView.as_view(), name="modify_password"),
-    url(r'^account/showUserMore$', UserManger.showUserMoreView.as_view(), name='show_User_More'),
-    url(r'^account/perfectUserInfo$', UserManger.perfectUserInfoView.as_view(), name=u'Perfect_User_Info'),
-    url(r'^account/getAvatar/(?P<filePath>.*)$', UserManger.getAvatarView.as_view(), name=u'get_Avatar'),
-    url(r'^account/delUser$', UserManger.delUserInterface, name=u'del_User'),
-    url(r'^account/setUserValid$', UserManger.setUserValidView.as_view(), name=u'set_User_Valid'),
-    url(r'^account/showAllUser$', UserManger.showAllUserInterface, name=u'show_All_User'),
-    url(r'^account/help$', LogManager.HelpView.as_view(), name=u'help_info'),
-    url(r'^account/searchUser$', shareUserPermission.searchUserView.as_view(), name=u'search_User'),
-    url(r'^account/shareUserEquipment$', shareUserPermission.shareUserEquipmentView.as_view(),
-        name=u'share_User_Equipment'),
-    url(r'^account/unsharedUserEquipment$', shareUserPermission.unsharedUserEquipmentView.as_view(),
-        name=u'unshared_User_Equipment'),
+    url(r'^account/showUserMore$', UserManger.showUserMoreView.as_view()),
+    url(r'^account/perfectUserInfo$', UserManger.perfectUserInfoView.as_view()),
+    url(r'^account/getAvatar/(?P<filePath>.*)$', UserManger.getAvatarView.as_view()),
+    url(r'^account/delUser$', UserManger.delUserInterface),
+    url(r'^account/setUserValid$', UserManger.setUserValidView.as_view()),
+    url(r'^account/showAllUser$', UserManger.showAllUserInterface),
+    url(r'^account/help$', LogManager.HelpView.as_view()),
+    url(r'^account/searchUser$', shareUserPermission.searchUserView.as_view()),
+    url(r'^account/shareUserEquipment$', shareUserPermission.shareUserEquipmentView.as_view()),
+    url(r'^account/unsharedUserEquipment$', shareUserPermission.unsharedUserEquipmentView.as_view()),
 
 
-    url(r'^response/success$', UserManger.success, name=u'success_info'),
+    url(r'^response/success$', UserManger.success),
     # http://13.56.215.252:82/equipment/queryUserEquipment?token=test
     # http://13.56.215.252:82/equipment/queryUserEquipment?token=test
-    url(r'^equipment/queryUserEquipment$', EquipmentManager.queryUserEquipmentInterface, name='query_User_Equipment'),
+    url(r'^equipment/queryUserEquipment$', EquipmentManager.queryUserEquipmentInterface),
     url(r'^equipment/addNewUserEquipment$', EquipmentManager.addNewUserEquipmentInterface,
     url(r'^equipment/addNewUserEquipment$', EquipmentManager.addNewUserEquipmentInterface,
         name='add_New_User_Equipment'),
         name='add_New_User_Equipment'),
-    url(r'^equipment/delUserEquipment$', EquipmentManager.delUserEquipmentInterface, name='del_User_Equipment'),
+    url(r'^equipment/delUserEquipment$', EquipmentManager.delUserEquipmentInterface),
     url(r'^equipment/modifyUserEquipment$', EquipmentManager.modifyUserEquipmentInterface,
     url(r'^equipment/modifyUserEquipment$', EquipmentManager.modifyUserEquipmentInterface,
         name='modify_User_Equipment'),
         name='modify_User_Equipment'),
     url(r'^equipment/showAllUserEquipment$', EquipmentManager.showAllUserEquipmentInterface,
     url(r'^equipment/showAllUserEquipment$', EquipmentManager.showAllUserEquipmentInterface,
         name='show_All_User_Equipment'),
         name='show_All_User_Equipment'),
-    url(r'^equipment/findEquipmentInfo$', EquipmentManager.findEquipmentInfoInterface, name='find_User_Equipment'),
-
-    url(r'^OTA/uploads$', OTAEquipment.getUploadFiletoDirView.as_view(), name=u'uploads_updata_file'),
-    url(r'^OTA/download$', OTAEquipment.downloadUpdataFileUrl, name='downloads_updata_file_backup'),
-    url(r'^OTA/downloads/(\w+)/(\w+[\w+]*.+[^_w]*.\w+)$', OTAEquipment.downloadUpdataFileUrlInterface,
-        name='downloads_updata_file'),
-    url(r'^OTA/getEquipmentVersion$', OTAEquipment.getEquipmentVersionInterface, name=u'get_equipment_version$'),
-    url(r'^OTA/getUpdataFileUrl$', OTAEquipment.getUpdataFileUrlInterface, name=u'get_updata_file_Url'),
-    url(r'^OTA/addNewEquipmentVersion$', OTAEquipment.addNewEquipmentVersionInterface, name=u'add_New_EquipmentVersion'),
-    url(r'^OTA/showAllEquipmentVersion$', OTAEquipment.showAllEquipmentVersionInterface, name=u'show_All_Equipment_Version'),
+    url(r'^equipment/findEquipmentInfo$', EquipmentManager.findEquipmentInfoInterface),
 
 
-    url(r'^toekn/refreshToken$', UserManger.refreshTokenView.as_view(), name=u'refresh_token'),
+    url(r'^OTA/uploads$', OTAEquipment.getUploadFiletoDirView.as_view()),
+    url(r'^OTA/download$', OTAEquipment.downloadUpdataFileUrl),
+    url(r'^OTA/downloads/(\w+)/(\w+[\w+]*.+[^_w]*.\w+)$', OTAEquipment.downloadUpdataFileUrlInterface),
+    url(r'^OTA/getEquipmentVersion$', OTAEquipment.getEquipmentVersionInterface),
+    url(r'^OTA/getUpdataFileUrl$', OTAEquipment.getUpdataFileUrlInterface),
+    url(r'^OTA/addNewEquipmentVersion$', OTAEquipment.addNewEquipmentVersionInterface),
+    url(r'^OTA/showAllEquipmentVersion$', OTAEquipment.showAllEquipmentVersionInterface),
 
 
-    url(r'^import/batchAddEquipment$', BatchProcessingDatabase.batchAddEquipmentView.as_view(),
-        name=u'batch_Add_Equipment'),
+    url(r'^roles/addNewRole$', PermissionManager.addNewRoleView.as_view()),
+    url(r'^roles/queryRole$', PermissionManager.queryRoleView.as_view()),
+    url(r'^roles/delRole$', PermissionManager.delRoleView.as_view()),
+    url(r'^roles/modifyRole$', PermissionManager.modifyRoleView.as_view()),
+    url(r'^perms/addNewPerms$', PermissionManager.addNewPermsView.as_view()),
+    url(r'^perms/delPerms$', PermissionManager.delPermsView.as_view()),
+    url(r'^perms/queryPerms$', PermissionManager.queryPermsView.as_view()),
+    url(r'^perms/modifyPerms$', PermissionManager.modifyPermsView.as_view()),
+    url(r'^permsManager/queryRolePerms$', PermissionManager.queryRolePermsView.as_view()),
 
 
-    url(r'^roles/addNewRole$', PermissionManager.addNewRoleView.as_view(), name=u'Add_New_Role'),
-    url(r'^roles/queryRole$', PermissionManager.queryRoleView.as_view(), name=u'Query_Role'),
-    url(r'^roles/delRole$', PermissionManager.delRoleView.as_view(), name=u'del_Role'),
-    url(r'^roles/modifyRole$', PermissionManager.modifyRoleView.as_view(), name=u'modify_Role'),
-    url(r'^perms/addNewPerms$', PermissionManager.addNewPermsView.as_view(), name=u'add_New_Perms'),
-    url(r'^perms/delPerms$', PermissionManager.delPermsView.as_view(), name=u'del_Perms'),
-    url(r'^perms/queryPerms$', PermissionManager.queryPermsView.as_view(), name=u'query_Perms'),
-    url(r'^perms/modifyPerms$', PermissionManager.modifyPermsView.as_view(), name=u'modify_Perms'),
-    url(r'^permsManager/queryRolePerms$', PermissionManager.queryRolePermsView.as_view(), name=u'query_Role_Perms'),
-
-    url(r'^uploads/upgrade$', OTAEquipment.getUploadFiletoDirView.as_view(), name=u'upload_upgrade'),
-    url(r'^upgrade/download/(\w+.[^_w]*\w+.\w+)$', CheckUserData.download_file, name='download_upgrade'),
-    url(r'^downloads/upgrade/(\w+)/(\w+.[^_w]*\w+.\w+)$', OTAEquipment.downloadUpdataFileUrlInterface,
-        name='downloads_upgrade'),
-    url(r'^getOTAurl/getUpdataFileUrl$', OTAEquipment.getUpdataFileUrlInterface, name=u'get_updata_file_Url'),
+    url(r'^uploads/upgrade$', OTAEquipment.getUploadFiletoDirView.as_view()),
+    url(r'^upgrade/download/(\w+.[^_w]*\w+.\w+)$', CheckUserData.download_file),
+    url(r'^downloads/upgrade/(\w+)/(\w+.[^_w]*\w+.\w+)$', OTAEquipment.downloadUpdataFileUrlInterface),
+    url(r'^getOTAurl/getUpdataFileUrl$', OTAEquipment.getUpdataFileUrlInterface),
 
 
     #  流处理
     #  流处理
-    url(r'^media/stream', StreamMedia.StreamMedia.as_view(), name=u'media_stream'),
-    url(r'^media/auth_stream', StreamMedia.Auth_Stream, name=u'auth_stream'),
-    url(r'^media/send_video_s3', StreamMedia.send_video_s3, name=u'auth_stream'),
-    url(r'^media/auth_live', StreamMedia.Auth_Live, name=u'auth_live'),
-    # url(r'^media/push_flv_s3', StreamMedia.push_flv_s3, name=u'push_flv_s3'),
+    url(r'^media/stream', StreamMedia.StreamMedia.as_view()),
+    url(r'^media/auth_stream', StreamMedia.Auth_Stream),
+    url(r'^media/send_video_s3', StreamMedia.send_video_s3),
+    url(r'^media/auth_live', StreamMedia.Auth_Live),
     # 传感器
     # 传感器
-    url(r'^equipment/sensor', EquipmentSensor.EquipmentSensor.as_view(), name=u'equiment_sensor'),
+    url(r'^equipment/sensor', EquipmentSensor.EquipmentSensor.as_view()),
     # 设备推送信息
     # 设备推送信息
-    url(r'^equipment/info', EquipmentInfo.EquipmentInfo.as_view(), name=u'equiment_info'),
+    url(r'^equipment/info', EquipmentInfo.EquipmentInfo.as_view()),
     # 管理员专属view
     # 管理员专属view
-    url(r'^adminManage/manage', AdminManage.AdminManage.as_view(), name=u'adminManage'),
+    url(r'^adminManage/manage', AdminManage.AdminManage.as_view()),
     # OTA重构类
     # OTA重构类
-    url(r'^equipment/OTA', EquipmentOTA.EquipmentOTA.as_view(), name=u'equipmentOTA'),
+    url(r'^equipment/OTA', EquipmentOTA.EquipmentOTA.as_view()),
     # 用户反馈信息
     # 用户反馈信息
-    url(r'^feedbackInfo', FeedBackInfo.FeedBackInfo.as_view(), name=u'feedbackInfoView'),
+    url(r'^feedbackInfo', FeedBackInfo.FeedBackInfo.as_view()),
     # app版本信息
     # app版本信息
-    url(r'^appInfo', AppInfo.AppInfo.as_view(), name=u'AppInfo'),
+    url(r'^appInfo', AppInfo.AppInfo.as_view()),
     # 访问日志new
     # 访问日志new
-    url(r'^accesslog', AccessLog.AccessLog.as_view(), name=u'AccessLog'),
-
+    url(r'^accesslog', AccessLog.AccessLog.as_view()),
     # 套餐信息管理
     # 套餐信息管理
-    url(r'^meal/manage', MealManage.MealManage.as_view(), name=u'MealManage'),
+    url(r'^meal/manage', MealManage.MealManage.as_view()),
     # 设备套餐绑定
     # 设备套餐绑定
-    url(r'^device/meal$', DeviceMeal.DeviceMeal.as_view(), name=u'DeviceMeal'),
+    url(r'^device/meal$', DeviceMeal.DeviceMeal.as_view()),
     # hls put_object签名url
     # hls put_object签名url
-    url(r'^HlsManage$', HlsManage.HlsManage.as_view(), name=u'get_sign_put_object'),
+    url(r'^HlsManage$', HlsManage.HlsManage.as_view()),
     # 设备管理
     # 设备管理
-    url(r'^device/manage$', DeviceManage.DeviceManage.as_view(), name=u'device_manage'),
+    url(r'^device/manage$', DeviceManage.DeviceManage.as_view()),
     # 设备在线
     # 设备在线
-    url(r'^device/online$', EquipmentStatus.EquipmentOnline, name=u'device_online'),
+    url(r'^device/online$', EquipmentStatus.EquipmentOnline),
     # 设备离线
     # 设备离线
-    url(r'^device/offline$', EquipmentStatus.EquipmentOffline, name=u'device_offline'),
+    url(r'^device/offline$', EquipmentStatus.EquipmentOffline),
     # 设备离线
     # 设备离线
-    url(r'^device/updateIP$', EquipmentStatus.updateIP, name=u'device_updateIP'),
+    url(r'^device/updateIP$', EquipmentStatus.updateIP),
     # 系统ctr
     # 系统ctr
-    url(r'^sys/updateLog', SysManage.updateLog, name=u'sys_update_log'),
+    url(r'^sys/updateLog', SysManage.updateLog),
     # 设备日志
     # 设备日志
-    url(r'^devices/(\w+)/logs$', DeviceLog.DeviceLog, name=u'device_log'),
-    url(r'^devices/(\w+)$', DeviceManage.Devices, name=u'device_log'),
+    url(r'^devices/(\w+)/logs$', DeviceLog.DeviceLog),
+    url(r'^devices/(\w+)$', DeviceManage.Devices),
     # 访问日志 mongodb版
     # 访问日志 mongodb版
-    url(r'^LogAccess$', LogAccess.LogAccess, name=u'device_log'),
+    url(r'^LogAccess$', LogAccess.LogAccess),
     # 上传操作文档
     # 上传操作文档
-    url(r'^HelpCHM/upload$', LogManager.upload_help_chm, name=u'upload_help'),
-    url(r'^admin/userIDs$', AdminManage.getUserIds, name=u'getUserIds'),
-
-
-
-
+    url(r'^HelpCHM/upload$', LogManager.upload_help_chm),
+    url(r'^admin/userIDs$', AdminManage.getUserIds),
     # 统计访问日志路径
     # 统计访问日志路径
     path('access/staticPath/', AccessLog.statisticsPath),
     path('access/staticPath/', AccessLog.statisticsPath),
     # 多条件搜索用户信息admin
     # 多条件搜索用户信息admin
     path('accounts', AdminManage.search_user_by_content),
     path('accounts', AdminManage.search_user_by_content),
     # 测试专用api
     # 测试专用api
-    path('Test', Test.Test.as_view(), name=u'Test'),
+    path('Test', Test.Test.as_view()),
     # 路由加参数参考
     # 路由加参数参考
     # url(r'^(?P<path>.*)/(?P<UID>.*)/lls$', Test.Test.as_view(), name=u'gg'),
     # url(r'^(?P<path>.*)/(?P<UID>.*)/lls$', Test.Test.as_view(), name=u'gg'),
-    # path('oauth/login',OauthManage.OauthManage.as_view()),
-    url(r'^(?P<path>.*)', LogManager.errorPath, name=u'error_path'),
+    # 认证服务器登陆成功,访问一次关联,并获取用户信息
+    path('oauth/relate/',OauthManage.OauthRelateView.as_view()),
+    # 认证服务去
+    path('resource/auth/',OauthManage.OauthResUserView.as_view()),
+    path('resource/forgetauth/',OauthManage.OauthForgetView.as_view()),
+    # 认证服务修改密码关联旧数据
+    path('account/setPwd/', OauthManage.ModifyRSPwdView.as_view()),
+    re_path('(?P<path>.*)', LogManager.errorPath),
 ]
 ]

+ 72 - 111
Controller/AccessLog.py

@@ -1,23 +1,24 @@
-from django.views.generic.base import View
+import datetime
+import simplejson as json
+
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
+from django.views.generic.base import View
+from ratelimit.decorators import ratelimit
+
+from Model.models import Access_Log
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.TemplateService import TemplateService
 from Service.TemplateService import TemplateService
-from Model.models import Access_Log
-import datetime
-from Service.ResponseService import *
-from django.core import serializers
 
 
-import chardet
 '''
 '''
 http://192.168.136.40:8077/accesslog?operation=queryByAdmin&token=test&page=1&line=5&order=-id
 http://192.168.136.40:8077/accesslog?operation=queryByAdmin&token=test&page=1&line=5&order=-id
 http://192.168.136.40:8077/accesslog?operation=truncateByAdmin&token=test
 http://192.168.136.40:8077/accesslog?operation=truncateByAdmin&token=test
 http://192.168.136.40:8077/accesslog?operation=searchByAdmin&token=test&page=1&line=10&content={"status":20}&order=-id
 http://192.168.136.40:8077/accesslog?operation=searchByAdmin&token=test&page=1&line=10&content={"status":20}&order=-id
-http://127.0.0.1:8000/accesslog?operation=loginUserNum&token=stest
-http://127.0.0.1:8000/accesslog/loginUserNum?token=stest
-http://127.0.0.1:8000/accesslog?operation=AllLoginArea&token=stest
-http://192.168.136.40:8077/access/staticPath?token=stest
+
+http://192.168.136.40:8077/accesslog/staticPath/?token=stest
 '''
 '''
 
 
 
 
@@ -26,42 +27,39 @@ class AccessLog(View):
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
         return super(AccessLog, self).dispatch(*args, **kwargs)
         return super(AccessLog, self).dispatch(*args, **kwargs)
 
 
-    def get(self, request, *args, **kwargs):
+    def get(self, request):
+        response = ResponseObject()
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-        return self.validation(request_dict=request.GET)
+        return self.validation(request.GET, response)
 
 
-    def post(self, request, *args, **kwargs):
+    def post(self, request):
+        response = ResponseObject()
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-        return self.validation(request_dict=request.POST)
+        return self.validation(request.POST, response)
 
 
-    def validation(self, request_dict, *args, **kwargs):
+    def validation(self, request_dict, response):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 operation = request_dict.get('operation', None)
                 operation = request_dict.get('operation', None)
-                param_flag = CommonService.get_param_flag(data=[userID, operation])
-                if param_flag is True:
+                if userID is not None and operation is not None:
                     if operation == 'queryByAdmin':
                     if operation == 'queryByAdmin':
-                        return self.query_by_admin(request_dict=request_dict, userID=userID)
+                        return self.query_by_admin(request_dict, userID, response)
                     elif operation == 'searchByAdmin':
                     elif operation == 'searchByAdmin':
-                        return self.search_by_admin(request_dict=request_dict, userID=userID)
+                        return self.search_by_admin(request_dict, userID, response)
                     elif operation == 'truncateByAdmin':
                     elif operation == 'truncateByAdmin':
-                        return self.truncate_by_admin(userID=userID)
-                    elif operation == 'loginUserNum':
-                        return self.login_user_num(userID=userID)
-                    elif operation == 'AllLoginArea':
-                        return self.getAllLoginArea(userID=userID)
-
-                return ResponseJSON(444)
+                        return self.truncate_by_admin(userID, response)
+                return response.json(444, 'token,operation')
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def query_by_admin(self, request_dict, userID):
+    def query_by_admin(self, request_dict, userID, response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         order = request_dict.get('order', '-id')
         order = request_dict.get('order', '-id')
@@ -75,32 +73,33 @@ class AccessLog(View):
                 if access_log_queryset.exists():
                 if access_log_queryset.exists():
                     count = access_log_queryset.count()
                     count = access_log_queryset.count()
                     res = access_log_queryset[(page - 1) * line:page * line]
                     res = access_log_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0,send_json)
-                return ResponseJSON(0, {'datas': [], 'count': 0})
+                    return response.json(0, send_json)
+                return response.json(0, {'datas': [], 'count': 0})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def truncate_by_admin(self, userID):
+    # 清空日志表
+    def truncate_by_admin(self, userID, response, ):
         check_perm = ModelService.check_permission(userID=userID, permID=10)
         check_perm = ModelService.check_permission(userID=userID, permID=10)
         if check_perm is True:
         if check_perm is True:
             from django.db import connection
             from django.db import connection
             cursor = connection.cursor()
             cursor = connection.cursor()
             cursor.execute("TRUNCATE TABLE `access_log`")
             cursor.execute("TRUNCATE TABLE `access_log`")
-        return ResponseJSON(0)
+        return response.json(0)
 
 
-    def search_by_admin(self, request_dict, userID):
+    # 搜索日志(多条件)
+    def search_by_admin(self, request_dict, userID, response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         order = request_dict.get('order', '-id')
         order = request_dict.get('order', '-id')
         content = request_dict.get('content', None)
         content = request_dict.get('content', None)
         starttime = request_dict.get('starttime', None)
         starttime = request_dict.get('starttime', None)
         endtime = request_dict.get('endtime', None)
         endtime = request_dict.get('endtime', None)
-        param_flag = CommonService.get_param_flag(data=[page, line])
-        if param_flag is True:
+        if page is not None and line is not None:
             check_perm = ModelService.check_permission(userID=userID, permID=20)
             check_perm = ModelService.check_permission(userID=userID, permID=20)
             if check_perm is True:
             if check_perm is True:
                 try:
                 try:
@@ -108,13 +107,12 @@ class AccessLog(View):
                     search_kwargs = CommonService.get_kwargs(data=content)
                     search_kwargs = CommonService.get_kwargs(data=content)
                     queryset = Access_Log.objects.filter(**search_kwargs).order_by(order)
                     queryset = Access_Log.objects.filter(**search_kwargs).order_by(order)
                 except Exception as e:
                 except Exception as e:
-                    return ResponseJSON(444)
+                    return response.json(444)
                 if starttime is not None and starttime != '' and endtime is not None and endtime != '':
                 if starttime is not None and starttime != '' and endtime is not None and endtime != '':
                     startt = datetime.datetime.fromtimestamp(int(starttime))
                     startt = datetime.datetime.fromtimestamp(int(starttime))
                     starttime = startt.strftime("%Y-%m-%d %H:%M:%S.%f")
                     starttime = startt.strftime("%Y-%m-%d %H:%M:%S.%f")
                     endt = datetime.datetime.fromtimestamp(int(endtime))
                     endt = datetime.datetime.fromtimestamp(int(endtime))
                     endtime = endt.strftime("%Y-%m-%d %H:%M:%S.%f")
                     endtime = endt.strftime("%Y-%m-%d %H:%M:%S.%f")
-                    # var_dump(starttime,endtime)
                     queryset = queryset.filter(time__range=(starttime, endtime))
                     queryset = queryset.filter(time__range=(starttime, endtime))
                 elif starttime is not None and starttime != '':
                 elif starttime is not None and starttime != '':
                     startt = datetime.datetime.fromtimestamp(int(starttime))
                     startt = datetime.datetime.fromtimestamp(int(starttime))
@@ -127,62 +125,17 @@ class AccessLog(View):
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0,send_json)
-                return ResponseJSON(0,{'datas': [], 'count': 0})
+                    return response.json(0, send_json)
+                return response.json(0, {'datas': [], 'count': 0})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
-    # 获取登录用户的ip的登录情况的接口
-    def login_user_num(self,  userID):
-            check_perm = ModelService.check_permission(userID=userID, permID=20)
-            if check_perm is True:
-                user_list = Access_Log.objects.values("user","ip").distinct().filter(url__contains='account/login').order_by('time')
-                return ResponseJSON(10,list(user_list[0]))
-                # print("是否QuerySet")
-                # print(type(user_list).__name__=='QuerySet')
-                user_list= list(user_list)
-                newuser_list="["
-                count=0
-                for q in user_list:
-                    # print(type(q))
-                    # 获取ip地址中文名称
-                    ip_addrname=CommonService.getAddr(q['ip'])
-                    # print(ip_addrname)
-                    # 拼凑为字符串类型
-                    ip_addrname='{"ip_addrname":"'+ip_addrname+'"}'
-                    # 把字符串转为字典json
-                    ip_addrname=json.loads(ip_addrname)
-                    # 字典类型合并
-                    ip_addrnameall=dict(q, **ip_addrname)
-                    # print(ip_addrnameall)
-                    str_dict = json.dumps(ip_addrnameall)
-                    newuser_list=newuser_list+str_dict+","
-                    count+=1
-                newuser_list= newuser_list[:-1]+"]"
-                # 把字符串转为字典json
-                newuser_list = json.loads(newuser_list)
-                # print(newuser_list)
-                return ResponseJSON(0,{'datas':list(newuser_list), 'count': count})
-            else:
-                return ResponseJSON(404)
+            return response.json(444, 'page,line')
 
 
- # 获取所有用户登录的地区
-    def getAllLoginArea(self, userID):
-        own_permission = ModelService.check_permission(userID=userID, permID=30)
-        if own_permission is True:
-            users = Access_Log.objects.filter(operation='account/login').distinct().values_list('user', flat=True)
-            ip_dict = {}
-            for user in users:
-                qs = Access_Log.objects.values_list('ip', flat=True).filter(operation='account/login',user=user).order_by('time')
-                ip_dict[user] = qs[0]
-            return ResponseJSON(0,ip_dict)
-        else:
-            return ResponseJSON(404)
 
 
-@csrf_exempt
+@ratelimit(key='ip', rate='3/m')
 def statisticsPath(request):
 def statisticsPath(request):
     request.encoding = 'utf-8'
     request.encoding = 'utf-8'
     if request.method == 'GET':
     if request.method == 'GET':
@@ -190,20 +143,28 @@ def statisticsPath(request):
     if request.method == 'POST':
     if request.method == 'POST':
         request_dict = request.POST
         request_dict = request.POST
     token = request_dict.get('token', None)
     token = request_dict.get('token', None)
+    response = ResponseObject()
+    was_limited = getattr(request, 'limited', False)
+    # 限制同一个ip该接口一分钟不能访问超过两次
+    if was_limited is True:
+        return response.json(5)
     if token is not None:
     if token is not None:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = tokenManager.accessDict.get('userID', None)
-            own_perm = ModelService.check_permission(userID,10)
-            paths = TemplateService.log_api()
-            datas = {}
-            for path in paths:
-                count = Access_Log.objects.filter(operation=path).count()
-                datas[path] = count
-            return ResponseJSON(0, {'datas': datas})
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            own_perm = ModelService.check_permission(userID, 10)
+            if own_perm is True:
+                paths = TemplateService.log_api()
+                datas = {}
+                for path in paths:
+                    count = Access_Log.objects.filter(operation=path).count()
+                    datas[path] = count
+                return response.json(0, {'datas': datas})
+            else:
+                return response.json(404)
         else:
         else:
-            return HttpResponse(tokenManager.errorCodeInfo(error_code))
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(311)
-
+        return response.json(444, 'token')

+ 78 - 75
Controller/AdminManage.py

@@ -3,19 +3,21 @@ from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import TemplateView
 from django.views.generic import TemplateView
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.contrib.auth.hashers import make_password  # 对密码加密模块
 from django.contrib.auth.hashers import make_password  # 对密码加密模块
-from Service.TokenManager import JSONTokenManager
 from Model.models import Device_Info,Role
 from Model.models import Device_Info,Role
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from django.utils import timezone
 from django.utils import timezone
-import datetime
-from Model.models import Access_Log
-from Service.ResponseService import *
+from Model.models import Access_Log,Device_User
 from django.views.decorators.http import require_http_methods
 from django.views.decorators.http import require_http_methods
-from Ansjer.config import *
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Ansjer.config import OFF_LINE_TIME_DELTA
+import datetime,simplejson as json
+from Service.CommonService import CommonService
 '''
 '''
-http://13.56.215.252:8222/adminManage/manage?operation=getAllDeviceArea&token=test
-http://13.56.215.252:8222/adminManage/manage?operation=getAllUserName&token=test
-http://13.56.215.252:8222/adminManage/manage?operation=getAllUID&token=test
+http://192.168.136.40:8077/adminManage/manage?operation=getAllDeviceArea&token=debug
+http://192.168.136.40:8077/adminManage/manage?operation=getAllUserName&token=debug
+http://192.168.136.40:8077/adminManage/manage?operation=getAllUID&token=debug
+
 http://127.0.0.1:8000/adminManage/manage?operation=getAllOnLine&token=stest
 http://127.0.0.1:8000/adminManage/manage?operation=getAllOnLine&token=stest
 http://127.0.0.1:8000/adminManage/manage?operation=getOnLine&token=stest
 http://127.0.0.1:8000/adminManage/manage?operation=getOnLine&token=stest
 '''
 '''
@@ -35,71 +37,70 @@ class AdminManage(TemplateView):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
-
+        response = ResponseObject()
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 operation = request_dict.get('operation', None)
                 operation = request_dict.get('operation', None)
-                param_flag = CommonService.get_param_flag(data=[userID, operation])
-                if param_flag is True:
+                if userID is not None and operation is not None:
                     if operation == 'resetUserPwd':
                     if operation == 'resetUserPwd':
                         return self.resetUserPwd(request_dict=request_dict, userID=userID)
                         return self.resetUserPwd(request_dict=request_dict, userID=userID)
                     if operation == 'getAllOnLine':
                     if operation == 'getAllOnLine':
-                        return self.getAllOnLine(userID=userID)
+                        return self.getAllOnLine(userID,response)
                     if operation == 'getOnLine':
                     if operation == 'getOnLine':
-                        return self.getOnLine(userID=userID)
+                        return self.getOnLine(userID,response)
                     if operation == 'getAllUserName':
                     if operation == 'getAllUserName':
-                        return self.getAllUserName(userID=userID)
+                        return self.getAllUserName(userID,response)
                     if operation == 'getStatisAccess':
                     if operation == 'getStatisAccess':
-                        return self.getStatisAccess(userID=userID,request_dict=request_dict)
+                        return self.getStatisAccess(userID,request_dict,response)
                     if operation == 'getAllUID':
                     if operation == 'getAllUID':
-                        return self.getAllUID(userID=userID)
+                        return self.getAllUID(userID,response)
                     if operation == 'getAllDeviceArea':
                     if operation == 'getAllDeviceArea':
-                        return self.getAllDeviceArea(userID=userID)
+                        return self.getAllDeviceArea(userID,response)
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(444,'operation')
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def resetUserPwd(self, request_dict, userID):
+    def resetUserPwd(self, request_dict, userID,response):
         own_permission = ModelService.check_permission(userID=userID, permID=50)
         own_permission = ModelService.check_permission(userID=userID, permID=50)
-        if own_permission is True:
+        if own_permission:
             duserID = request_dict.get('duserID', None)
             duserID = request_dict.get('duserID', None)
             userPwd = request_dict.get('userPwd', None)
             userPwd = request_dict.get('userPwd', None)
-            param_flag = CommonService.get_param_flag(data=[duserID])
-            if param_flag is True:
+            if duserID:
                 UserValid = Device_User.objects.filter(userID=duserID)
                 UserValid = Device_User.objects.filter(userID=duserID)
                 if UserValid:
                 if UserValid:
                     if userPwd is None:
                     if userPwd is None:
                         userPwd = '123456'
                         userPwd = '123456'
                     is_update = UserValid.update(password=make_password(userPwd))
                     is_update = UserValid.update(password=make_password(userPwd))
                     if is_update:
                     if is_update:
-                        return ResponseJSON(0)
+                        return response.json(0)
                     else:
                     else:
-                        return ResponseJSON(106)
+                        return response.json(106)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444,'duserID')
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def getAllUserName(self, userID):
+    def getAllUserName(self, userID,response):
         # 权限固定为30
         # 权限固定为30
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             username_list = Device_User.objects.all().values_list('username', flat=True)
             username_list = Device_User.objects.all().values_list('username', flat=True)
             if username_list:
             if username_list:
-                return ResponseJSON(0,{'username_list': list(username_list)})
+                return response.json(0,{'username_list': list(username_list)})
             else:
             else:
-                return ResponseJSON(0)
+                return response.json(0)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
     #    获取全部用户的在线个数
     #    获取全部用户的在线个数
-    def getAllOnLine(self, userID):
+    def getAllOnLine(self, userID,response):
         # 权限固定为30
         # 权限固定为30
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
@@ -114,11 +115,11 @@ class AdminManage(TemplateView):
                     noonlinenum+=1
                     noonlinenum+=1
             print("在线人数:")
             print("在线人数:")
             print(onlinenum)
             print(onlinenum)
-            return ResponseJSON(0, {"onlinenum": onlinenum, "no_onlinenum": noonlinenum})
+            return response.json(0, {"onlinenum": onlinenum, "no_onlinenum": noonlinenum})
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
     #    获取全部用户的在线人数
     #    获取全部用户的在线人数
-    def getOnLine(self, userID):
+    def getOnLine(self, userID,response):
         # 权限固定为30
         # 权限固定为30
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
@@ -141,12 +142,12 @@ class AdminManage(TemplateView):
                         noonlinenum += 1
                         noonlinenum += 1
             print("在线人")
             print("在线人")
             print(onlinenum)
             print(onlinenum)
-            return ResponseJSON(0, {"onlinenum": onlinenum,"no_onlinenum": noonlinenum})
+            return response.json(0, {"onlinenum": onlinenum,"no_onlinenum": noonlinenum})
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
     # 获取所有设备地区
     # 获取所有设备地区
-    def getAllDeviceArea(self, userID):
+    def getAllDeviceArea(self, userID,response):
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             qs = Device_Info.objects.all().values('area','UID')
             qs = Device_Info.objects.all().values('area','UID')
@@ -162,17 +163,17 @@ class AdminManage(TemplateView):
                         area_dict[v] += 1
                         area_dict[v] += 1
                     else:
                     else:
                         area_dict[v] = 1
                         area_dict[v] = 1
-                return ResponseJSON(0,{'area':area_dict})
+                return response.json(0,{'area':area_dict})
             else:
             else:
-                return ResponseJSON(0)
+                return response.json(0)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
     '''
     '''
     统计一天访问量
     统计一天访问量
     http://192.168.136.45:8077/adminManage/manage?token=test&operation=getStatisAccess&timestamp=1528773308
     http://192.168.136.45:8077/adminManage/manage?token=test&operation=getStatisAccess&timestamp=1528773308
     '''
     '''
-    def getStatisAccess(self,userID,request_dict):
+    def getStatisAccess(self,userID,request_dict,response):
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             time_stamp = int(request_dict.get('timestamp', None))
             time_stamp = int(request_dict.get('timestamp', None))
@@ -187,42 +188,42 @@ class AdminManage(TemplateView):
                     res[k] = count
                     res[k] = count
                 else:
                 else:
                     res[k] = 0
                     res[k] = 0
-            return ResponseJSON(0, {'count': res})
+            return response.json(0, {'count': res})
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def getAllUID(self,userID):
+    def getAllUID(self,userID,response):
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             uid_list = Device_Info.objects.all().values_list('UID', flat=True)
             uid_list = Device_Info.objects.all().values_list('UID', flat=True)
             if uid_list:
             if uid_list:
-                return ResponseJSON(0, {'count': len(uid_list),'uid_list':list(uid_list)})
+                return response.json(0, {'count': len(uid_list),'uid_list':list(uid_list)})
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-@csrf_exempt
 @require_http_methods(["GET"])
 @require_http_methods(["GET"])
 def getUserIds(request):
 def getUserIds(request):
     token = request.GET.get('token', None)
     token = request.GET.get('token', None)
+    response = ResponseObject()
     if token is not None:
     if token is not None:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = tokenManager.accessDict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             own_perm = ModelService.check_permission(userID,30)
             own_perm = ModelService.check_permission(userID,30)
             if own_perm is True:
             if own_perm is True:
                 # userID_list = Device_User.objects.all().values_list('userID', flat=True)
                 # userID_list = Device_User.objects.all().values_list('userID', flat=True)
                 dn = Device_User.objects.all().values('userID', 'username')
                 dn = Device_User.objects.all().values('userID', 'username')
-                return ResponseJSON(0,{"datas":list(dn)})
+                return response.json(0,{"datas":list(dn)})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return HttpResponse(tokenManager.errorCodeInfo(error_code))
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(311)
+        return response.json(311)
 
 
 @csrf_exempt
 @csrf_exempt
-# @require_http_methods(['GET'])
 def search_user_by_content(request):
 def search_user_by_content(request):
     if request.method == 'GET':
     if request.method == 'GET':
         request_dict = request.GET
         request_dict = request.GET
@@ -234,16 +235,18 @@ def search_user_by_content(request):
     content = request_dict.get('content', None)
     content = request_dict.get('content', None)
     rstime = request_dict.get('rstime', None)
     rstime = request_dict.get('rstime', None)
     retime = request_dict.get('retime', None)
     retime = request_dict.get('retime', None)
+    response = ResponseObject()
     if page is not None and line is not None:
     if page is not None and line is not None:
         page = int(page)
         page = int(page)
         line = int(line)
         line = int(line)
     else:
     else:
-        return ResponseJSON(10,'page,line is none')
+        return response.json(10,'page,line is none')
     if token is not None:
     if token is not None:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = tokenManager.accessDict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             own_perm = ModelService.check_permission(userID,30)
             own_perm = ModelService.check_permission(userID,30)
             if own_perm is True:
             if own_perm is True:
                 check_perm = ModelService.check_permission(userID=userID, permID=20)
                 check_perm = ModelService.check_permission(userID=userID, permID=20)
@@ -253,7 +256,7 @@ def search_user_by_content(request):
                         search_kwargs = CommonService.get_kwargs(data=content)
                         search_kwargs = CommonService.get_kwargs(data=content)
                         queryset = Device_User.objects.filter(**search_kwargs)
                         queryset = Device_User.objects.filter(**search_kwargs)
                     except Exception as e:
                     except Exception as e:
-                        return ResponseJSON(444,repr(e))
+                        return response.json(444,repr(e))
                     if rstime is not None and rstime != '' and retime is not None and retime != '':
                     if rstime is not None and rstime != '' and retime is not None and retime != '':
                         startt = datetime.datetime.fromtimestamp(int(rstime))
                         startt = datetime.datetime.fromtimestamp(int(rstime))
                         rstime = startt.strftime("%Y-%m-%d %H:%M:%S.%f")
                         rstime = startt.strftime("%Y-%m-%d %H:%M:%S.%f")
@@ -271,7 +274,7 @@ def search_user_by_content(request):
                     if queryset.exists():
                     if queryset.exists():
                         count = queryset.count()
                         count = queryset.count()
                         res = queryset[(page - 1) * line:page * line]
                         res = queryset[(page - 1) * line:page * line]
-                        sqlDict = CommonService.query_set_to_dict(res)
+                        sqlDict = CommonService.qs_to_dict(res)
                         for k, v in enumerate(sqlDict["datas"]):
                         for k, v in enumerate(sqlDict["datas"]):
                             if len(v['fields']['role']) > 0:
                             if len(v['fields']['role']) > 0:
                                 role_query_set = Role.objects.get(rid=v['fields']['role'][0])
                                 role_query_set = Role.objects.get(rid=v['fields']['role'][0])
@@ -284,16 +287,16 @@ def search_user_by_content(request):
                                         if now_time > dl_time:
                                         if now_time > dl_time:
                                             sqlDict["datas"][k]['fields']['online'] = False
                                             sqlDict["datas"][k]['fields']['online'] = False
                         sqlDict['count'] = count
                         sqlDict['count'] = count
-                        return ResponseJSON(0, sqlDict)
-                    return ResponseJSON(0, {'datas': [], 'count': 0})
+                        return response.json(0, sqlDict)
+                    return response.json(0, {'datas': [], 'count': 0})
                 else:
                 else:
-                    return ResponseJSON(404)
+                    return response.json(404)
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return HttpResponse(tokenManager.errorCodeInfo(error_code))
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(311)
+        return response.json(311)
 
 
 
 
 
 

+ 50 - 54
Controller/AppInfo.py

@@ -1,13 +1,12 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
-from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
+from Service.ModelService import ModelService
 from Model.models import App_Info
 from Model.models import App_Info
 import traceback
 import traceback
-from Service.ResponseService import *
-
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
 '''
 '''
 http://192.168.136.45:8077/appInfo?operation=add&token=test&appBundleId=123456&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A1%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=1234&bundleVersion=1234
 http://192.168.136.45:8077/appInfo?operation=add&token=test&appBundleId=123456&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A1%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=1234&bundleVersion=1234
 http://192.168.136.45:8077/appInfo?operation=update&token=test&appBundleId=1234&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A3%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=555&id=6
 http://192.168.136.45:8077/appInfo?operation=update&token=test&appBundleId=1234&appName=%E8%AF%BA%E5%9F%BA%E4%BA%9A3%E5%8F%B7&systemLanguage=US&content=dladfjklsjfdsajkdfasjkljlk&app_type=2&newAppversion=555&id=6
@@ -31,48 +30,47 @@ class AppInfo(View):
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
         operation = request_dict.get('operation', None)
         operation = request_dict.get('operation', None)
+        response = ResponseObject()
         if operation is not None:
         if operation is not None:
             if operation == 'getAppNewVersion':
             if operation == 'getAppNewVersion':
-                return self.getAppNewVersion(request_dict=request_dict)
+                return self.getAppNewVersion(request_dict,response)
             else:
             else:
                 token = request_dict.get('token', None)
                 token = request_dict.get('token', None)
                 if token is not None:
                 if token is not None:
-                    tokenManager = JSONTokenManager()
-                    error_code = tokenManager.verify_AToken(token)
-                    if error_code == 0:
-                        userID = tokenManager.accessDict.get('userID', None)
-                        param_flag = CommonService.get_param_flag(data=[userID])
-                        if param_flag is True:
+                    tko = TokenObject(token)
+                    tko.valid()
+                    response.lang = tko.lang
+                    if tko.code == 0:
+                        userID = tko.userID()
+                        if userID is not None:
                             if operation == 'query':
                             if operation == 'query':
-                                return self.query(request_dict=request_dict, userID=userID)
+                                return self.query(request_dict, userID,response)
                             elif operation == 'add':
                             elif operation == 'add':
-                                return self.add(request_dict=request_dict, userID=userID)
+                                return self.add(request_dict, userID,response)
                             elif operation == 'update':
                             elif operation == 'update':
-                                return self.update(request_dict=request_dict, userID=userID)
+                                return self.update(request_dict, userID,response)
                             elif operation == 'delete':
                             elif operation == 'delete':
-                                return self.delete(request_dict=request_dict, userID=userID)
-                        return ResponseJSON(444)
+                                return self.delete(request_dict, userID,response)
+                        return response.json(444,'userID')
                     else:
                     else:
-                        return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                        return response.json(tko.code)
                 else:
                 else:
-                    return ResponseJSON(311)
+                    return response.json(311)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444,'operation')
 
 
-    def getAppNewVersion(self, request_dict):
+    def getAppNewVersion(self, request_dict,response):
         appBundleId = request_dict.get('appBundleId', None)
         appBundleId = request_dict.get('appBundleId', None)
         app_type = request_dict.get('app_type', None)
         app_type = request_dict.get('app_type', None)
-        # systemLanguage = request_dict.get('systemLanguage',None)
-        param_flag = CommonService.get_param_flag(data=[appBundleId, app_type])
-        if param_flag is True:
+        if appBundleId is not None and app_type is not None:
             try:
             try:
                 app_info = App_Info.objects.get(appBundleId=appBundleId, app_type=app_type)
                 app_info = App_Info.objects.get(appBundleId=appBundleId, app_type=app_type)
             except Exception:
             except Exception:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print(errorInfo)
                 print(errorInfo)
-                return ResponseJSON(424, {'details': errorInfo})
+                return response.json(424, {'details': errorInfo})
             else:
             else:
-                return ResponseJSON(0, {'appBundleId': app_info.appBundleId,
+                return response.json(0, {'appBundleId': app_info.appBundleId,
                                         'appName': app_info.appName,
                                         'appName': app_info.appName,
                                         'newAppversion': app_info.newAppversion,
                                         'newAppversion': app_info.newAppversion,
                                         'systemLanguage': app_info.systemLanguage,
                                         'systemLanguage': app_info.systemLanguage,
@@ -82,9 +80,9 @@ class AppInfo(View):
                                         'id': app_info.id,
                                         'id': app_info.id,
                                         'bundleVersion': app_info.bundleVersion})
                                         'bundleVersion': app_info.bundleVersion})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444,'app_type,appBundleId')
 
 
-    def add(self, request_dict, userID):
+    def add(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         if own_perm is True:
         if own_perm is True:
             appBundleId = request_dict.get('appBundleId', None)
             appBundleId = request_dict.get('appBundleId', None)
@@ -103,10 +101,10 @@ class AppInfo(View):
                 except Exception:
                 except Exception:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': errorInfo})
+                    return response.json(424, {'details': errorInfo})
                 else:
                 else:
                     if has_app_info.exists():
                     if has_app_info.exists():
-                        return ResponseJSON(60)
+                        return response.json(60)
                     else:
                     else:
                         try:
                         try:
                             app_Info = App_Info(
                             app_Info = App_Info(
@@ -123,11 +121,11 @@ class AppInfo(View):
                         except Exception:
                         except Exception:
                             errorInfo = traceback.format_exc()
                             errorInfo = traceback.format_exc()
                             print(errorInfo)
                             print(errorInfo)
-                            return ResponseJSON(500, {'details': errorInfo})
+                            return response.json(500, {'details': errorInfo})
                         else:
                         else:
                             app_Info.save()
                             app_Info.save()
                             if app_Info.id:
                             if app_Info.id:
-                                return ResponseJSON(0,
+                                return response.json(0,
                                                     {
                                                     {
                                                         'appBundleId': app_Info.appBundleId,
                                                         'appBundleId': app_Info.appBundleId,
                                                         'appName': app_Info.appName,
                                                         'appName': app_Info.appName,
@@ -140,32 +138,31 @@ class AppInfo(View):
                                                         'bundleVersion': app_Info.bundleVersion
                                                         'bundleVersion': app_Info.bundleVersion
                                                     })
                                                     })
                             else:
                             else:
-                                return ResponseJSON(500)
-            return ResponseJSON(444)
+                                return response.json(500)
+            return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def query(self, request_dict, userID):
+    def query(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
             line = int(request_dict.get('line', None))
             line = int(request_dict.get('line', None))
-            param_flag = CommonService.get_param_flag(data=[page, line])
-            if param_flag is True:
+            if page is not None and line is not None:
                 queryset = App_Info.objects.all()
                 queryset = App_Info.objects.all()
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0, send_json)
-                return ResponseJSON(0)
+                    return response.json(0, send_json)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444,'page,line')
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def update(self, request_dict, userID):
+    def update(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             id = request_dict.get('id', None)
             id = request_dict.get('id', None)
@@ -185,7 +182,7 @@ class AppInfo(View):
                 except Exception:
                 except Exception:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': errorInfo})
+                    return response.json(424, {'details': errorInfo})
                 else:
                 else:
                     if app_info.id:
                     if app_info.id:
                         app_info.appBundleId = appBundleId
                         app_info.appBundleId = appBundleId
@@ -197,28 +194,27 @@ class AppInfo(View):
                         app_info.bundleVersion = bundleVersion
                         app_info.bundleVersion = bundleVersion
                         app_info.downloadLink = downloadLink
                         app_info.downloadLink = downloadLink
                         app_info.save()
                         app_info.save()
-                        return ResponseJSON(0, {'update_id': app_info.id, 'update_time': str(app_info.update_time)})
+                        return response.json(0, {'update_id': app_info.id, 'update_time': str(app_info.update_time)})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def delete(self, request_dict, userID):
+    def delete(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         if own_perm is True:
         if own_perm is True:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
-            param_flag = CommonService.get_param_flag(data=[id_list])
-            if param_flag is True:
+            if id_list :
                 try:
                 try:
                     for id in id_list:
                     for id in id_list:
                         App_Info.objects.filter(id=id).delete()
                         App_Info.objects.filter(id=id).delete()
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444,'id must list')
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)

+ 40 - 85
Controller/CheckUserData.py

@@ -4,18 +4,21 @@ from random import Random # 用于生成随机码
 from wsgiref.util import FileWrapper
 from wsgiref.util import FileWrapper
 from django.utils.timezone import utc
 from django.utils.timezone import utc
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from django.views.generic import TemplateView, View
+from django.views.generic import TemplateView
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.contrib.auth.hashers import make_password
 from django.contrib.auth.hashers import make_password
-from django.shortcuts import HttpResponseRedirect
 from itsdangerous import URLSafeTimedSerializer as utsr # itsdangerous序列化
 from itsdangerous import URLSafeTimedSerializer as utsr # itsdangerous序列化
 import re, base64, json, traceback, random, string
 import re, base64, json, traceback, random, string
 from qcloudsms_py.httpclient import HTTPError
 from qcloudsms_py.httpclient import HTTPError
 from qcloudsms_py import SmsSingleSender
 from qcloudsms_py import SmsSingleSender
 from qcloudsms_py import SmsVoiceVerifyCodeSender, SmsVoicePromptSender
 from qcloudsms_py import SmsVoiceVerifyCodeSender, SmsVoicePromptSender
-from Ansjer.settings import *
-from Model.models import Email_Captcha, Device_User, Auth_Captcha
-from Service.ResponseService import *
+from Model.models import Auth_Captcha,Device_User
+from Ansjer.settings import BASE_DIR
+from Object.ResponseObject import ResponseObject
+import datetime,os
+from Ansjer.config import TX_PHONE_APP_KEY,TX_PHONE_APP_ID
+from django.http import HttpResponse
+
 
 
 #生成随机字符串
 #生成随机字符串
 def RandomStr(randomlength = 8, number = False):
 def RandomStr(randomlength = 8, number = False):
@@ -34,22 +37,6 @@ def RandomStr(randomlength = 8, number = False):
 
 
     return str
     return str
 
 
-def Active_User(request, token):
-    tokenConfirm = TokenLink(SECRET_KEY)
-    try:
-        username = tokenConfirm.confirm_validate_token(token)
-    except:
-        return ResponseJSON(1000)
-    try:
-        UserValid = Device_User.objects.get(userName=username)
-    except Device_User.DoesNotExist:
-        return ResponseJSON(113)
-    UserValid = Device_User.objects.get(username=username)
-    UserValid.is_active = True
-    UserValid.user_isValid = True
-    UserValid.save()
-    return ResponseJSON(0)
-
 class MobiletoResetPwdView(TemplateView):
 class MobiletoResetPwdView(TemplateView):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
@@ -73,11 +60,12 @@ class MobiletoResetPwdView(TemplateView):
         return self.ValidationError(userName, newPwd, authCode)
         return self.ValidationError(userName, newPwd, authCode)
 
 
     def ValidationError(self, userName, newPwd, authCode):
     def ValidationError(self, userName, newPwd, authCode):
+        response = ResponseObject()
         if userName != None and authCode != None and newPwd != None:
         if userName != None and authCode != None and newPwd != None:
-            return self.MobiletoResetPwd(userName, authCode, newPwd)
+            return self.MobiletoResetPwd(userName, authCode, newPwd, response)
         else:
         else:
-            return ResponseJSON(800)
-    def MobiletoResetPwd(self, userName, authCode, newPwd):
+            return response.json(800)
+    def MobiletoResetPwd(self, userName, authCode, newPwd,response):
         UserValid = Device_User.objects.filter(username = userName).order_by('-data_joined')
         UserValid = Device_User.objects.filter(username = userName).order_by('-data_joined')
         if UserValid:
         if UserValid:
             Users = Auth_Captcha.objects.filter(username = userName).order_by('-sendtime')
             Users = Auth_Captcha.objects.filter(username = userName).order_by('-sendtime')
@@ -91,35 +79,17 @@ class MobiletoResetPwdView(TemplateView):
                         if timeValid < 300:
                         if timeValid < 300:
                             is_flag = UserValid.update(password=make_password(newPwd))
                             is_flag = UserValid.update(password=make_password(newPwd))
                             if is_flag:
                             if is_flag:
-                                return ResponseJSON(0)
+                                return (0)
                             else:
                             else:
-                                return ResponseJSON(405)
+                                return response.json(405)
                         else:
                         else:
-                            return ResponseJSON(120)
+                            return response.json(120)
         else:
         else:
-            return ResponseJSON(102)
+            return response.json(102)
 
 
 def date_handler(obj):
 def date_handler(obj):
-    return  obj.isoformat()
-
-class ActiveUserView(View):
-    """账户激活的View"""
-    @method_decorator(csrf_exempt)
-    def dispatch(self, *args, **kwargs):
-        return super(ActiveUserView, self).dispatch(*args, **kwargs)
-
-    def get(self, request, active_code):
-        # 用code在数据库中过滤处信息
-        all_records = Email_Captcha.objects.filter(userCaptcha = active_code)
-        if all_records:
-            for record in all_records:
-                # 通过邮箱查找到对应的用户
-                userEmail = record.userEmail
-                user = Device_User.objects.get(userEmail = userEmail)
-                Device_User.objects.filter(userEmail = userEmail).update(user_isValid=True, is_active = True)
+    return obj.isoformat()
 
 
-        response = HttpResponseRedirect('/login/')
-        return response
 
 
 class TokenLink:
 class TokenLink:
     '''
     '''
@@ -183,10 +153,11 @@ class ModifyPwdView(TemplateView):
         return self.ValidationError(userEmail, oldPwd, newPwd)
         return self.ValidationError(userEmail, oldPwd, newPwd)
 
 
     def ValidationError(self, userEmail, oldPwd, newPwd):
     def ValidationError(self, userEmail, oldPwd, newPwd):
+        response = ResponseObject()
         dataValid = DataValid()
         dataValid = DataValid()
         if dataValid.password_validate(newPwd):
         if dataValid.password_validate(newPwd):
             if oldPwd != newPwd:
             if oldPwd != newPwd:
-                return ResponseJSON(118)
+                return response.json(118)
             try:
             try:
                 User = Device_User.objects.get(userEmail = userEmail)
                 User = Device_User.objects.get(userEmail = userEmail)
                 User.userPwd = make_password(newPwd)
                 User.userPwd = make_password(newPwd)
@@ -194,11 +165,12 @@ class ModifyPwdView(TemplateView):
             except Exception as e:
             except Exception as e:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print('更新密码到数据库: %s' % errorInfo)
                 print('更新密码到数据库: %s' % errorInfo)
-                return ResponseJSON(501,{'msg':repr(e)})
+                return response.json(501,{'msg':repr(e)})
             else:
             else:
-                return ResponseJSON(0)
+                return response.json(0)
         else:
         else:
-            return ResponseJSON(109)
+            return response.json(109)
+
 
 
 class DataValid:
 class DataValid:
 
 
@@ -238,11 +210,12 @@ class DataValid:
             return False
             return False
 
 
 def sms(phoneNumbers, sendModel, msg, sendType = 'register', template_id = 7839):
 def sms(phoneNumbers, sendModel, msg, sendType = 'register', template_id = 7839):
-    appid = SDK_AppID
-    appkey = App_Key
+    appid = TX_PHONE_APP_ID
+    appkey = TX_PHONE_APP_KEY
 
 
     print(phoneNumbers, msg, sendModel, template_id)
     print(phoneNumbers, msg, sendModel, template_id)
     ssender = SmsSingleSender(appid, appkey)
     ssender = SmsSingleSender(appid, appkey)
+    response = ResponseObject()
     try:
     try:
         if sendType == 'register':
         if sendType == 'register':
             result = ssender.send(0, "86", phoneNumbers, u"{authCode}为您的注册验证码,请于2分钟内填写。"
             result = ssender.send(0, "86", phoneNumbers, u"{authCode}为您的注册验证码,请于2分钟内填写。"
@@ -253,12 +226,12 @@ def sms(phoneNumbers, sendModel, msg, sendType = 'register', template_id = 7839)
     except HTTPError as e:
     except HTTPError as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('发送手机验证码出现网络错误: %s' % errorInfo)
         print('发送手机验证码出现网络错误: %s' % errorInfo)
-        return ResponseFormal(1022,{'msg':repr(e)})
+        return response.json(1022,{'msg':repr(e)})
 
 
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('发送手机短信验证码错误: %s' % errorInfo)
         print('发送手机短信验证码错误: %s' % errorInfo)
-        return ResponseFormal(1021)
+        return response.json(1021)
     else:
     else:
         resultCode = result.get('result', None)
         resultCode = result.get('result', None)
         if resultCode == 0:
         if resultCode == 0:
@@ -270,13 +243,14 @@ def sms(phoneNumbers, sendModel, msg, sendType = 'register', template_id = 7839)
 
 
 class QCloudSms(object):
 class QCloudSms(object):
     def __init__(self, nationcode, msg, template_id):
     def __init__(self, nationcode, msg, template_id):
-        self.appid = SDK_AppID
-        self.appkey = App_Key
+        self.appid = TX_PHONE_APP_ID
+        self.appkey = TX_PHONE_APP_KEY
         self.msg = msg # 验证码msg
         self.msg = msg # 验证码msg
         self.nationcode = nationcode # 国家码
         self.nationcode = nationcode # 国家码
         self.template_id = template_id # 模板ID
         self.template_id = template_id # 模板ID
 
 
     def sms(self, mobiles, model, type = 'register'):
     def sms(self, mobiles, model, type = 'register'):
+        response = ResponseObject()
         ssender = SmsSingleSender(self.appid, self.appkey)
         ssender = SmsSingleSender(self.appid, self.appkey)
         try:
         try:
             if type == 'register':
             if type == 'register':
@@ -288,11 +262,11 @@ class QCloudSms(object):
         except HTTPError as e:
         except HTTPError as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('发送手机短信验证码出现网络错误: %s' % errorInfo)
             print('发送手机短信验证码出现网络错误: %s' % errorInfo)
-            return ResponseFormal(1022,repr(e))
+            return response.json(1022,repr(e))
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('发送手机验证码错误: %s' % errorInfo)
             print('发送手机验证码错误: %s' % errorInfo)
-            return ResponseFormal(1021,repr(e))
+            return response.formal(1021,repr(e))
         else:
         else:
             resultCode = result.get('result', None)
             resultCode = result.get('result', None)
             if resultCode == 0:
             if resultCode == 0:
@@ -304,6 +278,7 @@ class QCloudSms(object):
 
 
     def voice(self, mobiles, model, type = 'register'):
     def voice(self, mobiles, model, type = 'register'):
         # 语音验证码请求
         # 语音验证码请求
+        response = ResponseObject()
         vvcsender = SmsVoiceVerifyCodeSender(appid = self.appid, appkey = self.appkey)
         vvcsender = SmsVoiceVerifyCodeSender(appid = self.appid, appkey = self.appkey)
         try:
         try:
             result = vvcsender.send(nation_code=self.nationcode, phone_number = \
             result = vvcsender.send(nation_code=self.nationcode, phone_number = \
@@ -311,11 +286,11 @@ class QCloudSms(object):
         except HTTPError as e:
         except HTTPError as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('发送手机验证码出现网络错误: %s' % errorInfo)
             print('发送手机验证码出现网络错误: %s' % errorInfo)
-            return ResponseFormal(1022,repr(e))
+            return response.formal(1022,repr(e))
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('发送手机语音验证码错误: %s' % errorInfo)
             print('发送手机语音验证码错误: %s' % errorInfo)
-            return ResponseFormal(1023,repr(e))
+            return response.formal(1023,repr(e))
         else:
         else:
             resultCode = result.get('result', None)
             resultCode = result.get('result', None)
             if resultCode == 0:
             if resultCode == 0:
@@ -348,25 +323,6 @@ class QCloudSms(object):
                 errorJSON = json.dumps(result, ensure_ascii=False)
                 errorJSON = json.dumps(result, ensure_ascii=False)
                 return errorJSON
                 return errorJSON
 
 
-def upload_file(request):
-    """
-    文件接收
-    :param request: 请求
-    :return:
-    """
-    if request.method == "POST":    # 请求方法为POST时,进行处理
-        upFile =request.FILES.get("upfile", None)    # 获取上传的文件,如果没有文件,则默认为None
-        if not upFile:
-            return HttpResponse("no files for upload!")
-
-        else:
-            upgradePath = os.path.join(MEDIA_URL, '/Upgrade/IPC/')
-            destination = open(os.path.join(upgradePath, upFile.name), 'wb+')    # 打开特定的文件进行二进制的写操作
-            for chunk in upFile.chunks():      # 分块写入文件
-                destination.write(chunk)
-            destination.close()
-            return HttpResponse("upload over!")
-
 @csrf_exempt
 @csrf_exempt
 def download_file(request, Upgradename, *callback_args, **callback_kwargs):
 def download_file(request, Upgradename, *callback_args, **callback_kwargs):
     """
     """
@@ -384,14 +340,13 @@ def download_file(request, Upgradename, *callback_args, **callback_kwargs):
     # 打印dict类型的不定长参数 args
     # 打印dict类型的不定长参数 args
     for key in callback_kwargs:
     for key in callback_kwargs:
         print("dictargs:" + key + ":" + bytes(callback_kwargs[key]))
         print("dictargs:" + key + ":" + bytes(callback_kwargs[key]))
-    #received_json_data = json.loads(request.body)
     print(request.body)
     print(request.body)
     file_name = os.path.join(BASE_DIR, "static/Upgrade/DVR/").replace('\\', '/') + Upgradename
     file_name = os.path.join(BASE_DIR, "static/Upgrade/DVR/").replace('\\', '/') + Upgradename
-
+    response = ResponseObject()
     if os.path.isfile(file_name):
     if os.path.isfile(file_name):
         try:
         try:
             print(file_name)
             print(file_name)
-            JSON = ResponseFormal(0)
+            JSON = response.formal(0)
             wrapper = FileWrapper(open(file_name, 'rb'))
             wrapper = FileWrapper(open(file_name, 'rb'))
             response = HttpResponse(wrapper, content_type="application/octet-stream")
             response = HttpResponse(wrapper, content_type="application/octet-stream")
             response['Content-Length'] = os.path.getsize(file_name)
             response['Content-Length'] = os.path.getsize(file_name)
@@ -399,12 +354,12 @@ def download_file(request, Upgradename, *callback_args, **callback_kwargs):
             response['Content-Error'] = JSON
             response['Content-Error'] = JSON
             return response
             return response
         except Exception as e:
         except Exception as e:
-            errorJSON = ResponseFormal(10,'Wrong reason:' + repr(e))
+            errorJSON = response.formal(10,'Wrong reason:' + repr(e))
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response['Content-Error'] = errorJSON
             response['Content-Error'] = errorJSON
             return response
             return response
     else:
     else:
-        errorJSON = ResponseFormal(907)
+        errorJSON = response.formal(907)
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response['Content-Error'] = errorJSON
         response['Content-Error'] = errorJSON
         return response
         return response

+ 23 - 23
Controller/DeviceLog.py

@@ -12,13 +12,18 @@
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
 import datetime
 import datetime
+
+import simplejson as json
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
+
 from Model.models import Device_Info
 from Model.models import Device_Info
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
 from Object.mongodb import mongodb
 from Object.mongodb import mongodb
-from Service.TokenManager import JSONTokenManager
-from Service.ModelService import ModelService
+from Service.CommonService import CommonService
 from Service.DeviceOperation import DeviceOperation
 from Service.DeviceOperation import DeviceOperation
-from Service.ResponseService import *
+from Service.ModelService import ModelService
+
 '''
 '''
 curl http://192.168.136.45:8077/devices/C2887N9EBS87ZAT1111A/logs -d "deviceData={\"UID\":\"C2887N9EBS87ZAT1111A\",\"type\":\"0x10014\",\"UserIP\":\"127.0.0.1\",\"time\":1529474865,\"name\":\"admin\"}"
 curl http://192.168.136.45:8077/devices/C2887N9EBS87ZAT1111A/logs -d "deviceData={\"UID\":\"C2887N9EBS87ZAT1111A\",\"type\":\"0x10014\",\"UserIP\":\"127.0.0.1\",\"time\":1529474865,\"name\":\"admin\"}"
 http://192.168.136.40:8077/devices/2N1K3LE78TYJ38CE111A/logs?type=All&starttime=1529462169&endtime=1529462169
 http://192.168.136.40:8077/devices/2N1K3LE78TYJ38CE111A/logs?type=All&starttime=1529462169&endtime=1529462169
@@ -28,6 +33,7 @@ http://192.168.136.40:8077/devices/2N1K3LE78TYJ38CE111A/logs?type=All&starttime=
 @csrf_exempt
 @csrf_exempt
 def DeviceLog(request, uid):
 def DeviceLog(request, uid):
     # 存储设备日志
     # 存储设备日志
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         deviceData = request.POST.get('deviceData', None)
         deviceData = request.POST.get('deviceData', None)
@@ -38,14 +44,13 @@ def DeviceLog(request, uid):
                 mdb = mongodb()
                 mdb = mongodb()
                 data['et'] = datetime.datetime.utcnow()
                 data['et'] = datetime.datetime.utcnow()
                 col = "log_device_operation"
                 col = "log_device_operation"
-                id = mdb.insert_one(col=col, data=data)
-                return ResponseJSON(0)
-                # qs = mdb.findAll(col=col, page=1, line=10)
+                mdb.insert_one(col=col, data=data)
+                return response.json(0)
             except Exception as e:
             except Exception as e:
                 print(repr(e))
                 print(repr(e))
-                return ResponseJSON(48,repr(e))
+                return response.json(48,repr(e))
         else:
         else:
-            return ResponseJSON(13)
+            return response.json(13)
     # 查找设备日志
     # 查找设备日志
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
@@ -57,10 +62,11 @@ def DeviceLog(request, uid):
         starttime = request.GET.get('starttime', None)
         starttime = request.GET.get('starttime', None)
         endtime = request.GET.get('endtime', None)
         endtime = request.GET.get('endtime', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 if page is None and line is None:
                 if page is None and line is None:
                     page = 1
                     page = 1
                     line = 10000
                     line = 10000
@@ -79,8 +85,6 @@ def DeviceLog(request, uid):
                             except Exception as e:
                             except Exception as e:
                                 if type is not None:
                                 if type is not None:
                                     query['type'] = type
                                     query['type'] = type
-                        # if starttime is not None and endtime is not None and starttime != '' and endtime != '':
-                        #     query['time'] = {'$gte': int(starttime), '$lte': int(endtime)}
                         if starttime is not None and starttime != '' and endtime is not None and endtime != '':
                         if starttime is not None and starttime != '' and endtime is not None and endtime != '':
                             query['time'] = {'$gte': int(starttime), '$lte': int(endtime)}
                             query['time'] = {'$gte': int(starttime), '$lte': int(endtime)}
                         elif starttime is not None and starttime != '':
                         elif starttime is not None and starttime != '':
@@ -92,10 +96,6 @@ def DeviceLog(request, uid):
                         print('___________query____________')
                         print('___________query____________')
                         mdb = mongodb()
                         mdb = mongodb()
                         col = "log_device_operation"
                         col = "log_device_operation"
-                        # if int(page) < 0:
-                        #     count = mdb.cout(col=col,query=query)
-                        #     total = math.ceil(count/int(line))
-                        #     page = int(total)+int(page)+1
                         qs = mdb.findAll(col=col, page=int(page), line=int(line), query=query)
                         qs = mdb.findAll(col=col, page=int(page), line=int(line), query=query)
                         if qs is not False:
                         if qs is not False:
                             data_list = []
                             data_list = []
@@ -103,11 +103,11 @@ def DeviceLog(request, uid):
                                 i['type'] = DeviceOperation.getOperation(type=i['type'])
                                 i['type'] = DeviceOperation.getOperation(type=i['type'])
                                 data_list.append(i)
                                 data_list.append(i)
                             qs['data'] = data_list
                             qs['data'] = data_list
-                        return ResponseJSON(0,qs)
+                        return response.json(0,qs)
                 else:
                 else:
-                    return ResponseJSON(404)
-                return ResponseJSON(444)
+                    return response.json(404)
+                return response.json(444)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)

+ 44 - 43
Controller/DeviceManage.py

@@ -11,12 +11,11 @@
 @file: DeviceManage.py
 @file: DeviceManage.py
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
-from django.shortcuts import HttpResponse
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.ResponseService import *
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Device_Info
 from Model.models import Device_Info
@@ -46,40 +45,41 @@ class DeviceManage(View):
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
         operation = request_dict.get('operation', None)
         operation = request_dict.get('operation', None)
+        response = ResponseObject()
         if operation is not None:
         if operation is not None:
             token = request_dict.get('token', None)
             token = request_dict.get('token', None)
             if token is not None:
             if token is not None:
-                tokenManager = JSONTokenManager()
-                error_code = tokenManager.verify_AToken(token)
-                if error_code == 0:
-                    userID = tokenManager.accessDict.get('userID', None)
+                tko = TokenObject(token)
+                tko.valid()
+                response.lang = tko.lang
+                if tko.code == 0:
+                    userID = tko.userID()
                     if userID is not None:
                     if userID is not None:
                         if operation == 'query':
                         if operation == 'query':
-                            return self.query(request_dict=request_dict, userID=userID)
+                            return self.query(request_dict, userID, response)
                         elif operation == 'findByUser':
                         elif operation == 'findByUser':
-                            return self.findByUser(request_dict=request_dict, userID=userID)
+                            return self.findByUser(request_dict, userID,response)
                         elif operation == 'delete':
                         elif operation == 'delete':
-                            return self.delete(request_dict=request_dict, userID=userID)
-                    return ResponseJSON(444)
+                            return self.delete(request_dict, userID, response)
+                    return response.json(444,'operation')
                 else:
                 else:
-                    return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                    return response.json(tko.code)
             else:
             else:
-                return ResponseJSON(311)
+                return response.json(311)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def query(self, request_dict, userID):
+    def query(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
             line = int(request_dict.get('line', None))
             line = int(request_dict.get('line', None))
-            param_flag = CommonService.get_param_flag(data=[page, line])
-            if param_flag is True:
+            if page is not None and line is not None:
                 queryset = Device_Info.objects.all()
                 queryset = Device_Info.objects.all()
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_dict = CommonService.query_set_to_dict(res)
+                    send_dict = CommonService.qs_to_dict(res)
                     for k, v in enumerate(send_dict["datas"]):
                     for k, v in enumerate(send_dict["datas"]):
                         for val in res:
                         for val in res:
                             if v['pk'] == val.id:
                             if v['pk'] == val.id:
@@ -94,34 +94,33 @@ class DeviceManage(View):
                                 primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
                                 primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
                                 send_dict["datas"][k]['fields']['primaryusername']=primary
                                 send_dict["datas"][k]['fields']['primaryusername']=primary
                     send_dict['count'] = count
                     send_dict['count'] = count
-                    return ResponseJSON(0, send_dict)
-                return ResponseJSON(0,{'count':0})
+                    return response.json(0, send_dict)
+                return response.json(0,{'count':0})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444,'page,line')
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def delete(self, request_dict, userID):
+    def delete(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         if own_perm is True:
         if own_perm is True:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
-            param_flag = CommonService.get_param_flag(data=[id_list])
-            if param_flag is True:
+            if id_list:
                 try:
                 try:
                     for id in id_list:
                     for id in id_list:
                         Device_Info.objects.filter(id=id).delete()
                         Device_Info.objects.filter(id=id).delete()
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444,'id must list')
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def findByUser(self, request_dict, userID):
+    def findByUser(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
@@ -135,7 +134,7 @@ class DeviceManage(View):
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_dict = CommonService.query_set_to_dict(res)
+                    send_dict = CommonService.qs_to_dict(res)
                     for k, v in enumerate(send_dict["datas"]):
                     for k, v in enumerate(send_dict["datas"]):
                         for val in res:
                         for val in res:
                             if v['pk'] == val.id:
                             if v['pk'] == val.id:
@@ -148,12 +147,12 @@ class DeviceManage(View):
                                 primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
                                 primary= ModelService.get_user_name(send_dict["datas"][k]['fields']['primaryUserID'])
                                 send_dict["datas"][k]['fields']['primaryusername']=primary
                                 send_dict["datas"][k]['fields']['primaryusername']=primary
                     send_dict['count'] = count
                     send_dict['count'] = count
-                    return ResponseJSON(0, send_dict)
-                return ResponseJSON(0,{'count':0})
+                    return response.json(0, send_dict)
+                return response.json(0,{'count':0})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
 
 
 @csrf_exempt
 @csrf_exempt
@@ -162,15 +161,17 @@ def Devices(request, UID):
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         token = request.GET.get('token', None)
         token = request.GET.get('token', None)
+        response = ResponseObject()
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 res = Device_Info.objects.filter(userID_id=userID,UID=UID)
                 res = Device_Info.objects.filter(userID_id=userID,UID=UID)
-                send_dict = CommonService.query_set_to_dict(res)
-                return ResponseJSON(0, send_dict)
+                send_dict = CommonService.qs_to_dict(res)
+                return response.json(0, send_dict)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)

+ 66 - 67
Controller/DeviceMeal.py

@@ -14,13 +14,13 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Device_Meal, Store_Meal
 from Model.models import Device_Meal, Store_Meal
 import traceback, datetime
 import traceback, datetime
 from django.utils import timezone
 from django.utils import timezone
-from Service.ResponseService import *
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
 
 
 '''
 '''
 http://192.168.136.40:8077/device/meal?operation=add&token=test&uid=UKPAH63V23U4ZHEB111A&channel=1&rank=2&days=1
 http://192.168.136.40:8077/device/meal?operation=add&token=test&uid=UKPAH63V23U4ZHEB111A&channel=1&rank=2&days=1
@@ -49,42 +49,43 @@ class DeviceMeal(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
         operation = request_dict.get('operation', None)
         operation = request_dict.get('operation', None)
         if operation is not None:
         if operation is not None:
             token = request_dict.get('token', None)
             token = request_dict.get('token', None)
             if token is not None:
             if token is not None:
-                tokenManager = JSONTokenManager()
-                error_code = tokenManager.verify_AToken(token)
-                if error_code == 0:
-                    userID = tokenManager.accessDict.get('userID', None)
-                    param_flag = CommonService.get_param_flag(data=[userID])
-                    if param_flag is True:
+                tko = TokenObject(token)
+                tko.valid()
+                response.lang = tko.lang
+                if tko.code == 0:
+                    userID = tko.userID()
+                    if userID is not None:
                         if operation == 'query':
                         if operation == 'query':
-                            return self.query(request_dict=request_dict, userID=userID)
+                            return self.query(request_dict, userID, response)
                         elif operation == 'add':
                         elif operation == 'add':
-                            return self.add(request_dict=request_dict, userID=userID)
+                            return self.add(request_dict, userID, response)
                         elif operation == 'update':
                         elif operation == 'update':
-                            return self.update(request_dict=request_dict, userID=userID)
+                            return self.update(request_dict, userID, response)
                         elif operation == 'delete':
                         elif operation == 'delete':
-                            return self.delete(request_dict=request_dict, userID=userID)
+                            return self.delete(request_dict, userID, response)
                         # 用户付费成功调用
                         # 用户付费成功调用
                         elif operation == 'addbyuser':
                         elif operation == 'addbyuser':
-                            return self.addbyuser(request_dict=request_dict, userID=userID)
+                            return self.addbyuser(request_dict, userID, response)
                         elif operation == 'querybyuser':
                         elif operation == 'querybyuser':
-                            return self.querybyuser(request_dict=request_dict, userID=userID)
+                            return self.querybyuser(request_dict, userID, response)
                         elif operation == 'updatebyuser':
                         elif operation == 'updatebyuser':
-                            return self.updatebyuser(request_dict=request_dict, userID=userID)
+                            return self.updatebyuser(request_dict, userID, response)
                         elif operation == 'updatestatusbyuser':
                         elif operation == 'updatestatusbyuser':
-                            return self.updatestatusbyuser(request_dict=request_dict, userID=userID)
-                    return ResponseJSON(444)
+                            return self.updatestatusbyuser(request_dict, userID, response)
+                    return response.json(444, 'userID,operation')
                 else:
                 else:
-                    return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                    return response.json(tko.code)
             else:
             else:
-                return ResponseJSON(311)
+                return response.json(311)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444, 'operation')
 
 
-    def add(self, request_dict, userID):
+    def add(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         if own_perm is True:
         if own_perm is True:
             uid = request_dict.get('uid', None)
             uid = request_dict.get('uid', None)
@@ -94,7 +95,7 @@ class DeviceMeal(View):
             if param_flag is True:
             if param_flag is True:
                 is_exist = Device_Meal.objects.filter(uid=uid, channel=channel)
                 is_exist = Device_Meal.objects.filter(uid=uid, channel=channel)
                 if is_exist.exists():
                 if is_exist.exists():
-                    return ResponseJSON(54)
+                    return response.json(54)
                 else:
                 else:
                     try:
                     try:
                         store_meal = Store_Meal.objects.get(id=rank)
                         store_meal = Store_Meal.objects.get(id=rank)
@@ -110,10 +111,10 @@ class DeviceMeal(View):
                         )
                         )
                         device_meal.save()
                         device_meal.save()
                     except Exception as e:
                     except Exception as e:
-                        return ResponseJSON(500, {'details': repr(e)})
+                        return response.json(500, {'details': repr(e)})
                     else:
                     else:
                         if device_meal.id:
                         if device_meal.id:
-                            return ResponseJSON(0, {'id': device_meal.id,
+                            return response.json(0, {'id': device_meal.id,
                                                     'status': device_meal.status,
                                                     'status': device_meal.status,
                                                     'uid': device_meal.uid,
                                                     'uid': device_meal.uid,
                                                     'rank': rank,
                                                     'rank': rank,
@@ -121,11 +122,11 @@ class DeviceMeal(View):
                                                     'add_time': str(device_meal.add_time),
                                                     'add_time': str(device_meal.add_time),
                                                     'update_time': str(device_meal.update_time),
                                                     'update_time': str(device_meal.update_time),
                                                     'end_time': str(device_meal.end_time)})
                                                     'end_time': str(device_meal.end_time)})
-            return ResponseJSON(444)
+            return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def query(self, request_dict, userID):
+    def query(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
@@ -136,21 +137,21 @@ class DeviceMeal(View):
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_dict = CommonService.query_set_to_dict(res)
+                    send_dict = CommonService.qs_to_dict(res)
                     for k, v in enumerate(send_dict["datas"]):
                     for k, v in enumerate(send_dict["datas"]):
                         for val in res:
                         for val in res:
                             if v['pk'] == val.id:
                             if v['pk'] == val.id:
                                 title = Store_Meal.objects.get(id=v['fields']['rank']).title
                                 title = Store_Meal.objects.get(id=v['fields']['rank']).title
                                 send_dict["datas"][k]['fields']['title'] = title
                                 send_dict["datas"][k]['fields']['title'] = title
                     send_dict['count'] = count
                     send_dict['count'] = count
-                    return ResponseJSON(0, send_dict)
-                return ResponseJSON(0)
+                    return response.json(0, send_dict)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def update(self, request_dict, userID):
+    def update(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             id = request_dict.get('id', None)
             id = request_dict.get('id', None)
@@ -158,7 +159,6 @@ class DeviceMeal(View):
             uid = request_dict.get('uid', None)
             uid = request_dict.get('uid', None)
             channel = request_dict.get('channel', None)
             channel = request_dict.get('channel', None)
             rank = request_dict.get('rank', None)
             rank = request_dict.get('rank', None)
-            # days = request_dict.get('days', None)
             param_flag = CommonService.get_param_flag(data=[status, uid, channel, rank, id])
             param_flag = CommonService.get_param_flag(data=[status, uid, channel, rank, id])
             if param_flag is True:
             if param_flag is True:
                 try:
                 try:
@@ -173,7 +173,7 @@ class DeviceMeal(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
                     if device_meal.id:
                     if device_meal.id:
                         device_meal.status = status
                         device_meal.status = status
@@ -182,15 +182,15 @@ class DeviceMeal(View):
                         device_meal.end_time = end_time
                         device_meal.end_time = end_time
                         device_meal.rank = store_meal
                         device_meal.rank = store_meal
                         device_meal.save()
                         device_meal.save()
-                        return ResponseJSON(0, {'update_id': device_meal.id,
+                        return response.json(0, {'update_id': device_meal.id,
                                                 'update_time': str(now_time),
                                                 'update_time': str(now_time),
                                                 'end_time': str(end_time)})
                                                 'end_time': str(end_time)})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def delete(self, request_dict, userID):
+    def delete(self, request_dict, userID,response):
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         if own_perm is True:
         if own_perm is True:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
@@ -202,15 +202,15 @@ class DeviceMeal(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def addbyuser(self, request_dict, userID):
+    def addbyuser(self, request_dict, userID, response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         rank = request_dict.get('rank', None)
         rank = request_dict.get('rank', None)
@@ -220,7 +220,7 @@ class DeviceMeal(View):
             if own_dev is True:
             if own_dev is True:
                 is_exist = Device_Meal.objects.filter(uid=uid, channel=channel)
                 is_exist = Device_Meal.objects.filter(uid=uid, channel=channel)
                 if is_exist.exists():
                 if is_exist.exists():
-                    return ResponseJSON(54)
+                    return response.json(54)
                 else:
                 else:
                     try:
                     try:
                         store_meal = Store_Meal.objects.get(id=rank)
                         store_meal = Store_Meal.objects.get(id=rank)
@@ -236,10 +236,10 @@ class DeviceMeal(View):
                         )
                         )
                         device_meal.save()
                         device_meal.save()
                     except Exception as e:
                     except Exception as e:
-                        return ResponseJSON(500, {'details': repr(e)})
+                        return response.json(500, {'details': repr(e)})
                     else:
                     else:
                         if device_meal.id:
                         if device_meal.id:
-                            return ResponseJSON(0,
+                            return response.json(0,
                                                 {
                                                 {
                                                     'id': device_meal.id,
                                                     'id': device_meal.id,
                                                     'status': device_meal.status,
                                                     'status': device_meal.status,
@@ -251,11 +251,11 @@ class DeviceMeal(View):
                                                     'end_time': str(device_meal.end_time),
                                                     'end_time': str(device_meal.end_time),
                                                 })
                                                 })
             else:
             else:
-                return ResponseJSON(14)
-        return ResponseJSON(444)
+                return response.json(14)
+        return response.json(444)
 
 
     # 查询设备是否开通
     # 查询设备是否开通
-    def querybyuser(self, request_dict, userID):
+    def querybyuser(self, request_dict, userID,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         param_flag = CommonService.get_param_flag(data=[uid, channel])
         param_flag = CommonService.get_param_flag(data=[uid, channel])
@@ -264,20 +264,20 @@ class DeviceMeal(View):
             if own_dev is True:
             if own_dev is True:
                 queryset = Device_Meal.objects.filter(uid=uid, channel=channel)
                 queryset = Device_Meal.objects.filter(uid=uid, channel=channel)
                 if queryset.exists():
                 if queryset.exists():
-                    send_dict = CommonService.query_set_to_dict(queryset)
+                    send_dict = CommonService.qs_to_dict(queryset)
                     for k, v in enumerate(send_dict["datas"]):
                     for k, v in enumerate(send_dict["datas"]):
                         for val in queryset:
                         for val in queryset:
                             if v['pk'] == val.id:
                             if v['pk'] == val.id:
                                 title = Store_Meal.objects.get(id=v['fields']['rank']).title
                                 title = Store_Meal.objects.get(id=v['fields']['rank']).title
                                 send_dict["datas"][k]['fields']['title'] = title
                                 send_dict["datas"][k]['fields']['title'] = title
-                    return ResponseJSON(0, send_dict)
-                return ResponseJSON(0)
+                    return response.json(0, send_dict)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(14)
+                return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def updatebyuser(self, request_dict, userID):
+    def updatebyuser(self, request_dict, userID,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         rank = request_dict.get('rank', None)
         rank = request_dict.get('rank', None)
@@ -297,7 +297,7 @@ class DeviceMeal(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
                     if device_meal.id:
                     if device_meal.id:
                         device_meal.uid = uid
                         device_meal.uid = uid
@@ -305,20 +305,19 @@ class DeviceMeal(View):
                         device_meal.end_time = end_time
                         device_meal.end_time = end_time
                         device_meal.rank = store_meal
                         device_meal.rank = store_meal
                         device_meal.save()
                         device_meal.save()
-                        return ResponseJSON(0, {'update_id': device_meal.id,
+                        return response.json(0, {'update_id': device_meal.id,
                                                 'update_time': str(now_time),
                                                 'update_time': str(now_time),
                                                 'end_time': str(end_time)})
                                                 'end_time': str(end_time)})
             else:
             else:
-                return ResponseJSON(14)
+                return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def updatestatusbyuser(self, request_dict, userID):
+    def updatestatusbyuser(self, request_dict, userID,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
-        param_flag = CommonService.get_param_flag(data=[uid, channel, id])
-        if param_flag is True:
+        if uid is not None and channel is not None:
             own_dev = ModelService.check_own_device(userID=userID, UID=uid)
             own_dev = ModelService.check_own_device(userID=userID, UID=uid)
             if own_dev is True:
             if own_dev is True:
                 try:
                 try:
@@ -326,15 +325,15 @@ class DeviceMeal(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
                     if device_meal.id:
                     if device_meal.id:
                         device_meal.status = status
                         device_meal.status = status
                         device_meal.save()
                         device_meal.save()
                         now_time = timezone.localtime(timezone.now())
                         now_time = timezone.localtime(timezone.now())
-                        return ResponseJSON(0, {'update_id': device_meal.id,
+                        return response.json(0, {'update_id': device_meal.id,
                                                 'update_time': str(now_time)})
                                                 'update_time': str(now_time)})
             else:
             else:
-                return ResponseJSON(14)
+                return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)

+ 71 - 69
Controller/EquipmentInfo.py

@@ -1,18 +1,16 @@
-from django.shortcuts import HttpResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Equipment_Info, Device_Info
 from Model.models import Equipment_Info, Device_Info
 import traceback
 import traceback
-from Service.ResponseService import ResponseJSON
-
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
 '''
 '''
 http://192.168.136.45:8077/equipment/info?token=test&devUid=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
 http://192.168.136.45:8077/equipment/info?token=test&devUid=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
 http://192.168.136.45:8077/equipment/info?token=test&operation=query&page=1&line=10
 http://192.168.136.45:8077/equipment/info?token=test&operation=query&page=1&line=10
-http://192.168.136.45:8077/equipment/info?token=test&operation      =delete&devUid=UKPAH63V23U4ZHEB111A&id=5&id=6&id=7
+http://192.168.136.45:8077/equipment/info?token=test&operation=delete&devUid=UKPAH63V23U4ZHEB111A&id=5&id=6&id=7
 http://192.168.136.40:8077/equipment/info?token=test&operation=update&devUid=UKPAH63V23U4ZHEB111A&id=3&id=4
 http://192.168.136.40:8077/equipment/info?token=test&operation=update&devUid=UKPAH63V23U4ZHEB111A&id=3&id=4
 http://192.168.136.45:8077/equipment/info?token=test&operation=queryByAdmin&page=1&line=10&userID_id=151547867345163613800138001
 http://192.168.136.45:8077/equipment/info?token=test&operation=queryByAdmin&page=1&line=10&userID_id=151547867345163613800138001
 http://192.168.136.45:8077/equipment/info?token=test&operation=deleteByAdmin&id=5&id=6&id=7
 http://192.168.136.45:8077/equipment/info?token=test&operation=deleteByAdmin&id=5&id=6&id=7
@@ -35,35 +33,38 @@ class EquipmentInfo(View):
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
+        response = ResponseObject()
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            from var_dump import var_dump
+            var_dump(tko.lang)
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 operation = request_dict.get('operation', None)
                 operation = request_dict.get('operation', None)
-                param_flag = CommonService.get_param_flag(data=[userID, operation])
-                if param_flag is True:
+                if userID is not None and operation is not None:
                     if operation == 'query':
                     if operation == 'query':
-                        return self.query_info(request_dict=request_dict, userID=userID)
+                        return self.query_info(request_dict, userID, response)
                     elif operation == 'add':
                     elif operation == 'add':
-                        return self.add_info(request_dict=request_dict, userID=userID)
+                        return self.add_info(request_dict, userID, response)
                     elif operation == 'update':
                     elif operation == 'update':
-                        return self.update_info(request_dict=request_dict, userID=userID)
+                        return self.update_info(request_dict, userID, response)
                     elif operation == 'delete':
                     elif operation == 'delete':
-                        return self.delete_info(request_dict=request_dict, userID=userID)
+                        return self.delete_info(request_dict, userID, response)
                     elif operation == 'findByTime':
                     elif operation == 'findByTime':
-                        return self.findByTime_info(request_dict=request_dict, userID=userID)
+                        return self.findByTime_info(request_dict, userID, response)
                     if operation == 'queryByAdmin':
                     if operation == 'queryByAdmin':
-                        return self.query_all_info(request_dict=request_dict, userID=userID)
+                        return self.query_all_info(request_dict, userID, response)
                     if operation == 'deleteByAdmin':
                     if operation == 'deleteByAdmin':
-                        return self.delete_by_admin(request_dict=request_dict, userID=userID)
-                return ResponseJSON(444)
+                        return self.delete_by_admin(request_dict, userID, response)
+                return response.json(444,'operation')
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def add_info(self, request_dict, userID):
+    def add_info(self, request_dict, userID,response):
         devUid = request_dict.get('devUid', None)
         devUid = request_dict.get('devUid', None)
         Channel = request_dict.get('Channel', None)
         Channel = request_dict.get('Channel', None)
         eventType = request_dict.get('eventType', None)
         eventType = request_dict.get('eventType', None)
@@ -79,11 +80,12 @@ class EquipmentInfo(View):
                 except Exception:
                 except Exception:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, errorInfo)
+                    return response.json(424, errorInfo)
                 else:
                 else:
                     if device_info.exists():
                     if device_info.exists():
                         try:
                         try:
                             equipment_info = Equipment_Info(
                             equipment_info = Equipment_Info(
+                                userID=userID,
                                 devUid=devUid,
                                 devUid=devUid,
                                 Channel=Channel,
                                 Channel=Channel,
                                 eventType=eventType,
                                 eventType=eventType,
@@ -98,10 +100,10 @@ class EquipmentInfo(View):
                         except Exception:
                         except Exception:
                             errorInfo = traceback.format_exc()
                             errorInfo = traceback.format_exc()
                             print(errorInfo)
                             print(errorInfo)
-                            return ResponseJSON(500, errorInfo)
+                            return response.json(500, errorInfo)
                         else:
                         else:
                             if equipment_info.id:
                             if equipment_info.id:
-                                return ResponseJSON(0, {'infoID': equipment_info.id,
+                                return response.json(0, {'infoID': equipment_info.id,
                                                         'devUid': devUid,
                                                         'devUid': devUid,
                                                         'Channel': Channel,
                                                         'Channel': Channel,
                                                         'alarm': alarm,
                                                         'alarm': alarm,
@@ -112,36 +114,36 @@ class EquipmentInfo(View):
                                                         'devNickName': equipment_info.devNickName,
                                                         'devNickName': equipment_info.devNickName,
                                                         'viewAccont': equipment_info.viewAccont})
                                                         'viewAccont': equipment_info.viewAccont})
                             else:
                             else:
-                                return ResponseJSON(500)
+                                return response.json(500)
                     else:
                     else:
-                        return ResponseJSON(14)
+                        return response.json(14)
             else:
             else:
-                return ResponseJSON(14)
-        return ResponseJSON(444)
+                return response.json(14)
+        return response.json(444)
 
 
-    def query_info(self, request_dict, userID):
+    def query_info(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         param_flag = CommonService.get_param_flag(data=[page, line])
         param_flag = CommonService.get_param_flag(data=[page, line])
         if param_flag is True:
         if param_flag is True:
-            try:
+            equipment_info_queryset = Equipment_Info.objects.filter(userID_id=userID)
+            if equipment_info_queryset.exists():
+                equipment_info_count = equipment_info_queryset.count()
+                equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
+                send_json = CommonService.query_set_to_dict(equipment_info_res)
+                send_json['count'] = equipment_info_count
+                return response.json(0, send_json)
+            else:
                 uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
                 uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
-            except Exception:
-                pass
-            if len(uid_list):
-                equipment_info_queryset = Equipment_Info.objects.filter(devUid__in=uid_list).order_by(
-                    '-id')
-                if equipment_info_queryset.exists():
-                    equipment_info_count = equipment_info_queryset.count()
-                    equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(equipment_info_res)
-                    send_json['count'] = equipment_info_count
-                    return ResponseJSON(0, send_json)
-            return ResponseJSON(0, {'datas': [], 'count': 0})
+                devNickName_list = Device_Info.objects.filter(userID_id=userID).values_list('NickName', flat=True)
+                if len(uid_list) and len(devNickName_list):
+                    Equipment_Info.objects.filter(devUid__in=uid_list, devNickName__in=devNickName_list).update(
+                        userID=userID)
+                return response.json(0, {'datas': [], 'count': 0})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def update_info(self, request_dict, userID):
+    def update_info(self, request_dict, userID, response):
         id_list = request_dict.getlist('id[]', None)
         id_list = request_dict.getlist('id[]', None)
         if id_list is None or len(id_list) < 1:
         if id_list is None or len(id_list) < 1:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
@@ -155,11 +157,11 @@ class EquipmentInfo(View):
                     if own_dev is True:
                     if own_dev is True:
                         count += 1
                         count += 1
                         eq.update(status=1)
                         eq.update(status=1)
-            return ResponseJSON(0,{'update_success': count})
+            return response.json(0,{'update_success': count})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def delete_info(self, request_dict, userID):
+    def delete_info(self, request_dict, userID, response):
         id_list = request_dict.getlist('id[]', None)
         id_list = request_dict.getlist('id[]', None)
         if id_list is None or len(id_list) < 1:
         if id_list is None or len(id_list) < 1:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
@@ -175,13 +177,13 @@ class EquipmentInfo(View):
             except Exception as e:
             except Exception as e:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print(errorInfo)
                 print(errorInfo)
-                return ResponseJSON(424,repr(e))
+                return response.json(424,repr(e))
             else:
             else:
-                return ResponseJSON(0)
+                return response.json(0)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def findByTime_info(self, request_dict, userID):
+    def findByTime_info(self, request_dict, userID,response):
         startTime = request_dict.get('startTime')
         startTime = request_dict.get('startTime')
         endTime = request_dict.get('endTime')
         endTime = request_dict.get('endTime')
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
@@ -190,20 +192,20 @@ class EquipmentInfo(View):
         if param_flag is True:
         if param_flag is True:
             uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
             uid_list = Device_Info.objects.filter(userID_id=userID).values_list('UID', flat=True)
             if len(uid_list):
             if len(uid_list):
-                equipment_info_queryset = Equipment_Info.objects.filter(devUid__in=uid_list,
+                equipment_info_queryset = Equipment_Info.objects.filter(userID_id=userID,
                                                                         eventTime__range=(startTime, endTime)).order_by(
                                                                         eventTime__range=(startTime, endTime)).order_by(
                     '-id')
                     '-id')
                 if equipment_info_queryset.exists():
                 if equipment_info_queryset.exists():
                     equipment_info_count = equipment_info_queryset.count()
                     equipment_info_count = equipment_info_queryset.count()
                     equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
                     equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(equipment_info_res)
+                    send_json = CommonService.qs_to_dict(equipment_info_res)
                     send_json['count'] = equipment_info_count
                     send_json['count'] = equipment_info_count
-                    return ResponseJSON(0,send_json)
-            return ResponseJSON(0,{'datas': [], 'count': 0})
+                    return response.json(0,send_json)
+            return response.json(0,{'datas': [], 'count': 0})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def query_all_info(self, request_dict, userID):
+    def query_all_info(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         userID_id = request_dict.get('userID_id', None)
         userID_id = request_dict.get('userID_id', None)
@@ -213,21 +215,21 @@ class EquipmentInfo(View):
             if check_perm is True:
             if check_perm is True:
                 uid_list = Device_Info.objects.filter(userID_id=userID_id).values_list('UID', flat=True)
                 uid_list = Device_Info.objects.filter(userID_id=userID_id).values_list('UID', flat=True)
                 if len(uid_list):
                 if len(uid_list):
-                    equipment_info_queryset = Equipment_Info.objects.filter(devUid__in=uid_list).order_by(
+                    equipment_info_queryset = Equipment_Info.objects.filter(userID_id=userID_id).order_by(
                         '-id')
                         '-id')
                     if equipment_info_queryset.exists():
                     if equipment_info_queryset.exists():
                         equipment_info_count = equipment_info_queryset.count()
                         equipment_info_count = equipment_info_queryset.count()
                         equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
                         equipment_info_res = equipment_info_queryset[(page - 1) * line:page * line]
-                        send_json = CommonService.query_set_to_dict(equipment_info_res)
+                        send_json = CommonService.qs_to_dict(equipment_info_res)
                         send_json['count'] = equipment_info_count
                         send_json['count'] = equipment_info_count
-                        return ResponseJSON(0,send_json)
-                return ResponseJSON(0,{'datas': [], 'count': 0})
+                        return response.json(0,send_json)
+                return response.json(0,{'datas': [], 'count': 0})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def delete_by_admin(self, request_dict, userID):
+    def delete_by_admin(self, request_dict, userID,response):
         id_list = request_dict.getlist('id', None)
         id_list = request_dict.getlist('id', None)
         param_flag = CommonService.get_param_flag(data=[id_list])
         param_flag = CommonService.get_param_flag(data=[id_list])
         if param_flag is True:
         if param_flag is True:
@@ -238,10 +240,10 @@ class EquipmentInfo(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424,{'details': repr(e)})
+                    return response.json(424,{'details': repr(e)})
                 else:
                 else:
-                    return ResponseJSON(0,{'delete_count': is_delete[0]})
+                    return response.json(0,{'delete_count': is_delete[0]})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)

+ 170 - 211
Controller/EquipmentManager.py

@@ -1,155 +1,136 @@
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from django.core import serializers
 from django.core import serializers
 import traceback
 import traceback
-from Service.ResponseService import *
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Model.models import Device_User, Device_Info
 from Model.models import Device_User, Device_Info
-from Service.TokenManager import JSONTokenManager
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
+import simplejson as json
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
 
 
 
 
-def queryUserEquipment(userID):
-    try:
-        deviceValid = Device_Info.objects.filter(userID_id = userID)
-    except Exception as e:
-        errorInfo = traceback.format_exc()
-        print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500, repr(e))
-    else:
-        if deviceValid:
-            sqlJSON = serializers.serialize('json', Device_Info.objects.filter(userID_id = userID))
-            sqlList = json.loads(sqlJSON)
-            sqlDict = dict(zip(["datas"], [sqlList]))
-            return ResponseFormal(0,sqlDict)
-        else:
-            UserValid = Device_User.objects.filter(userID=userID)
-            if UserValid:
-                return ResponseFormal(172)
-            else:
-                return ResponseFormal(113)
-
-def addNewUserEquipment(userID, deviceContent, bulk = False):
-    userIDValid = Device_User.objects.filter(userID = userID)
+def addNewUserEquipment(userID, deviceContent, response):
+    userIDValid = Device_User.objects.filter(userID=userID)
     if userIDValid:
     if userIDValid:
         try:
         try:
             try:
             try:
                 deviceData = json.loads(deviceContent)
                 deviceData = json.loads(deviceContent)
             except Exception as e:
             except Exception as e:
-                return ResponseFormal(803,repr(e))
+                return response.json(803, repr(e))
             else:
             else:
                 UID = deviceData.get('UID', None)
                 UID = deviceData.get('UID', None)
                 if UID != None:
                 if UID != None:
-                    #is_bind = Device_Info.objects.filter(UID = UID,isShare=False)
-                    #if is_bind:
-                        #return ResponseFormal(175)
-                    dValid = Device_Info.objects.filter(userID = userID, UID = UID)
+                    is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
+                    if is_bind:
+                        return response.json(175)
+                    dValid = Device_Info.objects.filter(userID=userID, UID=UID)
                     if dValid:
                     if dValid:
-                        return ResponseFormal(174)
+                        return response.json(174)
                     else:
                     else:
                         if 'NickName' in deviceData:
                         if 'NickName' in deviceData:
                             nValid = Device_Info.objects.filter(userID=userID, NickName=deviceData['NickName'])
                             nValid = Device_Info.objects.filter(userID=userID, NickName=deviceData['NickName'])
                             if nValid.exists():
                             if nValid.exists():
-                                return ResponseJSON(179)
-                        userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID, **deviceData)
+                                return response.json(179)
+                        userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
+                                                 **deviceData)
                         userDevice.save()
                         userDevice.save()
                 else:
                 else:
-                    return ResponseFormal(806)
+                    return response.json(806)
 
 
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('添加设备错误: %s ' % errorInfo)
             print('添加设备错误: %s ' % errorInfo)
-            return ResponseFormal(178,repr(e))
+            return response.json(178, repr(e))
         else:
         else:
             sqlJSON = serializers.serialize('json', [userDevice])
             sqlJSON = serializers.serialize('json', [userDevice])
             sqlList = json.loads(sqlJSON)
             sqlList = json.loads(sqlJSON)
-            sqlDict =dict(zip(["datas"], [sqlList]))
-            return ResponseFormal(0,sqlDict)
+            sqlDict = dict(zip(["datas"], [sqlList]))
+            return response.json(0, sqlDict)
     else:
     else:
-        return ResponseFormal(113)
+        return response.json(113)
 
 
 
 
-def delUserEquipment(userID, id):
+def delUserEquipment(userID, id, response):
     try:
     try:
-        deviceValid = Device_Info.objects.filter(userID_id = userID, id = id)
+        deviceValid = Device_Info.objects.filter(userID_id=userID, id=id)
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500, repr(e))
+        return response.json(500, repr(e))
     else:
     else:
         if deviceValid:
         if deviceValid:
             try:
             try:
-                Device_Info.objects.filter(userID_id = userID, id = id).delete()
+                Device_Info.objects.filter(userID_id=userID, id=id).delete()
             except Exception as e:
             except Exception as e:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print('删除数据库记录错误: %s' % errorInfo)
                 print('删除数据库记录错误: %s' % errorInfo)
-                return ResponseFormal(176,repr(e))
+                return response.json(176, repr(e))
             else:
             else:
-                return ResponseFormal(0)
+                return response.json(0)
         else:
         else:
-            UserValid = Device_User.objects.filter(userID = userID)
-            if UserValid:
-                return ResponseFormal(172)
+            UserValid = Device_User.objects.filter(userID=userID)
+            if UserValid.exists():
+                return response.json(172)
             else:
             else:
-                return ResponseFormal(113)
+                return response.json(113)
 
 
-def modifyUserEquipment(userID, deviceContent, id):
+
+def modifyUserEquipment(userID, deviceContent, id, response):
     try:
     try:
-        deviceValid = Device_Info.objects.filter(userID_id = userID, id = id)
+        deviceValid = Device_Info.objects.filter(userID_id=userID, id=id)
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500, repr(e))
+        return response.json(500, repr(e))
     else:
     else:
         if deviceValid:
         if deviceValid:
             deviceData = json.loads(deviceContent)
             deviceData = json.loads(deviceContent)
             try:
             try:
-                userDevice = Device_Info.objects.filter(userID_id = userID, id = id).update(**deviceData)
+                userDevice = Device_Info.objects.filter(userID_id=userID, id=id).update(**deviceData)
             except Exception as e:
             except Exception as e:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print('修改设备信息错误: %s ' % errorInfo)
                 print('修改设备信息错误: %s ' % errorInfo)
-                return ResponseFormal(177,repr(e))
+                return response.json(177, repr(e))
             else:
             else:
-                sqlJSON = serializers.serialize('json', Device_Info.objects.filter(userID_id = userID, id = id))
-                sqlList = json.loads(sqlJSON)
-                sqlDict = dict(zip(["datas"], [sqlList]))
-                return ResponseFormal(0,sqlDict)
+                qs = Device_Info.objects.filter(userID_id=userID, id=id)
+                res = CommonService.qs_to_dict(qs)
+                return response.json(0, res)
         else:
         else:
             UserValid = Device_User.objects.filter(userID=userID)
             UserValid = Device_User.objects.filter(userID=userID)
-            if UserValid:
-                return ResponseFormal(172)
+            if UserValid.exists():
+                return response.json(172)
             else:
             else:
-                return ResponseFormal(113)
+                return response.json(113)
 
 
-def showAllUserEquipment(userID):
 
 
+def showAllUserEquipment(userID, response):
     try:
     try:
-        userValid = Device_User.objects.filter(userID = userID).order_by('-data_joined')
+        userValid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500,repr(e))
+        return response.json(500, repr(e))
 
 
     else:
     else:
-        if userValid:
+        if userValid.exists():
             # own_permission = ModelService.check_permission(userID=userID,permID=30)
             # own_permission = ModelService.check_permission(userID=userID,permID=30)
             if userValid[0].is_superuser != 100 and userValid[0].is_superuser != 1:
             if userValid[0].is_superuser != 100 and userValid[0].is_superuser != 1:
-                return ResponseFormal(604)
+                return response.json(604)
             else:
             else:
-                sqlJSON = serializers.serialize('json', Device_Info.objects.all())#.order_by('-data_joined'))
-                sqlList = json.loads(sqlJSON)
-                print(sqlList, sqlJSON)
-                sqlDict = dict(zip(["datas"], [sqlList]))
-                return ResponseFormal(0,sqlDict)
+                qs = Device_Info.objects.all()
+                res = CommonService.qs_to_dict(qs)
+                return response.json(0, res)
         else:
         else:
-            return ResponseFormal(113)
+            return response.json(113)
+
 
 
-def showAllUserEquipmentPC(userID,fieldDict):
+def showAllUserEquipmentPC(userID, fieldDict, response):
     try:
     try:
         user_valid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
         user_valid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseJSON(500,repr(e))
+        return response.json(500, repr(e))
     else:
     else:
         if user_valid:
         if user_valid:
             own_permission = ModelService.check_permission(userID=userID, permID=30)
             own_permission = ModelService.check_permission(userID=userID, permID=30)
@@ -159,33 +140,27 @@ def showAllUserEquipmentPC(userID,fieldDict):
                 device_info_query_set = Device_Info.objects.all()
                 device_info_query_set = Device_Info.objects.all()
                 device_info_count = device_info_query_set.count()
                 device_info_count = device_info_query_set.count()
                 device_info_res = device_info_query_set[(page - 1) * line:page * line]
                 device_info_res = device_info_query_set[(page - 1) * line:page * line]
-                sqlDict = CommonService.query_set_to_dict(query_set=device_info_res)
+                sqlDict = CommonService.qs_to_dict(query_set=device_info_res)
                 sqlDict['count'] = device_info_count
                 sqlDict['count'] = device_info_count
-                return ResponseJSON(0, sqlDict)
+                return response.json(0, sqlDict)
             else:
             else:
-                return ResponseJSON(604)
+                return response.json(604)
         else:
         else:
-            return ResponseJSON(113)
+            return response.json(113)
 
 
-def getKwargs(data={}):
-    kwargs = {}
-    for (k, v) in data.items():
-        if v is not None and v != u'':
-            kwargs[k+'__icontains'] = v
-    return kwargs
 
 
-def findEquipmentInfo(content,type,fieldDict):
-    if type ==1:
-        Device_Info_QuerySet=Device_Info.objects.all()
-    if type==2:
-        searchCondition=content
-        kwargs = getKwargs(data=searchCondition)
-        Device_Info_QuerySet=Device_Info.objects.filter(**kwargs)
+def findEquipmentInfo(content, type, fieldDict):
+    if type == 1:
+        Device_Info_QuerySet = Device_Info.objects.all()
+    if type == 2:
+        searchCondition = content
+        kwargs = CommonService.get_kwargs(data=searchCondition)
+        Device_Info_QuerySet = Device_Info.objects.filter(**kwargs)
     page = int(fieldDict['page'])
     page = int(fieldDict['page'])
     line = int(fieldDict['line'])
     line = int(fieldDict['line'])
     device_info_count = Device_Info_QuerySet.count()
     device_info_count = Device_Info_QuerySet.count()
     res = Device_Info_QuerySet[(page - 1) * line:page * line]
     res = Device_Info_QuerySet[(page - 1) * line:page * line]
-    send_dict = CommonService.query_set_to_dict(query_set=res)
+    send_dict = CommonService.qs_to_dict(query_set=res)
     for k, v in enumerate(send_dict["datas"]):
     for k, v in enumerate(send_dict["datas"]):
         for val in res:
         for val in res:
             if v['pk'] == val.id:
             if v['pk'] == val.id:
@@ -195,6 +170,8 @@ def findEquipmentInfo(content,type,fieldDict):
                 send_dict["datas"][k]['fields']['primaryusername'] = primary
                 send_dict["datas"][k]['fields']['primaryusername'] = primary
     send_dict['count'] = device_info_count
     send_dict['count'] = device_info_count
     return send_dict
     return send_dict
+
+
 @csrf_exempt
 @csrf_exempt
 def queryUserEquipmentInterface(request, *callback_args,
 def queryUserEquipmentInterface(request, *callback_args,
                                 **callback_kwargs):
                                 **callback_kwargs):
@@ -205,56 +182,50 @@ def queryUserEquipmentInterface(request, *callback_args,
     :param callback_kwargs:
     :param callback_kwargs:
     :return:
     :return:
     '''
     '''
-
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         token = request.POST.get('token', None)
         token = request.POST.get('token', None)
-
-        if token is not None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
-                    response = HttpResponse(queryUserEquipment(userID))
-                    return response
-                else:
-                    return ResponseJSON(310)
-            else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
-        else:
-            return ResponseJSON(800)
-
     elif request.method == 'GET':
     elif request.method == 'GET':
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
         token = request.GET.get('token', None)
         token = request.GET.get('token', None)
-
-        if token is not None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                # userID = '151547899913020418607560093'
-
-                if userID:
-                    response = HttpResponse(queryUserEquipment(userID))
-                    return response
+    else:
+        return response.json(801)
+    if token is not None:
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            if userID is not None:
+                try:
+                    deviceValid = Device_Info.objects.filter(userID_id=userID)
+                except Exception as e:
+                    errorInfo = traceback.format_exc()
+                    print('查询数据库错误: %s' % errorInfo)
+                    return response.json(500, repr(e))
                 else:
                 else:
-                    return ResponseJSON(310)
-
+                    if deviceValid.exists():
+                        res = CommonService.qs_to_dict(deviceValid)
+                        return response.json(0, res)
+                    else:
+                        UserValid = Device_User.objects.filter(userID=userID)
+                        if UserValid.exists():
+                            return response.json(172)
+                        else:
+                            return response.json(113)
             else:
             else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
+                return response.json(310)
         else:
         else:
-            return ResponseJSON(800)
-
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(800)
+
 
 
 @csrf_exempt
 @csrf_exempt
 def addNewUserEquipmentInterface(request, *callback_args,
 def addNewUserEquipmentInterface(request, *callback_args,
                                  **callback_kwargs):
                                  **callback_kwargs):
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.POST
         request_dict = request.POST
@@ -262,29 +233,28 @@ def addNewUserEquipmentInterface(request, *callback_args,
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.GET
         request_dict = request.GET
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(801)
     token = request_dict.get('token', None)
     token = request_dict.get('token', None)
     deviceContent = request_dict.get('content', None)
     deviceContent = request_dict.get('content', None)
     if token is not None and deviceContent is not None:
     if token is not None and deviceContent is not None:
-        tM = JSONTokenManager()
-        error_code = tM.verify_AToken(token)
-        if error_code == 0:
-            userID = tM.accessDict.get('userID', None)
-            if userID:
-                response = HttpResponse(addNewUserEquipment(userID, deviceContent))
-                return response
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            if userID is not None:
+                return addNewUserEquipment(userID, deviceContent, response)
             else:
             else:
-                return ResponseJSON(310)
+                return response.json(310)
         else:
         else:
-            response = HttpResponse(tM.errorCodeInfo(error_code))
-            return response
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(800)
+        return response.json(444, 'token,content')
 
 
 
 
 @csrf_exempt
 @csrf_exempt
 def delUserEquipmentInterface(request, *callback_args,
 def delUserEquipmentInterface(request, *callback_args,
-                                 **callback_kwargs):
+                              **callback_kwargs):
     '''
     '''
     删除用户设备
     删除用户设备
     :param request:
     :param request:
@@ -292,51 +262,32 @@ def delUserEquipmentInterface(request, *callback_args,
     :param callback_kwargs: 表示关键字参数,dict类型
     :param callback_kwargs: 表示关键字参数,dict类型
     :return:
     :return:
     '''
     '''
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-
-        token = request.POST.get('token', None)
-        id = request.POST.get('id', None)
-
-        if token is not None and id is not None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
-                    response = HttpResponse(delUserEquipment(userID, id))
-                    return response
-                else:
-                    return ResponseJSON(310)
-            else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
-
-        else:
-            return ResponseJSON(800)
-
+        request_dict = request.POST
     elif request.method == 'GET':
     elif request.method == 'GET':
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
-        token = request.GET.get('token', None)
-        id = request.GET.get('id', None)
-
-        if token is not None and id is not None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
-                    response = HttpResponse(delUserEquipment(userID, id))
-                    return response
-                else:
-                    return ResponseJSON(310)
+        request_dict = request.GET
+    else:
+        return response.json(801)
+    token = request_dict.get('token', None)
+    id = request_dict.get('id', None)
+    if token is not None and id is not None:
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            if userID is not None:
+                return delUserEquipment(userID, id, response)
             else:
             else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
+                return response.json(310)
         else:
         else:
-            return ResponseJSON(800)
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(800)
+
 
 
 @csrf_exempt
 @csrf_exempt
 def modifyUserEquipmentInterface(request, *callback_args,
 def modifyUserEquipmentInterface(request, *callback_args,
@@ -348,6 +299,7 @@ def modifyUserEquipmentInterface(request, *callback_args,
     :param callback_kwargs:
     :param callback_kwargs:
     :return:
     :return:
     '''
     '''
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.POST
         request_dict = request.POST
@@ -358,20 +310,20 @@ def modifyUserEquipmentInterface(request, *callback_args,
     deviceContent = request_dict.get('content', None)
     deviceContent = request_dict.get('content', None)
     id = request_dict.get('id', None)
     id = request_dict.get('id', None)
     if token is not None and deviceContent is not None and id is not None:
     if token is not None and deviceContent is not None and id is not None:
-        tM = JSONTokenManager()
-        error_code = tM.verify_AToken(token)
-        if error_code == 0:
-            userID = tM.accessDict.get('userID', None)
-            if userID:
-                response = HttpResponse(modifyUserEquipment(userID, deviceContent, id))
-                return response
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            if userID is not None:
+                return modifyUserEquipment(userID, deviceContent, id, response)
             else:
             else:
-                return ResponseJSON(310)
+                return response.json(310)
         else:
         else:
-            response = HttpResponse(tM.errorCodeInfo(error_code))
-            return response
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(444)
+        return response.json(444, 'token,content,id')
+
 
 
 @csrf_exempt
 @csrf_exempt
 def showAllUserEquipmentInterface(request, *callback_args, **callback_kwargs):
 def showAllUserEquipmentInterface(request, *callback_args, **callback_kwargs):
@@ -383,48 +335,55 @@ def showAllUserEquipmentInterface(request, *callback_args, **callback_kwargs):
         fieldDict = request.GET
         fieldDict = request.GET
     token = request.POST.get('token', None)
     token = request.POST.get('token', None)
     type = request.POST.get('type', None)
     type = request.POST.get('type', None)
+    response = ResponseObject()
     if token != None:
     if token != None:
-        tM = JSONTokenManager()
-        error_code = tM.verify_AToken(token)
-        if error_code == 0:
-            userID = tM.accessDict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             if userID:
             if userID:
                 if type == 'PC':
                 if type == 'PC':
-                    return showAllUserEquipmentPC(userID, fieldDict)
+                    return showAllUserEquipmentPC(userID, fieldDict, response)
                 else:
                 else:
-                    return showAllUserEquipment(userID)
+                    return showAllUserEquipment(userID, response)
             else:
             else:
-                return ResponseJSON(310)
+                return response.json(310)
         else:
         else:
-            return HttpResponse(tM.errorCodeInfo(error_code))
-
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(800)
+        return response.json(800)
+
 
 
 @csrf_exempt
 @csrf_exempt
 def findEquipmentInfoInterface(request, *callback_args, **callback_kwargs):
 def findEquipmentInfoInterface(request, *callback_args, **callback_kwargs):
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
-        token = request.GET.get('token',None)
         fieldDict = request.GET
         fieldDict = request.GET
-        deviceContent = request.GET.get('content',None)
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-        token = request.POST.get('token', None)
         fieldDict = request.POST
         fieldDict = request.POST
-        deviceContent = request.POST.get('content', None)
+    deviceContent = fieldDict.get('content', None)
+    token = fieldDict.get('token', None)
+    response = ResponseObject()
 
 
     if token != None:
     if token != None:
-        tM = JSONTokenManager()
-        error_code = tM.verify_AToken(token)
-        if error_code == 0:
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
             if deviceContent:
             if deviceContent:
-                deviceContent=json.loads(deviceContent)
-                resultDict=findEquipmentInfo(content=deviceContent,type=2,fieldDict=fieldDict)
+                try:
+                    deviceContent = json.loads(deviceContent)
+                except Exception as e:
+                    print(repr(e))
+                    return response.json(10,repr(e))
+                else:
+                    resultDict = findEquipmentInfo(content=deviceContent, type=2, fieldDict=fieldDict)
             else:
             else:
-                resultDict=findEquipmentInfo(content='',type=1,fieldDict=fieldDict)
-            return ResponseJSON(0,resultDict)
+                resultDict = findEquipmentInfo(content='', type=1, fieldDict=fieldDict)
+            return response.json(0, resultDict)
         else:
         else:
-            return ResponseJSON(310)
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(800)
+        return response.json(444,'token')

+ 55 - 50
Controller/EquipmentOTA.py

@@ -1,14 +1,15 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Equipment_Version
 from Model.models import Equipment_Version
-from Ansjer.config import *
 from django.utils import timezone
 from django.utils import timezone
-import os
-from Service.ResponseService import *
+import os,simplejson as json
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Ansjer.settings import BASE_DIR
+
 '''
 '''
 http://192.168.136.45:8077/equipment/OTA?token=test&operation=query&page=1&line=10
 http://192.168.136.45:8077/equipment/OTA?token=test&operation=query&page=1&line=10
 http://192.168.136.45:8077/equipment/OTA?token=test&operation=find&page=1&line=10&content={}
 http://192.168.136.45:8077/equipment/OTA?token=test&operation=find&page=1&line=10&content={}
@@ -16,6 +17,7 @@ http://192.168.136.40:8077/equipment/OTA?eid=138001524641441203480138000&token=t
 http://192.168.136.40:8077/equipment/OTA?eid=138001524641441203480138000&token=test&operation=update&status=1
 http://192.168.136.40:8077/equipment/OTA?eid=138001524641441203480138000&token=test&operation=update&status=1
 '''
 '''
 
 
+
 class EquipmentOTA(View):
 class EquipmentOTA(View):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
@@ -31,56 +33,59 @@ class EquipmentOTA(View):
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
+        response = ResponseObject()
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
-                operation = request_dict.get('operation', None)
-                param_flag = CommonService.get_param_flag(data=[userID, operation])
-                if param_flag is True:
-                    if operation == 'delete':
-                        return self.delete(request_dict=request_dict, userID=userID)
-                    elif operation == 'query':
-                        return self.query(request_dict=request_dict, userID=userID)
-                    elif operation == 'find':
-                        return self.find(request_dict=request_dict, userID=userID)
-                    elif operation == 'update':
-                        return self.update(request_dict=request_dict, userID=userID)
-
-                return ResponseJSON(444)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
+                    operation = request_dict.get('operation', None)
+                    if operation is not None:
+                        if operation == 'delete':
+                            return self.delete(request_dict, userID, response)
+                        elif operation == 'query':
+                            return self.query(request_dict, userID, response)
+                        elif operation == 'find':
+                            return self.find(request_dict, userID, response)
+                        elif operation == 'update':
+                            return self.update(request_dict, userID, response)
+                    return response.json(444, 'operation')
+                else:
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def delete(self, request_dict, userID):
+    def delete(self, request_dict, userID,response):
         eid = request_dict.get('eid', None)
         eid = request_dict.get('eid', None)
         param_flag = CommonService.get_param_flag(data=[eid])
         param_flag = CommonService.get_param_flag(data=[eid])
         if param_flag is True:
         if param_flag is True:
-            own_permission = ModelService.check_permission(userID=userID,permID=230)
+            own_permission = ModelService.check_permission(userID=userID, permID=230)
             if own_permission is True:
             if own_permission is True:
                 ev = Equipment_Version.objects.filter(eid=eid)
                 ev = Equipment_Version.objects.filter(eid=eid)
                 if ev.exists():
                 if ev.exists():
                     try:
                     try:
-                        has_ev = EquipmentOTA.objects.filter(filePath = ev[0].filePath)
+                        has_ev = Equipment_Version.objects.filter(filePath=ev[0].filePath)
                         if has_ev.exists():
                         if has_ev.exists():
                             pass
                             pass
                         else:
                         else:
-                            filepath = os.path.join(BASE_DIR,ev[0].filePath)
+                            filepath = os.path.join(BASE_DIR, ev[0].filePath)
                             os.remove(filepath)
                             os.remove(filepath)
                     except Exception as e:
                     except Exception as e:
                         pass
                         pass
                     ev.delete()
                     ev.delete()
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
-        return ResponseJSON(444)
+                return response.json(404)
+        return response.json(444)
 
 
-    def query(self, request_dict,userID):
+    def query(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
-        param_flag = CommonService.get_param_flag(data=[page,line])
+        param_flag = CommonService.get_param_flag(data=[page, line])
         if param_flag is True:
         if param_flag is True:
             own_permission = ModelService.check_permission(userID=userID, permID=240)
             own_permission = ModelService.check_permission(userID=userID, permID=240)
             if own_permission is True:
             if own_permission is True:
@@ -88,20 +93,20 @@ class EquipmentOTA(View):
                 if equipment_version_queryset.exists():
                 if equipment_version_queryset.exists():
                     count = equipment_version_queryset.count()
                     count = equipment_version_queryset.count()
                     res = equipment_version_queryset[(page - 1) * line:page * line]
                     res = equipment_version_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0, send_json)
-                return ResponseJSON(0)
+                    return response.json(0, send_json)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def find(self, request_dict,userID):
+    def find(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         content = request_dict.get('content', None)
         content = request_dict.get('content', None)
-        param_flag = CommonService.get_param_flag(data=[page,line,content])
+        param_flag = CommonService.get_param_flag(data=[page, line, content])
         if param_flag is True:
         if param_flag is True:
             own_permission = ModelService.check_permission(userID=userID, permID=250)
             own_permission = ModelService.check_permission(userID=userID, permID=250)
             if own_permission is True:
             if own_permission is True:
@@ -111,17 +116,17 @@ class EquipmentOTA(View):
                 if equipment_version_queryset.exists():
                 if equipment_version_queryset.exists():
                     count = equipment_version_queryset.count()
                     count = equipment_version_queryset.count()
                     res = equipment_version_queryset[(page - 1) * line:page * line]
                     res = equipment_version_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0, send_json)
+                    return response.json(0, send_json)
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def update(self,request_dict,userID):
+    def update(self, request_dict, userID,response):
         eid = request_dict.get('eid', None)
         eid = request_dict.get('eid', None)
         param_flag = CommonService.get_param_flag(data=[eid])
         param_flag = CommonService.get_param_flag(data=[eid])
         if param_flag is True:
         if param_flag is True:
@@ -129,15 +134,15 @@ class EquipmentOTA(View):
             if own_permission is True:
             if own_permission is True:
                 ev = Equipment_Version.objects.filter(eid=eid)
                 ev = Equipment_Version.objects.filter(eid=eid)
                 if ev.exists():
                 if ev.exists():
-                    status = request_dict.get('status',None)
+                    status = request_dict.get('status', None)
                     try:
                     try:
                         update_time = timezone.localtime(timezone.now())
                         update_time = timezone.localtime(timezone.now())
-                        ev.update(status=status,update_time=update_time)
+                        ev.update(status=status, update_time=update_time)
                     except Exception as e:
                     except Exception as e:
                         print(repr(e))
                         print(repr(e))
                         pass
                         pass
-                    return ResponseJSON(0,{'update_time':str(update_time)})
+                    return response.json(0, {'update_time': str(update_time)})
             else:
             else:
-                return ResponseJSON(404)
-        return ResponseJSON(444)
+                return response.json(404)
+        return response.json(444)
 
 

+ 55 - 50
Controller/EquipmentSensor.py

@@ -1,13 +1,12 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.ResponseService import *
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Device_Info, Equipment_Sensor
 from Model.models import Device_Info, Equipment_Sensor
 import traceback
 import traceback
-
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
 '''
 '''
 增加,关联设备传感器:
 增加,关联设备传感器:
 params:{
 params:{
@@ -64,29 +63,35 @@ class EquipmentSensor(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
-                operation = request_dict.get('operation', None)
-                if operation == 'add':
-                    return self.add_sensor(request_dict=request_dict, userID=userID)
-                elif operation == 'delete':
-                    return self.delete_sensor(request_dict=request_dict, userID=userID)
-                elif operation == 'update':
-                    return self.update_sensor(userID=userID, request_dict=request_dict)
-                elif operation == 'query':
-                    return self.query_sensor(userID=userID,request_dict=request_dict)
-                elif operation == 'queryall':
-                    return self.admin_query_all_sensor(userID=userID,request_dict=request_dict)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
+                    operation = request_dict.get('operation', None)
+                    if operation == 'add':
+                        return self.add_sensor(request_dict, userID,response)
+                    elif operation == 'delete':
+                        return self.delete_sensor(request_dict, userID,response)
+                    elif operation == 'update':
+                        return self.update_sensor(request_dict, userID,response)
+                    elif operation == 'query':
+                        return self.query_sensor(request_dict, userID,response)
+                    elif operation == 'queryall':
+                        return self.admin_query_all_sensor(request_dict, userID,response)
+                else:
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
+
 
 
-    def add_sensor(self, userID, request_dict):
+    def add_sensor(self, request_dict,userID,response):
         # 设备PK
         # 设备PK
         did = request_dict.get('did', None)
         did = request_dict.get('did', None)
         name = request_dict.get('name', None)
         name = request_dict.get('name', None)
@@ -100,24 +105,24 @@ class EquipmentSensor(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print('database error: %s' % errorInfo)
                     print('database error: %s' % errorInfo)
-                    return ResponseJSON(424)
+                    return response.json(424)
                 else:
                 else:
                     if device_info:
                     if device_info:
                         equipment_sensor = Equipment_Sensor(name=name, status=status, type=type, uid=device_info.UID)
                         equipment_sensor = Equipment_Sensor(name=name, status=status, type=type, uid=device_info.UID)
                         equipment_sensor.save()
                         equipment_sensor.save()
                         if equipment_sensor.id:
                         if equipment_sensor.id:
-                            return ResponseJSON(0,
+                            return response.json(0,
                                                                              {'id': equipment_sensor.id,
                                                                              {'id': equipment_sensor.id,
                                                                                        'status': equipment_sensor.status,
                                                                                        'status': equipment_sensor.status,
                                                                                        'name': equipment_sensor.name,
                                                                                        'name': equipment_sensor.name,
                                                                                        'type': equipment_sensor.type})
                                                                                        'type': equipment_sensor.type})
                         else:
                         else:
-                            return ResponseJSON(4)
+                            return response.json(4)
             else:
             else:
-                return ResponseJSON(14)
-        return ResponseJSON(444)
+                return response.json(14)
+        return response.json(444)
 
 
-    def delete_sensor(self, request_dict,userID):
+    def delete_sensor(self, request_dict,userID,response):
         # deletelist
         # deletelist
         did = request_dict.get('did',None)
         did = request_dict.get('did',None)
         id_list = request_dict.getlist('id', None)
         id_list = request_dict.getlist('id', None)
@@ -130,17 +135,17 @@ class EquipmentSensor(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print('database error: %s' % errorInfo)
                     print('database error: %s' % errorInfo)
-                    return ResponseJSON(424)
+                    return response.json(424)
                 else:
                 else:
                     if device_info:
                     if device_info:
                         for id in id_list:
                         for id in id_list:
                             Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).delete()
                             Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).delete()
-                        return ResponseJSON(0)
+                        return response.json(0)
             else:
             else:
-                return ResponseJSON(14)
-        return ResponseJSON(444)
+                return response.json(14)
+        return response.json(444)
 
 
-    def update_sensor(self,request_dict,userID):
+    def update_sensor(self,request_dict,userID,response):
         id = request_dict.get('id', None)
         id = request_dict.get('id', None)
         did = request_dict.get('did',None)
         did = request_dict.get('did',None)
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
@@ -154,21 +159,21 @@ class EquipmentSensor(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print('database error: %s' % errorInfo)
                     print('database error: %s' % errorInfo)
-                    return ResponseJSON(424)
+                    return response.json(424)
                 else:
                 else:
                     is_update = Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).update(status=status,
                     is_update = Equipment_Sensor.objects.filter(id=id, uid=device_info.UID).update(status=status,
                                                                                                   name=name)
                                                                                                   name=name)
                     if is_update:
                     if is_update:
-                        return ResponseJSON(0, {'id': id, 'status': status,
+                        return response.json(0, {'id': id, 'status': status,
                                                                                            'name': name})
                                                                                            'name': name})
-                return ResponseJSON(4)
+                return response.json(4)
             else:
             else:
-                return ResponseJSON(14)
+                return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
 
 
-    def query_sensor(self,request_dict,userID):
+    def query_sensor(self,request_dict,userID,response):
         did = request_dict.get('did', None)
         did = request_dict.get('did', None)
         if did is not None:
         if did is not None:
             is_user = ModelService.check_user_own_device(userID=userID, deviceID=did)
             is_user = ModelService.check_user_own_device(userID=userID, deviceID=did)
@@ -179,19 +184,19 @@ class EquipmentSensor(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print('database error: %s' % errorInfo)
                     print('database error: %s' % errorInfo)
-                    return ResponseJSON(424)
+                    return response.json(424)
                 else:
                 else:
                     equipment_sensor_queryset = Equipment_Sensor.objects.filter(uid=device_info.UID)
                     equipment_sensor_queryset = Equipment_Sensor.objects.filter(uid=device_info.UID)
                     if equipment_sensor_queryset.exists():
                     if equipment_sensor_queryset.exists():
-                        send_json = CommonService.query_set_to_dict(equipment_sensor_queryset)
-                        return ResponseJSON(0, send_json)
+                        send_json = CommonService.qs_to_dict(equipment_sensor_queryset)
+                        return response.json(0, send_json)
                     else:
                     else:
-                        return ResponseJSON(0, {})
-            return ResponseJSON(14)
+                        return response.json(0, {})
+            return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def admin_query_all_sensor(self,request_dict,userID):
+    def admin_query_all_sensor(self,request_dict,userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         if userID is not None:
         if userID is not None:
@@ -201,13 +206,13 @@ class EquipmentSensor(View):
                 if equipment_sensor_queryset.exists():
                 if equipment_sensor_queryset.exists():
                     equipment_stream_count = equipment_sensor_queryset.count()
                     equipment_stream_count = equipment_sensor_queryset.count()
                     equipment_stream_res = equipment_sensor_queryset[(page - 1) * line:page * line]
                     equipment_stream_res = equipment_sensor_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(equipment_stream_res)
+                    send_json = CommonService.qs_to_dict(equipment_stream_res)
                     send_json['count'] = equipment_stream_count
                     send_json['count'] = equipment_stream_count
-                    return ResponseJSON(0, send_json)
+                    return response.json(0, send_json)
                 else:
                 else:
-                    return ResponseJSON(0, {})
-            return ResponseJSON(604)
+                    return response.json(0, {})
+            return response.json(604)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
 
 

+ 14 - 11
Controller/EquipmentStatus.py

@@ -15,7 +15,8 @@ from django.views.decorators.csrf import csrf_exempt
 from Model.models import Device_Info
 from Model.models import Device_Info
 from django.utils import timezone
 from django.utils import timezone
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-from Service.ResponseService import *
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
 '''
 '''
 http://192.168.136.45:8077/device/online?UID=C2887N9EBS87ZAT1111A
 http://192.168.136.45:8077/device/online?UID=C2887N9EBS87ZAT1111A
 http://192.168.136.45:8077/device/offline?UID=C2887N9EBS87ZAT1111A
 http://192.168.136.45:8077/device/offline?UID=C2887N9EBS87ZAT1111A
@@ -24,7 +25,8 @@ http://192.168.136.45:8077/device/updateIP?UID=C2887N9EBS87ZAT1111A?ip=190.9.194
 
 
 
 
 @csrf_exempt
 @csrf_exempt
-def EquipmentOnline(request, *callback_args, **callback_kwargs):
+def EquipmentOnline(request):
+    response = ResponseObject()
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         UID = request.GET.get('UID', None)
         UID = request.GET.get('UID', None)
@@ -38,13 +40,14 @@ def EquipmentOnline(request, *callback_args, **callback_kwargs):
             device_info.update(Online=True, update_time=now_time)
             device_info.update(Online=True, update_time=now_time)
         except Exception as e:
         except Exception as e:
             print(repr(e))
             print(repr(e))
-        return ResponseJSON(0)
+        return response.json(0)
     else:
     else:
-        return ResponseJSON(13)
+        return response.json(13)
 
 
 
 
 @csrf_exempt
 @csrf_exempt
-def EquipmentOffline(request, *callback_args, **callback_kwargs):
+def EquipmentOffline(request):
+    response = ResponseObject()
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         UID = request.GET.get('UID', None)
         UID = request.GET.get('UID', None)
@@ -57,13 +60,14 @@ def EquipmentOffline(request, *callback_args, **callback_kwargs):
             device_info.update(Online=False)
             device_info.update(Online=False)
         except Exception as e:
         except Exception as e:
             print(repr(e))
             print(repr(e))
-        return ResponseJSON(0)
+        return response.json(0)
     else:
     else:
-        return ResponseJSON(13)
+        return response.json(13)
 
 
 
 
 @csrf_exempt
 @csrf_exempt
-def updateIP(request, *callback_args, **callback_kwargs):
+def updateIP(request):
+    response = ResponseObject()
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         UID = request.GET.get('UID', None)
         UID = request.GET.get('UID', None)
@@ -76,11 +80,10 @@ def updateIP(request, *callback_args, **callback_kwargs):
     if device_info.exists():
     if device_info.exists():
         area = ''
         area = ''
         try:
         try:
-            # area = MiscellService.getArea(ip)
             area = CommonService.getAddr(ip=ip)
             area = CommonService.getAddr(ip=ip)
             device_info.update(ip=ip, area=area)
             device_info.update(ip=ip, area=area)
         except Exception as e:
         except Exception as e:
             print(repr(e))
             print(repr(e))
-        return ResponseJSON(0,{'area': area})
+        return response.json(0,{'area': area})
     else:
     else:
-        return ResponseJSON(13)
+        return response.json(13)

+ 54 - 49
Controller/FeedBackInfo.py

@@ -1,12 +1,13 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Model.models import Feedback_Info
 from Model.models import Feedback_Info
 from django.utils import timezone
 from django.utils import timezone
 import traceback
 import traceback
-from Service.ResponseService import *
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
 '''
 '''
 http://192.168.136.45:8077/feedbackInfo?operation=add&token=test&content=12341234
 http://192.168.136.45:8077/feedbackInfo?operation=add&token=test&content=12341234
 http://192.168.136.45:8077/feedbackInfo?operation=query&token=test&page=1&line=10
 http://192.168.136.45:8077/feedbackInfo?operation=query&token=test&page=1&line=10
@@ -34,36 +35,40 @@ class FeedBackInfo(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 operation = request_dict.get('operation', None)
                 operation = request_dict.get('operation', None)
-                param_flag = CommonService.get_param_flag(data=[userID, operation])
-                if param_flag is True:
+                if userID is not None:
                     if operation == 'query':
                     if operation == 'query':
-                        return self.query_info(request_dict=request_dict, userID=userID)
+                        return self.query_info(request_dict, userID,response)
                     elif operation == 'add':
                     elif operation == 'add':
-                        return self.add_info(request_dict=request_dict, userID=userID)
+                        return self.add_info(request_dict, userID,response)
                     elif operation == 'update':
                     elif operation == 'update':
-                        return self.update_info(request_dict=request_dict,userID=userID)
+                        return self.update_info(request_dict, userID,response)
                     elif operation == 'delete':
                     elif operation == 'delete':
-                        return self.delete_info(request_dict=request_dict, userID=userID)
+                        return self.delete_info(request_dict, userID,response)
                     elif operation == 'queryAll':
                     elif operation == 'queryAll':
-                        return self.query_all_info(request_dict=request_dict,userID=userID)
+                        return self.query_all_info(request_dict, userID,response)
                     elif operation == 'deleteByAdmin':
                     elif operation == 'deleteByAdmin':
-                        return self.delete_by_admin(request_dict=request_dict,userID=userID)
+                        return self.delete_by_admin(request_dict, userID,response)
                     elif operation == 'updateByAdmin':
                     elif operation == 'updateByAdmin':
-                        return self.update_by_admin(request_dict=request_dict,userID=userID)
-                return ResponseJSON(444)
+                        return self.update_by_admin(request_dict, userID,response)
+                    else:
+                        return response.json(444,'444')
+                else:
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def add_info(self, request_dict, userID):
+    def add_info(self, request_dict, userID,response):
         content = request_dict.get('content', None)
         content = request_dict.get('content', None)
         param_flag = CommonService.get_param_flag(data=[content])
         param_flag = CommonService.get_param_flag(data=[content])
         if param_flag is True:
         if param_flag is True:
@@ -76,13 +81,13 @@ class FeedBackInfo(View):
             except Exception:
             except Exception:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print(errorInfo)
                 print(errorInfo)
-                return ResponseJSON(424, {'details': errorInfo})
+                return response.json(424, {'details': errorInfo})
             else:
             else:
                 print(type(feedback_info.add_time))
                 print(type(feedback_info.add_time))
-                return ResponseJSON(0,{'id':feedback_info.id})
-        return ResponseJSON(444)
+                return response.json(0,{'id':feedback_info.id})
+        return response.json(444)
 
 
-    def query_info(self, request_dict, userID):
+    def query_info(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         param_flag = CommonService.get_param_flag(data=[page, line])
         param_flag = CommonService.get_param_flag(data=[page, line])
@@ -91,14 +96,14 @@ class FeedBackInfo(View):
             if feedback_info_queryset.exists():
             if feedback_info_queryset.exists():
                 count = feedback_info_queryset.count()
                 count = feedback_info_queryset.count()
                 res = feedback_info_queryset[(page - 1) * line:page * line]
                 res = feedback_info_queryset[(page - 1) * line:page * line]
-                send_json = CommonService.query_set_to_dict(res)
+                send_json = CommonService.qs_to_dict(res)
                 send_json['count'] = count
                 send_json['count'] = count
-                return ResponseJSON(0, send_json)
-            return ResponseJSON(0, {'datas': [], 'count': 0})
+                return response.json(0, send_json)
+            return response.json(0, {'datas': [], 'count': 0})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def update_info(self, request_dict, userID):
+    def update_info(self, request_dict, userID,response):
         content = request_dict.get('content', None)
         content = request_dict.get('content', None)
         id = request_dict.get('id',None)
         id = request_dict.get('id',None)
 
 
@@ -109,24 +114,24 @@ class FeedBackInfo(View):
                 feedback_info.content = content
                 feedback_info.content = content
                 feedback_info.save()
                 feedback_info.save()
             except Exception as e:
             except Exception as e:
-                return ResponseJSON(302, {'details': repr(e)})
+                return response.json(302, {'details': repr(e)})
             else:
             else:
                 now_time = timezone.localtime(timezone.now())
                 now_time = timezone.localtime(timezone.now())
-                return ResponseJSON(0, {'update_success': 1,
+                return response.json(0, {'update_success': 1,
                                                                                    'update_time': str(now_time)})
                                                                                    'update_time': str(now_time)})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def delete_info(self, request_dict, userID):
+    def delete_info(self, request_dict, userID,response):
         id_list = request_dict.getlist('id',None)
         id_list = request_dict.getlist('id',None)
         param_flag = CommonService.get_param_flag(data=[id_list])
         param_flag = CommonService.get_param_flag(data=[id_list])
         if param_flag is True:
         if param_flag is True:
             is_delete = Feedback_Info.objects.filter(id__in=id_list, userID=userID).delete()
             is_delete = Feedback_Info.objects.filter(id__in=id_list, userID=userID).delete()
-            return ResponseJSON(0,{'delete_count':is_delete[0]})
+            return response.json(0,{'delete_count':is_delete[0]})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def query_all_info(self, request_dict, userID):
+    def query_all_info(self, request_dict, userID,response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         order = request_dict.get('order','-id')
         order = request_dict.get('order','-id')
@@ -144,32 +149,32 @@ class FeedBackInfo(View):
                 if feedback_info_queryset.exists():
                 if feedback_info_queryset.exists():
                     count = feedback_info_queryset.count()
                     count = feedback_info_queryset.count()
                     res = feedback_info_queryset[(page - 1) * line:page * line]
                     res = feedback_info_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     for k, v in enumerate(send_json["datas"]):
                     for k, v in enumerate(send_json["datas"]):
                         username = ModelService.get_user_name(userID=send_json["datas"][k]['fields']['userID'])
                         username = ModelService.get_user_name(userID=send_json["datas"][k]['fields']['userID'])
                         send_json["datas"][k]['fields']['username']=username
                         send_json["datas"][k]['fields']['username']=username
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0, send_json)
-                return ResponseJSON(0, {'datas': [], 'count': 0})
+                    return response.json(0, send_json)
+                return response.json(0, {'datas': [], 'count': 0})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def delete_by_admin(self, request_dict, userID):
+    def delete_by_admin(self, request_dict, userID,response):
         id_list = request_dict.getlist('id', None)
         id_list = request_dict.getlist('id', None)
         param_flag = CommonService.get_param_flag(data=[id_list])
         param_flag = CommonService.get_param_flag(data=[id_list])
         if param_flag is True:
         if param_flag is True:
             check_perm = ModelService.check_permission(userID=userID, permID=10)
             check_perm = ModelService.check_permission(userID=userID, permID=10)
             if check_perm is True:
             if check_perm is True:
                 is_delete = Feedback_Info.objects.filter(id__in=id_list).delete()
                 is_delete = Feedback_Info.objects.filter(id__in=id_list).delete()
-                return ResponseJSON(0, {'delete_count': is_delete[0]})
+                return response.json(0, {'delete_count': is_delete[0]})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def update_by_admin(self, request_dict, userID):
+    def update_by_admin(self, request_dict, userID,response):
         id = request_dict.get('id',None)
         id = request_dict.get('id',None)
         status = request_dict.get('status',None)
         status = request_dict.get('status',None)
         param_flag = CommonService.get_param_flag(data=[id, status])
         param_flag = CommonService.get_param_flag(data=[id, status])
@@ -181,11 +186,11 @@ class FeedBackInfo(View):
                     feedback_info.status = status
                     feedback_info.status = status
                     feedback_info.save()
                     feedback_info.save()
                 except Exception as e:
                 except Exception as e:
-                    return ResponseJSON(302, {'details': repr(e)})
+                    return response.json(302, {'details': repr(e)})
                 else:
                 else:
                     now_time = timezone.localtime(timezone.now())
                     now_time = timezone.localtime(timezone.now())
-                    return ResponseJSON(0, {'update_id': feedback_info.id,'update_time':str(now_time)})
+                    return response.json(0, {'update_id': feedback_info.id,'update_time':str(now_time)})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)

+ 94 - 91
Controller/HlsManage.py

@@ -14,14 +14,15 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Model.models import Device_Meal
 from Model.models import Device_Meal
 from Object.AWS.S3ClassObject import S3ClassObject
 from Object.AWS.S3ClassObject import S3ClassObject
 from Object.AWS.CloudfrontSignUrl import CloudfrontSignUrl
 from Object.AWS.CloudfrontSignUrl import CloudfrontSignUrl
 from Object.encryHlsVodUrl import getSignUrl
 from Object.encryHlsVodUrl import getSignUrl
 from Object.m3u8generate import PlaylistGenerator
 from Object.m3u8generate import PlaylistGenerator
-from Service.ResponseService import *
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+from django.http import HttpResponse
 '''
 '''
 设备端
 设备端
 http://13.56.215.252:82/HlsManager?operation=signPutObj&key=555666.mp4&uid=L59KVYDAEPHR1T6M111A&channel=0
 http://13.56.215.252:82/HlsManager?operation=signPutObj&key=555666.mp4&uid=L59KVYDAEPHR1T6M111A&channel=0
@@ -47,26 +48,26 @@ class HlsManage(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
         operation = request_dict.get('operation', None)
         operation = request_dict.get('operation', None)
-        if operation is not None:
-            if operation == 'signPutObj':
-                return self.sign_put_obj(request_dict=request_dict)
-            elif operation == 'signPostObj':
-                return self.sign_post_obj(request_dict=request_dict)
-            elif operation == 'getHlsVod':
-                return self.get_hls_vod(request_dict=request_dict)
-            elif operation == 'getAllTs':
-                return self.get_all_ts(request_dict=request_dict)
-            elif operation == 'getVodUrl':
-                return self.get_vod_url(request_dict=request_dict)
-        return ResponseJSON(444)
+        if operation == 'signPutObj':
+            return self.sign_put_obj(request_dict,response)
+        elif operation == 'signPostObj':
+            return self.sign_post_obj(request_dict,response)
+        elif operation == 'getHlsVod':
+            return self.get_hls_vod(request_dict,response)
+        elif operation == 'getAllTs':
+            return self.get_all_ts(request_dict,response)
+        elif operation == 'getVodUrl':
+            return self.get_vod_url(request_dict,response)
+        else:
+            return response.json(444, 'operation')
 
 
-    def sign_put_obj(self, request_dict):
+    def sign_put_obj(self, request_dict,response):
         key = request_dict.get('key', None)
         key = request_dict.get('key', None)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
-        param_flag = CommonService.get_param_flag(data=[key, uid, channel])
-        if param_flag is True:
+        if key is not None and uid is not None and channel is not None:
             device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
             device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
             if device_meal_queryset.exists():
             if device_meal_queryset.exists():
                 path = uid + '_' + channel + '/' + key
                 path = uid + '_' + channel + '/' + key
@@ -79,20 +80,19 @@ class HlsManage(View):
                 s3 = S3ClassObject()
                 s3 = S3ClassObject()
                 sign_url = s3.sign_put_object(key=path, bucket_meal=bucket_meal[meal_id])
                 sign_url = s3.sign_put_object(key=path, bucket_meal=bucket_meal[meal_id])
                 if sign_url is not False:
                 if sign_url is not False:
-                    return ResponseJSON(0, {'url': sign_url})
+                    return (0, {'url': sign_url})
                 else:
                 else:
-                    return ResponseJSON(48)
+                    return response.json(48)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444,'key, uid, channel')
 
 
-    def sign_post_obj(self, request_dict):
+    def sign_post_obj(self, request_dict,response):
         key = request_dict.get('key', None)
         key = request_dict.get('key', None)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
-        param_flag = CommonService.get_param_flag(data=[key, uid, channel])
-        if param_flag is True:
+        if key is not None and uid is not None and channel is not None:
             device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
             device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
             if device_meal_queryset.exists():
             if device_meal_queryset.exists():
                 path = uid + '_' + channel + '/' + key
                 path = uid + '_' + channel + '/' + key
@@ -105,62 +105,66 @@ class HlsManage(View):
                 s3 = S3ClassObject()
                 s3 = S3ClassObject()
                 data = s3.sign_post_object(key=path, bucket_meal=bucket_meal[meal_id])
                 data = s3.sign_post_object(key=path, bucket_meal=bucket_meal[meal_id])
                 if data is not False:
                 if data is not False:
-                    return ResponseJSON(0, {'url': data})
+                    return response.json(0, {'url': data})
                 else:
                 else:
-                    return ResponseJSON(48)
+                    return response.json(48)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444,'key, uid, channel')
 
 
-    def get_all_ts(self, request_dict):
+    def get_all_ts(self, request_dict,response):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                uid = request_dict.get('uid', None)
-                channel = request_dict.get('channel', None)
-                userID = tokenManager.accessDict.get('userID', None)
-                param_flag = CommonService.get_param_flag(data=[userID, uid, channel])
-                if param_flag is True:
-                    own_permission = ModelService.check_permission(userID=userID, permID=30)
-                    own_device = ModelService.check_own_device(userID=userID, UID=uid)
-                    if own_permission is True or own_device is True:
-                        device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
-                        if device_meal_queryset.exists():
-                            meal_id = device_meal_queryset[0].rank_id
-                            bucket_meal = {
-                                1: 'ansjer.meal.1',  # 7
-                                2: 'ansjer.meal.2',  # 30
-                            }
-                            s3 = S3ClassObject()
-                            data = s3.get_prefix_obj(prefix=uid + '_' + channel + '/', bucket=bucket_meal[meal_id])
-                            # return ResponseJSON(0, {'files': data,'bk':bucket_meal[meal_id]})
-                            return ResponseJSON(0, {'files': data})
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
+                    uid = request_dict.get('uid', None)
+                    channel = request_dict.get('channel', None)
+                    if uid is not None and channel is not None:
+                        own_permission = ModelService.check_permission(userID=userID, permID=30)
+                        own_device = ModelService.check_own_device(userID=userID, UID=uid)
+                        if own_permission is True or own_device is True:
+                            device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
+                            if device_meal_queryset.exists():
+                                meal_id = device_meal_queryset[0].rank_id
+                                bucket_meal = {
+                                    1: 'ansjer.meal.1',  # 7
+                                    2: 'ansjer.meal.2',  # 30
+                                }
+                                s3 = S3ClassObject()
+                                data = s3.get_prefix_obj(prefix=uid + '_' + channel + '/', bucket=bucket_meal[meal_id])
+                                # return response.json(0, {'files': data,'bk':bucket_meal[meal_id]})
+                                return response.json(0, {'files': data})
+                            else:
+                                return response.json(444)
                         else:
                         else:
-                            return ResponseJSON(444)
+                            return response.json(404)
                     else:
                     else:
-                        return ResponseJSON(404)
+                        return response.json(444,'uid,channel')
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def get_hls_vod(self, request_dict):
+    def get_hls_vod(self, request_dict,response):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                key = request_dict.get('key', None)
-                uid = request_dict.get('uid', None)
-                channel = request_dict.get('channel', None)
-                userID = tokenManager.accessDict.get('userID', None)
-                param_flag = CommonService.get_param_flag(data=[userID, key, uid, channel])
-                if param_flag is True:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                
+                if userID is not None:
+                    key = request_dict.get('key', None)
+                    uid = request_dict.get('uid', None)
+                    channel = request_dict.get('channel', None)
                     own_device = ModelService.check_own_device(userID=userID, UID=uid)
                     own_device = ModelService.check_own_device(userID=userID, UID=uid)
                     if own_device is True:
                     if own_device is True:
                         device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
                         device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
@@ -168,10 +172,9 @@ class HlsManage(View):
                             meal_id = device_meal_queryset[0].rank_id
                             meal_id = device_meal_queryset[0].rank_id
                             cf_domain = {
                             cf_domain = {
                                 1: 'http://d3om3d8c0l14oc.cloudfront.net/',
                                 1: 'http://d3om3d8c0l14oc.cloudfront.net/',
-                                2:'http://d4neaolnu8h83.cloudfront.net/',
+                                2: 'http://d4neaolnu8h83.cloudfront.net/',
                             }
                             }
-                            url = cf_domain[meal_id]+uid + '_' + channel + '/' + key
-                            # url = 'http://d3om3d8c0l14oc.cloudfront.net/'+uid + '_' + channel + '/' + key
+                            url = cf_domain[meal_id] + uid + '_' + channel + '/' + key
                             sign_url = CloudfrontSignUrl(url=url)
                             sign_url = CloudfrontSignUrl(url=url)
                             playlist_entries = [
                             playlist_entries = [
                                 {
                                 {
@@ -180,36 +183,36 @@ class HlsManage(View):
                                 }
                                 }
                             ]
                             ]
                             playlist = PlaylistGenerator(playlist_entries).generate()
                             playlist = PlaylistGenerator(playlist_entries).generate()
-                            response = HttpResponse(content_type='application/force-download',content=playlist)
-                            response['Content-Disposition'] = 'attachment; filename='+key+'.m3u8'
+                            response = HttpResponse(content_type='application/force-download', content=playlist)
+                            response['Content-Disposition'] = 'attachment; filename=' + key + '.m3u8'
                             # response['X-Sendfile'] = playlist
                             # response['X-Sendfile'] = playlist
-                            # return ResponseJSON(404)
+                            # return response.json(404)
                             return response
                             return response
                             # return HttpResponse(playlist)
                             # return HttpResponse(playlist)
                         else:
                         else:
-                            return ResponseJSON(0)
+                            return response.json(0)
                     else:
                     else:
-                        return ResponseJSON(15)
+                        return response.json(15)
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
-
+            return response.json(311)
+        
     # mp4
     # mp4
-    def get_vod_url(self, request_dict):
+    def get_vod_url(self, request_dict,response):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 key = request_dict.get('key', None)
                 key = request_dict.get('key', None)
                 uid = request_dict.get('uid', None)
                 uid = request_dict.get('uid', None)
                 channel = request_dict.get('channel', None)
                 channel = request_dict.get('channel', None)
-                userID = tokenManager.accessDict.get('userID', None)
-                param_flag = CommonService.get_param_flag(data=[userID, key, uid, channel])
-                if param_flag is True:
+                if userID is not None:
                     own_device = ModelService.check_own_device(userID=userID, UID=uid)
                     own_device = ModelService.check_own_device(userID=userID, UID=uid)
                     if own_device is True:
                     if own_device is True:
                         device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
                         device_meal_queryset = Device_Meal.objects.filter(uid=uid, channel=channel, status=1)
@@ -222,17 +225,17 @@ class HlsManage(View):
                             bk = bucket_meal[meal_id]
                             bk = bucket_meal[meal_id]
                             path = '/'+bk+'/'+uid+'_'+channel+'/'+key
                             path = '/'+bk+'/'+uid+'_'+channel+'/'+key
                             signUrl = getSignUrl(path=path)
                             signUrl = getSignUrl(path=path)
-                            return ResponseJSON(0,{'signUrl':signUrl})
+                            return response.json(0,{'signUrl':signUrl})
                         else:
                         else:
-                            return ResponseJSON(0)
+                            return response.json(0)
                     else:
                     else:
-                        return ResponseJSON(15)
+                        return response.json(15)
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
 
 
 
 

+ 30 - 26
Controller/LogAccess.py

@@ -11,11 +11,12 @@
 @file: LogAccess.py
 @file: LogAccess.py
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Object.mongodb import mongodb
 from Object.mongodb import mongodb
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.ResponseService import *
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+
 
 
 @csrf_exempt
 @csrf_exempt
 def LogAccess(request):
 def LogAccess(request):
@@ -29,32 +30,35 @@ def LogAccess(request):
         starttime = request.GET.get('starttime', None)
         starttime = request.GET.get('starttime', None)
         # 结束时间
         # 结束时间
         endtime = request.GET.get('endtime', None)
         endtime = request.GET.get('endtime', None)
+        response = ResponseObject()
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
-                param_flag = CommonService.get_param_flag(data=[userID, page, line])
-                if param_flag is True:
-                    own_per = ModelService.check_permission(userID=userID, permID=30)
-                    if own_per is True:
-                        query = {}
-                        if starttime is not None and starttime != '' and endtime is not None and endtime != '':
-                            query['time'] = {'$gte': int(starttime),'$lte': int(endtime)}
-                        elif starttime is not None and starttime != '':
-                            query['time'] = {'$gte': int(starttime)}
-                        elif endtime is not None and endtime != '':
-                            query['time'] = {'$lte': int(endtime)}
-                        # var_dump(query)
-                        col = "log_access"
-                        mdb = mongodb()
-                        qs = mdb.findAll(col=col, page=int(page), line=int(line), query=query)
-                        return ResponseJSON(0,qs)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
+                    if page is not None and line is not None:
+                        own_per = ModelService.check_permission(userID=userID, permID=30)
+                        if own_per is True:
+                            query = {}
+                            if starttime is not None and starttime != '' and endtime is not None and endtime != '':
+                                query['time'] = {'$gte': int(starttime), '$lte': int(endtime)}
+                            elif starttime is not None and starttime != '':
+                                query['time'] = {'$gte': int(starttime)}
+                            elif endtime is not None and endtime != '':
+                                query['time'] = {'$lte': int(endtime)}
+                            col = "log_access"
+                            mdb = mongodb()
+                            qs = mdb.findAll(col=col, page=int(page), line=int(line), query=query)
+                            return response.json(0, qs)
+                        else:
+                            return response.json(404)
                     else:
                     else:
-                        return ResponseJSON(404)
+                        return response.json(444,'page,line')
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(310)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)

+ 39 - 83
Controller/LogManager.py

@@ -4,10 +4,10 @@ from django.views.generic import TemplateView
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 import Ansjer.settings as api_settings
 import Ansjer.settings as api_settings
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
-import time
-from Service.ResponseService import *
-from Ansjer.config import *
-from Service.TokenManager import JSONTokenManager
+import time,os
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Ansjer.settings import BASE_DIR
 
 
 
 
 def StatisticsData(request):
 def StatisticsData(request):
@@ -113,6 +113,7 @@ def StatisticsData(request):
     print('HTTP_USER_AGENT', request.META.get('HTTP_USER_AGENT', 'unknown'))
     print('HTTP_USER_AGENT', request.META.get('HTTP_USER_AGENT', 'unknown'))
     print('HTTP_AUTHORIZATION', request.META.get('HTTP_AUTHORIZATION', b'unknown'))
     print('HTTP_AUTHORIZATION', request.META.get('HTTP_AUTHORIZATION', b'unknown'))
 
 
+
 class HelpView(TemplateView):
 class HelpView(TemplateView):
     '''
     '''
     帮助说明,包括版本信息,帮助文件等
     帮助说明,包括版本信息,帮助文件等
@@ -133,48 +134,42 @@ class HelpView(TemplateView):
         return self.getRequestInfo(reInfoType,token)
         return self.getRequestInfo(reInfoType,token)
 
 
     def getRequestInfo(self, reInfoType,token):
     def getRequestInfo(self, reInfoType,token):
+        response = ResponseObject()
         if reInfoType is not None and token is not None:
         if reInfoType is not None and token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 own_permission = ModelService.check_permission(userID=userID, permID=30)
                 own_permission = ModelService.check_permission(userID=userID, permID=30)
                 if own_permission is True:
                 if own_permission is True:
-                    vInfo = versionInfo()
                     if reInfoType == 'version':
                     if reInfoType == 'version':
-                        response = HttpResponse(vInfo.readInfo())
-                        return response
+                        return self.readInfo(response)
                     elif reInfoType == 'requirements':
                     elif reInfoType == 'requirements':
-                        response = HttpResponse(vInfo.requirementsInfo())
-                        return response
+                        return self.requirementsInfo(response)
                     elif reInfoType == 'helpfile':
                     elif reInfoType == 'helpfile':
-                        response = vInfo.getHelpCHM()
-                        return response
+                        return self.getHelpCHM(response)
                     else:
                     else:
-                        return ResponseJSON(801)
+                        return response.json(801)
                 else:
                 else:
-                    return ResponseJSON(404)
+                    return response.json(404)
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(800)
-
-class versionInfo:
-    def __init__(self):
-        return
+            return response.json(800,'reInfoType','reInfoType')
 
 
-    def readInfo(self):
+    def readInfo(self,response):
         verfilePath = '/'.join((api_settings.BASE_DIR, 'static/Help/')).replace('\\', '/') + 'version.txt'
         verfilePath = '/'.join((api_settings.BASE_DIR, 'static/Help/')).replace('\\', '/') + 'version.txt'
         if os.path.isfile(verfilePath):
         if os.path.isfile(verfilePath):
             file = open(verfilePath, encoding='utf-8')
             file = open(verfilePath, encoding='utf-8')
             versionStr = ''
             versionStr = ''
             for line in file:
             for line in file:
                 versionStr += line
                 versionStr += line
-            return ResponseFormal(0,{'versioninfo':versionStr})
+            return response.json(0,{'versioninfo':versionStr})
         else:
         else:
-            return ResponseFormal(701)
+            return response.json(701)
 
 
-    def requirementsInfo(self):
+    def requirementsInfo(self,response):
         requirementsPath = '/'.join((api_settings.BASE_DIR, 'requirements.txt')).replace('\\', '/')
         requirementsPath = '/'.join((api_settings.BASE_DIR, 'requirements.txt')).replace('\\', '/')
         print(requirementsPath)
         print(requirementsPath)
         if os.path.isfile(requirementsPath):
         if os.path.isfile(requirementsPath):
@@ -182,68 +177,28 @@ class versionInfo:
             requirementsStr = ''
             requirementsStr = ''
             for line in file:
             for line in file:
                 requirementsStr += line
                 requirementsStr += line
-            return ResponseFormal(0,{'requirementsinfo': requirementsStr})
+            return response.json(0,{'requirementsinfo': requirementsStr})
         else:
         else:
-            return ResponseFormal(701)
+            return response.json(701)
 
 
-    def getHelpCHM(self):
+    def getHelpCHM(self,response):
         verHelpCHM = '/'.join((api_settings.BASE_DIR, 'static/Help/')).replace('\\', '/') + 'AnsjerHelp.CHM'
         verHelpCHM = '/'.join((api_settings.BASE_DIR, 'static/Help/')).replace('\\', '/') + 'AnsjerHelp.CHM'
         print(verHelpCHM)
         print(verHelpCHM)
         if os.path.isfile(verHelpCHM):
         if os.path.isfile(verHelpCHM):
             return OTAEquipment.downloadUrl(fileType='CHM', fileCode='', fileVersion='', fileName=verHelpCHM)
             return OTAEquipment.downloadUrl(fileType='CHM', fileCode='', fileVersion='', fileName=verHelpCHM)
         else:
         else:
-            return ResponseFormal(code=701)
-
-from django.core.cache import cache
-class ZxMiddleware(object):
-    def __init__(self):
-        self.online_ips = ()
-        self.online_count = 0
-
-    def process_request(self, request):
-        if 'HTTP_X_FORWARDED_FOR' in request.META:
-            ip = request.META['HTTP_X_FORWARDED_FOR']
-        else:
-            ip = request.META['REMOTE_ADDR']
-        online_ips = cache.get("online_ips", [])
-        if online_ips:
-            online_ips = cache.get_many(online_ips).keys()
-        cache.set(ip, 0, 15 * 60)
-        if ip not in online_ips:
-            online_ips.append(ip)
-        cache.set("online_ips", online_ips)
+            return response.json(code=701)
 
 
-def get_online_count():
-    online_ips = cache.get("online_ips", [])
-    if online_ips:
-        online_ips = cache.get_many(online_ips).keys()
-        return len(online_ips)
-    return 0
 
 
-class BlockedIpMiddleware3:
-    def __init__(self, get_response):
-        print(get_response, 'dddddddddddddd')
-        self.get_response = get_response
-        # One-time configuration and initialization.
-
-    def __call__(self, request):
-        # Code to be executed for each request before
-        # the view (and later middleware) are called.
-        print('sdcall', request)
-        response = self.get_response(request)
-
-        # Code to be executed for each request/response after
-        # the view is called.
-        return response
-
-@csrf_exempt
 def upload_help_chm(request):
 def upload_help_chm(request):
     token = request.POST.get('token', None)
     token = request.POST.get('token', None)
+    response = ResponseObject()
     if token is not None:
     if token is not None:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = tokenManager.accessDict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             own_permission = ModelService.check_permission(userID=userID, permID=30)
             own_permission = ModelService.check_permission(userID=userID, permID=30)
             if own_permission is True:
             if own_permission is True:
                 f = request.FILES.get('file', None)
                 f = request.FILES.get('file', None)
@@ -256,15 +211,16 @@ def upload_help_chm(request):
                             destination.write(chunk)
                             destination.write(chunk)
                 except Exception as e:
                 except Exception as e:
                     print('error:' + repr(e))
                     print('error:' + repr(e))
-                    return ResponseJSON(700,{'details': repr(e)})
-                return ResponseJSON(0)
+                    return response.json(700,{'details': repr(e)})
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return HttpResponse(tokenManager.errorCodeInfo(error_code))
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(311)
+        return response.json(311)
 
 
 @csrf_exempt
 @csrf_exempt
 def errorPath(request,**kwargs):
 def errorPath(request,**kwargs):
-    return ResponseFormal(414)
+    response = ResponseObject()
+    return response.json(414)

+ 65 - 65
Controller/MealManage.py

@@ -11,17 +11,17 @@
 @file: MealManage.py
 @file: MealManage.py
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
-from django.shortcuts import HttpResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Model.models import Store_Meal
 from Model.models import Store_Meal
 import traceback
 import traceback
 from django.utils import timezone
 from django.utils import timezone
-from Service.ResponseService import ResponseJSON
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+
 '''
 '''
 http://192.168.136.40:8077/meal/manage?operation=add&token=test&title=套餐A&price=$199&content=存7天&day=7&id=1
 http://192.168.136.40:8077/meal/manage?operation=add&token=test&title=套餐A&price=$199&content=存7天&day=7&id=1
 http://192.168.136.45:8077/meal/manage?operation=update&token=test&id=1&title=套餐A&price=$199&content=存3天&day=7
 http://192.168.136.45:8077/meal/manage?operation=update&token=test&id=1&title=套餐A&price=$199&content=存3天&day=7
@@ -44,35 +44,36 @@ class MealManage(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
-        operation = request_dict.get('operation', None)
-        if operation is not None:
-            token = request_dict.get('token', None)
-            if token is not None:
-                tokenManager = JSONTokenManager()
-                error_code = tokenManager.verify_AToken(token)
-                if error_code == 0:
-                    userID = tokenManager.accessDict.get('userID', None)
-                    param_flag = CommonService.get_param_flag(data=[userID])
-                    if param_flag is True:
-                        if operation == 'query':
-                            return self.query(request_dict=request_dict)
-                        elif operation == 'add':
-                            return self.add(request_dict=request_dict, userID=userID)
-                        elif operation == 'update':
-                            return self.update(request_dict=request_dict, userID=userID)
-                        elif operation == 'delete':
-                            return self.delete(request_dict=request_dict, userID=userID)
-                        elif operation == 'find':
-                            return self.find(request_dict=request_dict, userID=userID)
-                    return ResponseJSON(444)
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        if token is not None:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
+                    operation = request_dict.get('operation', None)
+                    if operation == 'query':
+                        return self.query(request_dict, response)
+                    elif operation == 'add':
+                        return self.add(request_dict, userID, response)
+                    elif operation == 'update':
+                        return self.update(request_dict, userID, response)
+                    elif operation == 'delete':
+                        return self.delete(request_dict, userID, response)
+                    elif operation == 'find':
+                        return self.find(request_dict, userID, response)
+                    else:
+                        return response.json(444, 'operation')
                 else:
                 else:
-                    return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                    return response.json(310)
             else:
             else:
-                return ResponseJSON(311)
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(311)
 
 
-    def add(self, request_dict, userID):
+    def add(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         own_perm = ModelService.check_permission(userID=userID, permID=40)
         if own_perm is True:
         if own_perm is True:
             title = request_dict.get('title', None)
             title = request_dict.get('title', None)
@@ -84,7 +85,7 @@ class MealManage(View):
             if param_flag is True:
             if param_flag is True:
                 try:
                 try:
                     store_meal = Store_Meal(
                     store_meal = Store_Meal(
-                        id = id,
+                        id=id,
                         title=title,
                         title=title,
                         price=price,
                         price=price,
                         content=content,
                         content=content,
@@ -94,25 +95,24 @@ class MealManage(View):
                 except Exception:
                 except Exception:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(500, {'details': errorInfo})
+                    return response.json(500, {'details': errorInfo})
                 else:
                 else:
                     if store_meal.id:
                     if store_meal.id:
-                        return ResponseJSON(0,
-                                                                         {
-                                                                             'id': store_meal.id,
-                                                                             'title': store_meal.title,
-                                                                             'price': store_meal.price,
-                                                                             'content': store_meal.content,
-                                                                             'day': store_meal.day,
-                                                                             'add_time': str(store_meal.add_time),
-                                                                             'update_time': str(store_meal.update_time),
-                                                                         })
+                        return response.json(0, {
+                            'id': store_meal.id,
+                            'title': store_meal.title,
+                            'price': store_meal.price,
+                            'content': store_meal.content,
+                            'day': store_meal.day,
+                            'add_time': str(store_meal.add_time),
+                            'update_time': str(store_meal.update_time),
+                        })
 
 
-            return ResponseJSON(444)
+            return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def query(self, request_dict):
+    def query(self, request_dict, response):
         page = int(request_dict.get('page', None))
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         line = int(request_dict.get('line', None))
         param_flag = CommonService.get_param_flag(data=[page, line])
         param_flag = CommonService.get_param_flag(data=[page, line])
@@ -121,14 +121,14 @@ class MealManage(View):
             if queryset.exists():
             if queryset.exists():
                 count = queryset.count()
                 count = queryset.count()
                 res = queryset[(page - 1) * line:page * line]
                 res = queryset[(page - 1) * line:page * line]
-                send_json = CommonService.query_set_to_dict(res)
+                send_json = CommonService.qs_to_dict(res)
                 send_json['count'] = count
                 send_json['count'] = count
-                return ResponseJSON(0, send_json)
-            return ResponseJSON(0)
+                return response.json(0, send_json)
+            return response.json(0)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def update(self, request_dict, userID):
+    def update(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             id = request_dict.get('id', None)
             id = request_dict.get('id', None)
@@ -138,14 +138,14 @@ class MealManage(View):
             content = request_dict.get('content', None)
             content = request_dict.get('content', None)
 
 
             param_flag = CommonService.get_param_flag(
             param_flag = CommonService.get_param_flag(
-                data=[id, title, price, content,day])
+                data=[id, title, price, content, day])
             if param_flag is True:
             if param_flag is True:
                 try:
                 try:
                     store_meal = Store_Meal.objects.get(id=id)
                     store_meal = Store_Meal.objects.get(id=id)
                 except Exception:
                 except Exception:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': errorInfo})
+                    return response.json(424, {'details': errorInfo})
                 else:
                 else:
                     if store_meal.id:
                     if store_meal.id:
                         now_time = timezone.localtime(timezone.now())
                         now_time = timezone.localtime(timezone.now())
@@ -155,14 +155,14 @@ class MealManage(View):
                         store_meal.content = content
                         store_meal.content = content
                         store_meal.day = day
                         store_meal.day = day
                         store_meal.save()
                         store_meal.save()
-                        return ResponseJSON(0, {'update_id': store_meal.id,
-                                                                                           'update_time': str(now_time)})
+                        return response.json(0, {'update_id': store_meal.id,
+                                                 'update_time': str(now_time)})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def delete(self, request_dict, userID):
+    def delete(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         own_perm = ModelService.check_permission(userID=userID, permID=10)
         if own_perm is True:
         if own_perm is True:
             id_list = request_dict.getlist('id', None)
             id_list = request_dict.getlist('id', None)
@@ -174,15 +174,15 @@ class MealManage(View):
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': repr(e)})
+                    return response.json(424, {'details': repr(e)})
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def find(self, request_dict, userID):
+    def find(self, request_dict, userID, response):
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         own_perm = ModelService.check_permission(userID=userID, permID=30)
         if own_perm is True:
         if own_perm is True:
             page = int(request_dict.get('page', None))
             page = int(request_dict.get('page', None))
@@ -193,11 +193,11 @@ class MealManage(View):
                 if queryset.exists():
                 if queryset.exists():
                     count = queryset.count()
                     count = queryset.count()
                     res = queryset[(page - 1) * line:page * line]
                     res = queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(res)
+                    send_json = CommonService.qs_to_dict(res)
                     send_json['count'] = count
                     send_json['count'] = count
-                    return ResponseJSON(0, send_json)
-                return ResponseJSON(0)
+                    return response.json(0, send_json)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)

+ 247 - 349
Controller/OTAEquipment.py

@@ -1,46 +1,31 @@
 from zlib import crc32
 from zlib import crc32
-from Ansjer.settings import *
 from django.core import serializers
 from django.core import serializers
 from wsgiref.util import FileWrapper
 from wsgiref.util import FileWrapper
 import traceback, hashlib
 import traceback, hashlib
-from Ansjer.settings import SERVER_DOMAIN
+from Ansjer.config import SERVER_DOMAIN
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import TemplateView
 from django.views.generic import TemplateView
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from Model.models import Equipment_Version
 from Model.models import Equipment_Version
 from Model.models import Device_User
 from Model.models import Device_User
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-from Service.ResponseService import *
-import time
-
-def getEquipmentVersion(code):
-    if code == '31162001A':
-        return ResponseFormal(0,{'softwareVersion': '1.4.3'})
-    try:
-        equipmentValid = Equipment_Version.objects.filter(code = code,status=1).order_by('-data_joined')
-    except Exception as e:
-        errorInfo = traceback.format_exc()
-        print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500,{'details':repr(e)})
-    else:
-        if equipmentValid:
-            equipment = equipmentValid[0]
-            return ResponseFormal(0, {'softwareVersion': equipment.softwareVersion})
-        else:
-            return ResponseFormal(900)
+import time, os,simplejson as json
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from django.http import HttpResponse
+from Ansjer.settings import BASE_DIR
 
 
 
 
-def getUrl(filePath,http_host):
+def getUrl(filePath, http_host):
     urls = []
     urls = []
-    server_dm = 'http://'+http_host
+    server_dm = 'http://' + http_host
     filePaths = filePath.split(',')
     filePaths = filePath.split(',')
     if len(filePaths) > 0:
     if len(filePaths) > 0:
         for path in filePaths:
         for path in filePaths:
             if path.find('static/Upgrade/') != -1:
             if path.find('static/Upgrade/') != -1:
                 path = path.replace('static/Upgrade/', '').replace('\\', '/')
                 path = path.replace('static/Upgrade/', '').replace('\\', '/')
-                url = SERVER_DOMAIN + '/OTA/downloads/' + path+'?time='+str(time.time())
+                url = SERVER_DOMAIN + '/OTA/downloads/' + path + '?time=' + str(time.time())
                 urls.append(url)
                 urls.append(url)
             else:
             else:
                 url = SERVER_DOMAIN + 'OTA/downloads/' + filePath.replace('\\', '/')
                 url = SERVER_DOMAIN + 'OTA/downloads/' + filePath.replace('\\', '/')
@@ -49,33 +34,35 @@ def getUrl(filePath,http_host):
     else:
     else:
         return ''
         return ''
 
 
-def getUpdataFileUrl(code,http_host):
+
+def getUpdataFileUrl(code, http_host, response):
     try:
     try:
-        equipmentValid = Equipment_Version.objects.filter(code=code,status=1).order_by('-data_joined')
+        equipmentValid = Equipment_Version.objects.filter(code=code, status=1).order_by('-data_joined')
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500,{'details':repr(e)})
+        return response.json(500, {'details': repr(e)})
     else:
     else:
         if equipmentValid:
         if equipmentValid:
             equipment = equipmentValid[0]
             equipment = equipmentValid[0]
             file_path = equipment.filePath
             file_path = equipment.filePath
-            url = getUrl(file_path,http_host)
-            https_url = getOTAHttps(file_path,http_host)
+            url = getUrl(file_path, http_host)
+            https_url = getOTAHttps(file_path, http_host)
             if len(url) > 0:
             if len(url) > 0:
-                return ResponseFormal(0,{
+                return response.json(0, {
                     "urlCount": len(url),
                     "urlCount": len(url),
                     "url": url,
                     "url": url,
-                    'https_url':https_url,
+                    'https_url': https_url,
                     "fileSize": equipment.fileSize,
                     "fileSize": equipment.fileSize,
                     "Description": equipment.Description,
                     "Description": equipment.Description,
                 })
                 })
             else:
             else:
-                return ResponseFormal(901)
+                return response.json(901)
         else:
         else:
-            return ResponseFormal(902)
+            return response.json(902)
+
 
 
-def getOTAHttps(filePath,http_host):
+def getOTAHttps(filePath, http_host):
     urls = ''
     urls = ''
     server_dm = 'https://' + http_host
     server_dm = 'https://' + http_host
     if filePath.find('static/Upgrade/') != -1:
     if filePath.find('static/Upgrade/') != -1:
@@ -83,92 +70,56 @@ def getOTAHttps(filePath,http_host):
         urls = server_dm + '/OTA/downloads/' + path + '?time=' + str(time.time())
         urls = server_dm + '/OTA/downloads/' + path + '?time=' + str(time.time())
     return urls
     return urls
 
 
-def getDir(fileType, fileName, fileCode, fileVersion):
-    try:
-        if fileCode != None and fileVersion != None:
-            path = '/'.join((BASE_DIR, 'static/Upgrade', fileType, fileCode, fileVersion)).replace('\\', '/') + '/'
-        else:
-            if fileType != 'IPC' and fileType != 'DVR' and fileType != 'NVR' and fileType != 'XVR':
-                path = '/'.join((BASE_DIR, "static/Upgrade", 'Other')).replace('\\', '/')  + '/'
-
-        if not os.path.exists(path):
-            os.makedirs(path)
-            file_name = path + str(fileName)
-            if os.path.exists(file_name):
-                os.remove(file_name)
-            destination = open(file_name, 'wb+')
-            for chunk in fileName.chunks():
-                destination.write(chunk)
-            destination.close()
-        else:
-            file_name = path + str(fileName)
-            if os.path.exists(file_name):
-                os.remove(file_name)
-
-            destination = open(file_name, 'wb+')
-            for chunk in fileName.chunks():
-                destination.write(chunk)
-            destination.close()
-    except Exception as e:
-        errorInfo = traceback.format_exc()
-        print('上传文件错误: %s' % errorInfo)
-        return ResponseFormal(700,{'details':repr(e)})
-    else:
-        index = file_name.find('static/')
-        filePath = file_name[index:]
-        return ResponseFormal(0,{'filePath':filePath})
-
-
-def addNewEquipmentVersion(deviceContent,token):
+def addNewEquipmentVersion(deviceContent, token,response):
     """
     """
     :param deviceContent:
     :param deviceContent:
     :return:
     :return:
     """
     """
-    if token is None:
-        return ResponseJSON(311)
-    tokenManager = JSONTokenManager()
-    error_code = tokenManager.verify_AToken(token)
-    if error_code == 0:
-        pass
-    else:
-        return tokenManager.errorCodeInfo(error_code)
-    userID = tokenManager.accessDict.get('userID', None)
-    own_permission = ModelService.check_permission(userID=userID, permID=220)
-    if own_permission is not True:
-        # pass
-        return ResponseFormal(404)
-    try:
-        # print(deviceContent)
-        deviceData = json.loads(deviceContent)
-        print('----------')
-        print(deviceData)
-    except Exception as e:
-        return ResponseFormal(803)
+    if token is not None:
+        tko = TokenObject(token)
+        tko.valid()
+        # 设置语言
+        response.lang = tko.res.get('lang', None)
+        if tko.code == 0:
+            userID = tko.userID
+            own_permission = ModelService.check_permission(userID=userID, permID=220)
+            if own_permission is True:
+                try:
+                    deviceData = json.loads(deviceContent)
+                except Exception as e:
+                    print(deviceData)
+                    return response.json(803)
+                else:
+                    version = deviceData.get('version', None)
+                    if version is not None:
+                        filePath = deviceData.get('filePath', None)
+
+                        if filePath is not None:
+                            try:
+                                deviceData['filePath'] = ','.join(filePath)
+                                equipmentVersion = Equipment_Version(
+                                    eid=CommonService.getUserID(getUser=False, setOTAID=True),
+                                    **deviceData)
+                                equipmentVersion.save()
+                            except Exception as e:
+                                errorInfo = traceback.format_exc()
+                                print('添加设备错误: %s ' % errorInfo)
+                                return response.json(806, repr(e))
+                            else:
+                                res =CommonService.qs_to_dict([equipmentVersion])
+                                return response.json(0, res)
+                        else:
+                            return response.json(806)
+                    else:
+                        return response.json(806)
+
+            else:
+                return response.json(404)
+
     else:
     else:
-        version = deviceData.get('version', None)
-        if version != None:
-            eVersionValid = Equipment_Version.objects.filter(version = version)
-            # if eVersionValid:
-            #     return ResponseFormal(904)
-        else:
-            return ResponseFormal(806)
-        try:
-            filePath = deviceData.get('filePath', None)
+        return response.json(311)
+
 
 
-            if filePath == None:
-                return ResponseFormal(806)
-            deviceData['filePath'] = ','.join(filePath)
-            equipmentVersion = Equipment_Version(eid = CommonService.getUserID(getUser=False, setOTAID=True), **deviceData)
-            equipmentVersion.save()
-        except Exception as e:
-            errorInfo = traceback.format_exc()
-            print('添加设备错误: %s ' % errorInfo)
-            return ResponseFormal(806,{'details':repr(e)})
-        else:
-            sqlJSON = serializers.serialize('json', [equipmentVersion])
-            sqlList = json.loads(sqlJSON)
-            sqlDict =dict(zip(["datas"], [sqlList]))
-            return ResponseFormal(0,sqlDict)
 
 
 def downloadUrl(fileType, fileCode, fileVersion, fileName):
 def downloadUrl(fileType, fileCode, fileVersion, fileName):
     fullPath = os.path.join(BASE_DIR, "static/Upgrade").replace('\\', '/')
     fullPath = os.path.join(BASE_DIR, "static/Upgrade").replace('\\', '/')
@@ -207,24 +158,59 @@ def downloadUrl(fileType, fileCode, fileVersion, fileName):
             return response
             return response
 
 
         except Exception as e:
         except Exception as e:
-            errorJSON = ResponseFormal(906,{'details':repr(e)})
+            res =ResponseObject()
+            errorJSON = res.formal(906, {'details': repr(e)})
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response['Content-Error'] = errorJSON
             response['Content-Error'] = errorJSON
             return response
             return response
     else:
     else:
-        errorJSON = ResponseFormal(907)
+        res = ResponseObject()
+        errorJSON = res.formal(907)
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response['Content-Error'] = errorJSON
         response['Content-Error'] = errorJSON
         return response
         return response
 
 
+def getMD5orSHA265(fileName, encryptionType='MD5'):
+    """
+
+    :param filePath:
+    :param encryptionType:
+    :return:
+    """
+    if not os.path.isfile(fileName):
+        return ''
+    else:
+        if encryptionType == 'MD5':
+            encryption = hashlib.md5()
+        elif encryptionType == 'SHA265':
+            encryption = hashlib.sha256()
+        elif encryptionType == 'CRC32':
+            f = open(fileName, 'rb')
+            chunk = f.read()
+            return crc32(chunk)
+
+        f = open(fileName, 'rb')
+        block_size = 8192  # why is 8192 | 8192 is fast than 2048
+
+        while True:
+            chunk = f.read(block_size)
+            if not chunk:
+                break
+            encryption.update(chunk)
+
+        f.close()
+        return encryption.hexdigest()
+
+
 @csrf_exempt
 @csrf_exempt
-def downloadUpdataFileUrl(request, *callback_args, **callback_kwargs):
+def downloadUpdataFileUrl(request):
+    response = ResponseObject()
     if request.method == 'GET':
     if request.method == 'GET':
         request_dict = request.GET
         request_dict = request.GET
     elif request.method == 'POST':
     elif request.method == 'POST':
         request_dict = request.POST
         request_dict = request.POST
     else:
     else:
-        errorJSON = ResponseFormal(801)
+        errorJSON = response.formal(801)
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response['Content-Error'] = errorJSON
         response['Content-Error'] = errorJSON
         return response
         return response
@@ -234,47 +220,51 @@ def downloadUpdataFileUrl(request, *callback_args, **callback_kwargs):
     fileName = request_dict.get('fileName', None)
     fileName = request_dict.get('fileName', None)
     if fileType != None and fileCode != None and fileVersion != \
     if fileType != None and fileCode != None and fileVersion != \
             None and fileName != None:
             None and fileName != None:
-        response = downloadUrl(fileType, fileCode, fileVersion, fileName)
-        return response
+        return downloadUrl(fileType, fileCode, fileVersion, fileName,response)
+
     else:
     else:
-        errorJSON = ResponseFormal(800)
+        errorJSON = response.formal(800)
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response['Content-Error'] = errorJSON
         response['Content-Error'] = errorJSON
         return response
         return response
 
 
+
 '''
 '''
 http://192.168.136.40:8077/OTA/getEquipmentVersion?31AX162001A
 http://192.168.136.40:8077/OTA/getEquipmentVersion?31AX162001A
 '''
 '''
+
+
 @csrf_exempt
 @csrf_exempt
-def getEquipmentVersionInterface(request,
-                                 *callback_args, **callback_kwargs):
+def getEquipmentVersionInterface(request):
+    response = ResponseObject()
     if request.method == "POST":
     if request.method == "POST":
-        request.encoding ='utf-8'
+        request.encoding = 'utf-8'
         code = request.POST.get('code', None)
         code = request.POST.get('code', None)
-
-        if code is not None:
-            response = HttpResponse(getEquipmentVersion(code))
-            return response
-
-        else:
-            return ResponseJSON(800)
     elif request.method == "GET":
     elif request.method == "GET":
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
         code = request.GET.get('code', None)
         code = request.GET.get('code', None)
-
-        if code is not None:
-            response = HttpResponse(getEquipmentVersion(code))
-            return response
-
+    else:
+        return response.json(801)
+    if code is not None:
+        try:
+            equipmentValid = Equipment_Version.objects.filter(code=code, status=1).order_by('-data_joined')
+        except Exception as e:
+            errorInfo = traceback.format_exc()
+            print('查询数据库错误: %s' % errorInfo)
+            return response.json(500, {'details': repr(e)})
         else:
         else:
-            return ResponseJSON(800)
-
+            if equipmentValid:
+                equipment = equipmentValid[0]
+                return response.json(0, {'softwareVersion': equipment.softwareVersion})
+            else:
+                return response.json(900)
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(800)
+
 
 
 @csrf_exempt
 @csrf_exempt
-def getUpdataFileUrlInterface(request,
-                              *callback_args, **callback_kwargs):
+def getUpdataFileUrlInterface(request):
+    response = ResponseObject()
     if request.method == "POST":
     if request.method == "POST":
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.POST
         request_dict = request.POST
@@ -282,17 +272,19 @@ def getUpdataFileUrlInterface(request,
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.GET
         request_dict = request.GET
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(801)
     code = request_dict.get('code', None)
     code = request_dict.get('code', None)
     http_host = request.META.get('HTTP_HOST', None)
     http_host = request.META.get('HTTP_HOST', None)
     if code is not None:
     if code is not None:
-        return HttpResponse(getUpdataFileUrl(code,http_host))
+        return getUpdataFileUrl(code, http_host, response)
     else:
     else:
-        return ResponseJSON(800)
+        return response.json(800)
+
 
 
 @csrf_exempt
 @csrf_exempt
 def downloadUpdataFileUrlInterface(request, fileType, fileName,
 def downloadUpdataFileUrlInterface(request, fileType, fileName,
                                    *callback_args, **callback_kwargs):
                                    *callback_args, **callback_kwargs):
+    res = ResponseObject()
     if fileType is not None and fileName is not None:
     if fileType is not None and fileName is not None:
         fullPath = os.path.join(BASE_DIR, "static/Upgrade/").replace('\\', '/')
         fullPath = os.path.join(BASE_DIR, "static/Upgrade/").replace('\\', '/')
         if fileType == 'IPC':
         if fileType == 'IPC':
@@ -318,14 +310,14 @@ def downloadUpdataFileUrlInterface(request, fileType, fileName,
         print(fullPath)
         print(fullPath)
         if os.path.isfile(fullPath):
         if os.path.isfile(fullPath):
             try:
             try:
-                JSON = ResponseFormal(0)
+                JSON = res.formal(0)
                 if fileType != 'User':
                 if fileType != 'User':
                     wrapper = FileWrapper(open(fullPath, 'rb'))
                     wrapper = FileWrapper(open(fullPath, 'rb'))
                     response = HttpResponse(wrapper, content_type="application/octet-stream")
                     response = HttpResponse(wrapper, content_type="application/octet-stream")
                     response['Content-Length'] = os.path.getsize(fullPath)
                     response['Content-Length'] = os.path.getsize(fullPath)
                     response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(fullPath)
                     response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(fullPath)
                     response['Content-MD5'] = getMD5orSHA265(fullPath)
                     response['Content-MD5'] = getMD5orSHA265(fullPath)
-                    #校验文件md5值
+                    # 校验文件md5值
                     response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
                     response['Content-SHA265'] = getMD5orSHA265(fullPath, 'SHA265')
                     response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
                     response['Content-CRC32'] = getMD5orSHA265(fullPath, 'CRC32')
                     response['Content-Error'] = JSON
                     response['Content-Error'] = JSON
@@ -335,22 +327,23 @@ def downloadUpdataFileUrlInterface(request, fileType, fileName,
                     response = HttpResponse(Imagedata, content_type="image/jpeg")
                     response = HttpResponse(Imagedata, content_type="image/jpeg")
                     return response
                     return response
             except Exception as e:
             except Exception as e:
-                errorJSON = ResponseFormal(906)
+                errorJSON = res.formal(906)
                 response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
                 response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
                 response['Content-Error'] = errorJSON
                 response['Content-Error'] = errorJSON
                 return response
                 return response
         else:
         else:
-            errorJSON = ResponseFormal(907)
+            errorJSON = res.formal(907)
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
             response['Content-Error'] = errorJSON
             response['Content-Error'] = errorJSON
             return response
             return response
 
 
     else:
     else:
-        errorJSON = ResponseFormal(800)
+        errorJSON = res.formal(800)
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response = HttpResponse(errorJSON, content_type='text/plain', charset='utf-8')
         response['Content-Error'] = errorJSON
         response['Content-Error'] = errorJSON
         return response
         return response
 
 
+
 class getUploadFiletoDirView(TemplateView):
 class getUploadFiletoDirView(TemplateView):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
@@ -358,55 +351,45 @@ class getUploadFiletoDirView(TemplateView):
 
 
     def post(self, request, *args, **kwargs):
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-
-        token = request.POST.get('token', None)
-        fileType = request.POST.get('fileType', None)
-        fileCode = request.POST.get('fileCode', None)
-        fileVersion = request.POST.get('fileVersion', None)
+        request_dict = request.POST
         fileName = request.FILES.get('fileName', None)
         fileName = request.FILES.get('fileName', None)
-
-        return self.ValidationError(token, fileType, fileName,
-                                     filefileCode=fileCode, fileVersion=fileVersion)
+        return self.ValidationError(request_dict,fileName)
 
 
     def get(self, request, *args, **kwargs):
     def get(self, request, *args, **kwargs):
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
-
-        token = request.GET.get('token', None)
-        fileType = request.GET.get('fileType', None)
-        fileCode = request.GET.get('fileCode', None)
-        fileVersion = request.GET.get('fileVersion', None)
+        request_dict = request.GET
         fileName = request.FILES.get('fileName', None)
         fileName = request.FILES.get('fileName', None)
-        return self.ValidationError(token, fileType, fileName,filefileCode=fileCode, fileVersion=fileVersion)
-
-    def ValidationError(self, token, fileType, fileName, *args, **kwargs):
+        return self.ValidationError(request_dict,fileName)
+
+    def ValidationError(self, request_dict,fileName):
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        fileType = request_dict.get('fileType', None)
+        fileCode = request_dict.get('fileCode', None)
+        fileVersion = request_dict.get('fileVersion', None)
         if fileName != None and fileType != None and token != None:
         if fileName != None and fileType != None and token != None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
+                if userID is not None:
                     own_permission = ModelService.check_permission(userID=userID, permID=210)
                     own_permission = ModelService.check_permission(userID=userID, permID=210)
                     if own_permission is True:
                     if own_permission is True:
-                        fileCode = kwargs.get('fileCode', None)
-                        fileVersion = kwargs.get('fileVersion', None)
                         if fileVersion != None and fileCode != None:
                         if fileVersion != None and fileCode != None:
-                            response = HttpResponse(self.getUploadFiletoDir(userID, fileType, fileName,
-                                                                            fileCode, fileVersion=fileVersion))
-                            return response
+                            return self.getUploadFiletoDir(userID, fileType, fileName,response,fileCode, fileVersion=fileVersion)
                         else:
                         else:
-                            response = HttpResponse(self.getUploadFiletoDir(userID, fileType, fileName))
-                            return response
+                            return self.getUploadFiletoDir(userID, fileType, fileName,response)
                     else:
                     else:
-                        return ResponseJSON(404)
+                        return response.json(404)
                 else:
                 else:
-                    return ResponseJSON(310)
+                    return response.json(310)
             else:
             else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(800)
+            return response.json(800)
 
 
-    def getUploadFiletoDir(self, userID, fileType, fileName, *args, **kwargs):
+    def getUploadFiletoDir(self, userID, fileType, fileName,response, *args, **kwargs):
         """
         """
         将上传的文件写入服务器对应目录下
         将上传的文件写入服务器对应目录下
         :param Type: equipment type
         :param Type: equipment type
@@ -414,17 +397,17 @@ class getUploadFiletoDirView(TemplateView):
         :return: filePath
         :return: filePath
         """
         """
         try:
         try:
-            User = Device_User.objects.filter(userID = userID)
+            User = Device_User.objects.filter(userID=userID)
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('查询数据库错误: %s' % errorInfo)
             print('查询数据库错误: %s' % errorInfo)
-            return ResponseFormal(500,{'details':repr(e)})
+            return response.json(500, {'details': repr(e)})
         else:
         else:
             if not User:
             if not User:
-                return ResponseFormal(113)
-            own_perm = ModelService.check_permission(userID,permID=210)
+                return response.json(113)
+            own_perm = ModelService.check_permission(userID, permID=210)
             if own_perm is not True:
             if own_perm is not True:
-                return ResponseFormal(605)
+                return response.json(605)
             updataFile = fileName.name
             updataFile = fileName.name
             updataFile = updataFile.replace(' ', '+')
             updataFile = updataFile.replace(' ', '+')
             versionIndex = updataFile.find('.', updataFile.find('.', updataFile.find('.') + 1) + 1)
             versionIndex = updataFile.find('.', updataFile.find('.', updataFile.find('.') + 1) + 1)
@@ -435,63 +418,88 @@ class getUploadFiletoDirView(TemplateView):
                 fileCode = len(updataFile[versionIndex + 1: codeIndex]) > 0 and \
                 fileCode = len(updataFile[versionIndex + 1: codeIndex]) > 0 and \
                            updataFile[versionIndex + 1: codeIndex] or None
                            updataFile[versionIndex + 1: codeIndex] or None
                 if fileCode is not None and fileVersion is not None:
                 if fileCode is not None and fileVersion is not None:
-                    return getDir(fileType, fileName, fileCode, fileVersion)
+                    return self.getDir(fileType, fileName, fileCode, fileVersion)
                 else:
                 else:
                     fileCode = kwargs.get('fileCode', None)
                     fileCode = kwargs.get('fileCode', None)
                     fileVersion = kwargs.get('fileVersion', None)
                     fileVersion = kwargs.get('fileVersion', None)
                     print(fileCode, fileVersion)
                     print(fileCode, fileVersion)
                     if fileCode != None and fileVersion != None:
                     if fileCode != None and fileVersion != None:
-                        return getDir(fileType, fileName, fileCode, fileVersion)
+                        return self.getDir(fileType, fileName, fileCode, fileVersion)
                     else:
                     else:
-                        return ResponseFormal(903)
+                        return response.json(903)
             else:
             else:
                 fileCode = kwargs.get('fileCode', None)
                 fileCode = kwargs.get('fileCode', None)
                 fileVersion = kwargs.get('fileVersion', None)
                 fileVersion = kwargs.get('fileVersion', None)
                 if fileCode != None and fileVersion != None:
                 if fileCode != None and fileVersion != None:
-                    return getDir(fileType, fileName, fileCode, fileVersion)
+                    return self.getDir(fileType, fileName, fileCode, fileVersion,response)
                 else:
                 else:
-                    return ResponseFormal(903)
+                    return response.json(903)
+
+    def getDir(self,fileType, fileName, fileCode, fileVersion, response):
+        try:
+            if fileCode != None and fileVersion != None:
+                path = '/'.join((BASE_DIR, 'static/Upgrade', fileType, fileCode, fileVersion)).replace('\\', '/') + '/'
+            else:
+                if fileType != 'IPC' and fileType != 'DVR' and fileType != 'NVR' and fileType != 'XVR':
+                    path = '/'.join((BASE_DIR, "static/Upgrade", 'Other')).replace('\\', '/') + '/'
+
+            if not os.path.exists(path):
+                os.makedirs(path)
+                file_name = path + str(fileName)
+                if os.path.exists(file_name):
+                    os.remove(file_name)
+                destination = open(file_name, 'wb+')
+                for chunk in fileName.chunks():
+                    destination.write(chunk)
+                destination.close()
+            else:
+                file_name = path + str(fileName)
+                if os.path.exists(file_name):
+                    os.remove(file_name)
+
+                destination = open(file_name, 'wb+')
+                for chunk in fileName.chunks():
+                    destination.write(chunk)
+                destination.close()
+        except Exception as e:
+            errorInfo = traceback.format_exc()
+            print('上传文件错误: %s' % errorInfo)
+            return response.json(700, {'details': repr(e)})
+        else:
+            index = file_name.find('static/')
+            filePath = file_name[index:]
+            return response.json(0, {'filePath': filePath})
+
 
 
 @csrf_exempt
 @csrf_exempt
-def addNewEquipmentVersionInterface(request, *callback_args,
-                                    **callback_kwargs):
+def addNewEquipmentVersionInterface(request):
+
+    response = ResponseObject()
     if request.method == "POST":
     if request.method == "POST":
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
-        deviceContent = request.POST.get('content', None).encode('utf-8')
-        token = request.POST.get('token', None)
-        deviceContent = str(deviceContent, encoding='utf-8')
-        deviceContent = deviceContent.replace(' ', ' ').replace('\'', '\"')
-        print(deviceContent, type(deviceContent))
-        if deviceContent is not None:
-            response = HttpResponse(addNewEquipmentVersion(deviceContent,token))
-            return response
-        else:
-            return ResponseJSON(800)
-
+        request_dict = request.POST
     elif request.method == "GET":
     elif request.method == "GET":
         request.encoding = 'gb2312'
         request.encoding = 'gb2312'
-
-        deviceContent = request.GET.get('content', None).encode('gb2312')
-        deviceContent = str(deviceContent, encoding='gb2312')
-        token = request.GET.get('token', None)
-        deviceContent = deviceContent.replace(' ', ' ').replace('\'', '\"')
-        if deviceContent is not None:
-            response = HttpResponse(addNewEquipmentVersion(deviceContent,token))
-            return response
-
-        else:
-            return ResponseJSON(800)
+        request_dict = request.GET
+    else:
+        return response.json(801)
+    deviceContent = request_dict.get('content', None).encode('utf-8')
+    token = request_dict.get('token', None)
+    deviceContent = str(deviceContent, encoding='utf-8')
+    deviceContent = deviceContent.replace(' ', ' ').replace('\'', '\"')
+    if deviceContent is not None:
+        return addNewEquipmentVersion(deviceContent, token,response)
     else:
     else:
-        return ResponseJSON(801)
+        return response.json(800)
 
 
-@csrf_exempt
-def showAllEquipmentVersion(userID):
+
+def showAllEquipmentVersion(userID,response):
     try:
     try:
-        userValid = Device_User.objects.filter(userID = userID).order_by('-data_joined')
+        userValid = Device_User.objects.filter(userID=userID).order_by('-data_joined')
     except Exception as e:
     except Exception as e:
         errorInfo = traceback.format_exc()
         errorInfo = traceback.format_exc()
         print('查询数据库错误: %s' % errorInfo)
         print('查询数据库错误: %s' % errorInfo)
-        return ResponseFormal(500)
+        return response.json(500)
     else:
     else:
         if userValid:
         if userValid:
             own_permission = ModelService.check_permission(userID=userID, permID=240)
             own_permission = ModelService.check_permission(userID=userID, permID=240)
@@ -500,143 +508,33 @@ def showAllEquipmentVersion(userID):
                 sqlList = json.loads(sqlJSON)
                 sqlList = json.loads(sqlJSON)
                 print(sqlList, sqlJSON)
                 print(sqlList, sqlJSON)
                 sqlDict = dict(zip(["datas"], [sqlList]))
                 sqlDict = dict(zip(["datas"], [sqlList]))
-                return ResponseFormal(0,sqlDict)
+                return response.json(0, sqlDict)
             else:
             else:
-                return ResponseFormal(604)
+                return response.json(604)
         else:
         else:
-            return ResponseFormal(113)
+            return response.json(113)
+
 
 
 @csrf_exempt
 @csrf_exempt
-def showAllEquipmentVersionInterface(request, *callback_args,
-                                 **callback_kwargs):
+def showAllEquipmentVersionInterface(request):
+    response = ResponseObject()
     if request.method == 'POST':
     if request.method == 'POST':
         token = request.POST.get('token', None)
         token = request.POST.get('token', None)
-
-        if token != None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
-                    response = HttpResponse(showAllEquipmentVersion(userID))
-                    return response
-                else:
-                    return ResponseJSON(310)
-            else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
-
-        else:
-            return ResponseJSON(800)
-
     elif request.method == 'GET':
     elif request.method == 'GET':
         token = request.GET.get('token', None)
         token = request.GET.get('token', None)
-
-        if token != None:
-            tM = JSONTokenManager()
-            error_code = tM.verify_AToken(token)
-            if error_code == 0:
-                userID = tM.accessDict.get('userID', None)
-                if userID:
-                    response = HttpResponse(showAllEquipmentVersion(userID))
-                    return response
-                else:
-                    return ResponseJSON(310)
-
+    if token is not None:
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
+            if userID:
+                return showAllEquipmentVersion(userID,response)
             else:
             else:
-                response = HttpResponse(tM.errorCodeInfo(error_code))
-                return response
+                return response.json(310)
         else:
         else:
-            return ResponseJSON(800)
-
-import zlib
-@csrf_exempt
-def getCRC32(filePath):
-    print(filePath)
-    block_size = 1024 * 1024
-    crc = 0
-
-    try:
-        fd = open(filePath, 'rb')
-        while True:
-            buffer = fd.read(block_size)
-            if len(buffer) == 0:  # EOF or file empty. return hashes
-                fd.close()
-                return crc  # 返回的是十进制的值
-
-            crc = zlib.crc32(buffer, crc)
-    except Exception as e:
-        return ResponseFormal(908,{'details':repr(e)})
-
-def getMD5orSHA265(fileName, encryptionType='MD5'):
-    """
-
-    :param filePath:
-    :param encryptionType:
-    :return:
-    """
-    if not os.path.isfile(fileName):
-        return ''
+            return response.json(tko.code)
     else:
     else:
-        if encryptionType == 'MD5':
-            encryption = hashlib.md5()
-        elif encryptionType == 'SHA265':
-            encryption = hashlib.sha256()
-        elif encryptionType == 'CRC32':
-            f = open(fileName, 'rb')
-            chunk = f.read()
-            return crc32(chunk)
-
-        f = open(fileName, 'rb')
-        block_size = 8192  # why is 8192 | 8192 is fast than 2048
-
-        while True:
-            chunk = f.read(block_size)
-            if not chunk:
-                break
-            encryption.update(chunk)
-
-        f.close()
-        return encryption.hexdigest()
+        return response.json(800)
 
 
-def CRC(fileName):
-    fd = open(fileName, 'rb')
-    dwSize = os.path.getsize(fileName)
-    lpBuffer = fd.read()
-
-    crc = -1
-    CRC32Table = [0] * 256
-    ulPolynomial = 0x04C11DB7
-    len = dwSize
-    buffer = lpBuffer
-    for index in range(0xFF):
-        value = 0
-        ref = index
-
-        for n in range(9):
-            if ref & 1:
-                value |= 1 << (8 - n)
-            ref >>= 1
-
-        CRC32Table[index] = value << 24
-        for j in range(8):
-            CRC32 = CRC32Table[index] & (1 << 31) and ulPolynomial or 0
-            CRC32Table[index] = (CRC32Table[index] << 1) ^ CRC32
-        value = 0
-        ref = CRC32Table[index]
-        for n in range(33):
-            if ref & 1:
-                value |= 1 << (32 - n)
-            ref >>= 1
-        CRC32Table[index] = value
-
-    index = 0
-    while len:
-        len -= 1
-        crc = (crc >> 8) ^ CRC32Table[(crc & 0xFF) ^ buffer[index]]
-        index += 1
-
-    print(crc ^ 0xffffffff)
-
-    return crc ^ 0xffffffff
 
 

+ 255 - 106
Controller/OauthManage.py

@@ -11,127 +11,276 @@
 @file: OauthManage.py
 @file: OauthManage.py
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
+from var_dump import var_dump
+from django.utils.timezone import utc
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import *
-from Model.models import oauth_user,Auth_Captcha
-from django.contrib import auth
-from django.http import HttpResponseRedirect
-import json
-from Service.ResponseService import *
-import requests
+from Model.models import oauth_user, Device_User
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
-from django.middleware.csrf import get_token
-from django.http import JsonResponse
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+from Service.CommonService import CommonService
+from Controller.CheckUserData import DataValid
+from django.contrib import auth
+import json, requests, datetime
+from django.contrib.auth.hashers import make_password  # 对密码加密模块
+from Ansjer.config import DOMAIN_OAUTH_URI
+
+'''
+http://192.168.136.40:8077/oauth/relate/?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvaWQiOiI3N2EzNzJmYi1jNDdiLTQ5OWQtYmY3Ni0wMTIwNzdiNGRiM2MiLCJleHAiOjE1MzQyMTE1MDR9.9DAwCctDk_qwn1kHfPqkvSGiFMunnb7I9mU44YlNchE
+'''
 
 
-class OauthManage(View):
+
+class OauthRelateView(View):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
     def dispatch(self, *args, **kwargs):
-        return super(OauthManage, self).dispatch(*args, **kwargs)
+        return super(OauthRelateView, self).dispatch(*args, **kwargs)
+
+    # 定义host
+    __http_host = None
+
     # 查询
     # 查询
-    def get(self, request, *args, **kwargs):
+    def get(self, request):
+        request.encoding = 'utf-8'
+        self.__http_host = request.META.get('PATH_INFO', None)
+        response = ResponseObject()
+        token = request.GET.get('token', None)
+        return self.relate(token, response)
 
 
-        return
     # 认证登录
     # 认证登录
-    def post(self, request, *args, **kwargs):
+    def post(self, request):
+        self.__http_host = request.META.get('PATH_INFO', None)
+        response = ResponseObject()
         try:
         try:
             json_data = json.loads(request.body.decode("utf-8"))
             json_data = json.loads(request.body.decode("utf-8"))
         except Exception as e:
         except Exception as e:
             print(repr(e))
             print(repr(e))
-            return ResponseJSON(10,repr(e))
+            return response.json(10, repr(e))
         else:
         else:
-            access_token = json_data.get('access_token', None)
-            if access_token is not None:
+            token = json_data.get('token', None)
+            return self.relate(token, response)
+
+    def relate(self, token, response):
+
+        if token is not None:
+            tko = TokenObject(token)
+            tko.valid()
+            # 设置语言
+            response.lang = tko.lang
+            if tko.code == 0:
+                oid = tko.oid
+                if oid is not None:
+                    # 判断用户是否已关联
+                    userID = tko.userID()
+                    if userID is not None:
+                        return self.loginUpdate(userID, response)
+                    # 未关联情况下进行关联,并创建用户
+                    else:
+                        return self.relateUser(oid, token, response)
+
+                else:
+                    return response.json(444, 'oid')
+            else:
+                return response.json(tko.code)
+        else:
+            return response.json(444, 'token')
+
+    def loginUpdate(self, userID, response):
+        now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
+        userData = Device_User.objects.filter(userID=userID)
+        userData.update(last_login=now_time, online=True)
+        return self.responseRes(userData[0], response)
+
+    def relateUser(self, oid, token, response):
+        try:
+            http_oauth = requests.get(
+                url='{domain_oauth}accounts/{oid}/'.format(oid=oid, domain_oauth=DOMAIN_OAUTH_URI),
+                params={'token': token}
+            )
+            get_res = http_oauth.json()
+        except Exception as e:
+            return response.json(10, repr(e))
+        else:
+            code = get_res.get('code', None)
+            if code == 0:
+                datas = get_res['res']
+                username = datas.get('username', None)
+                password = datas.get('password', None)
+                userValid = Device_User.objects.filter(username=username)
                 try:
                 try:
-                    ser = requests.get(url='http://192.168.136.45:9898/accounts/user/',
-                                       data={'access_token': access_token})
-                    ser_data = json.loads(ser.content)
+                    if userValid.exists():
+                        UserData = userValid[0]
+                    else:
+                        dataValid = DataValid()
+                        if dataValid.email_validate(username):
+                            UserData = Device_User(username=username, userEmail=username, password=password,
+                                                   userID=CommonService.getUserID(μs=False, setOTAID=True),
+                                                   is_active=True, user_isValid=True)
+                        else:
+                            UserData = Device_User(username=username, password=password,
+                                                   userID=CommonService.getUserID(μs=False, setOTAID=True),
+                                                   is_active=True, user_isValid=True)
+                        UserData.save()
                 except Exception as e:
                 except Exception as e:
-                    print(repr(e))
-                    return ResponseJSON(10,repr(e))
+                    var_dump(repr(e))
+                    return response.json(106)
                 else:
                 else:
-                    oid = ser_data['oid']
-                    if oid is not None:
-                        ou = oauth_user.objects.filter(oid=oid)
-                        # 用户存在情况查找绑定用户
-                        if ou.exists():
-                            user_qs =ou[0].userID
-                            userID = user_qs.userID
-                        #用户不存在情况新增一个用户
-                        else:
-                            oid = ser_data['oid']
-                            username = ser_data['username']
-                            password = ser_data['password']
-                            email = ser_data['email']
-                            try:
-                                CaptchaRecord = Auth_Captcha()
-                                CaptchaRecord.authcaptca = '1234'
-                                CaptchaRecord.username = username
-                                CaptchaRecord.sendtype = 'register'
-                                CaptchaRecord.save()
-                            except Exception as e:
-                                return ResponseJSON(10,repr(e))
-                            try:
-                                UserData = Device_User(username=username, userEmail=email, password=password,
-                                                       userID=CommonService.getUserID(μs=False, setOTAID=True),
-                                                       is_active=True, user_isValid=True)
-                                UserData.save()
-                            except Exception as e:
-                                errorInfo = traceback.format_exc()
-                                print('Create User Error: %s' % errorInfo)
-                                return ResponseJSON(424,'Create User Error:' + repr(e))
-                            else:
-                                ourValid = oauth_user.objects.create(oid=oid, userID=UserData)
-                                if ourValid:
-                                    userID = UserData.userID
-                        if userID:
-                            userValid = Device_User.objects.filter(userID=userID)
-                            if userValid.exists():
-                                authtoken_Obj = AuthToken_Token.objects.filter(tokenID_id=userID)
-                                if authtoken_Obj.exists():
-                                    tokenManager = JSONTokenManager()
-                                    access_token = tokenManager.deToken(authtoken_Obj[0].access_token)
-                                    refresh_token = tokenManager.deToken(authtoken_Obj[0].refresh_token)
-                                else:
-                                    access_token = False
-                                    refresh_token = False
-                                if access_token is not False and refresh_token is not False:
-                                    resultDict = {
-                                        'result': {'access_token': access_token, 'refresh_token': refresh_token},
-                                        'error_code': 0}
-                                else:
-                                    JSON = json.dumps({'userID': userID, 'mCode': ''}, ensure_ascii=False)
-                                    tokenManager = JSONTokenManager()
-                                    tokenJSON = tokenManager.generate_AToken(JSON=JSON,
-                                                                             iCode=tokenManager.getSalt(strLen=8))
-                                    resultDict = json.loads(tokenJSON)
-                                error_code = resultDict.get('error_code', None)
-                                if error_code != None and error_code == 0:
-                                    result = resultDict.get('result', None)
-                                    if result != None:
-                                        import datetime
-                                        now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
-                                        userValid.update(last_login=now_time, online=True)
-                                        role_dict = ModelService.own_role(userID=userID)
-                                        result['rid'] = role_dict['rid']
-                                        result['roleName'] = role_dict['roleName']
-                                        result['permList'] = ModelService.own_permission(userID)
-                                        result['username'] = userValid[0].username
-                                        return ResponseJSON(0, result)
-
-        return ResponseJSON(10)
-    # 修改 资源改变
-    def put(self, request):
-        return ResponseJSON(404)
-
-    # 修改 属性改变
-    def PATCH(self, request):
-        return ResponseJSON(404)
-
-    # 删除
-    def delete(self, request):
-        return ResponseJSON(404)
-
-    def validation(self, request_dict, *args, **kwargs):
-        return ResponseJSON(404)
+                    ourValid = oauth_user.objects.get_or_create(oid=oid, userID=UserData)
+                    if ourValid:
+                        return self.responseRes(UserData, response)
+                    else:
+                        UserData.delete()
+                        return response.json(106)
+
+            else:
+                return response.json(code)
+
+    def responseRes(self, UserData, response):
+        if UserData.userID and UserData.username:
+            res = {}
+            role_dict = ModelService.own_role(userID=UserData.userID)
+            res['rid'] = role_dict['rid']
+            res['roleName'] = role_dict['roleName']
+            res['permList'] = ModelService.own_permission(UserData.userID)
+            res['username'] = UserData.username
+            res['email'] = UserData.userEmail
+            res['nickname'] = UserData.NickName
+            print(res)
+            return response.json(0, res)
+        else:
+            return response.json(10, 'userID,username参数错误')
+
+
+class OauthResUserView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(OauthResUserView, self).dispatch(*args, **kwargs)
+
+    # 查询
+    def get(self, request):
+        request.encoding = 'utf-8'
+        response = ResponseObject()
+        username = request.GET.get('username', None)
+        password = request.GET.get('password', None)
+        return self.validate(username, password, response)
+
+    # 认证登录
+    def post(self, request):
+        response = ResponseObject()
+        try:
+            print(request.body.decode("utf-8"))
+            json_data = json.loads(request.body.decode("utf-8"))
+        except Exception as e:
+            var_dump(repr(e))
+            return response.json(10, repr(e))
+        else:
+            username = json_data.get('username', None)
+            password = json_data.get('password', None)
+            return self.validate(username, password, response)
+
+    def validate(self, username, password, response):
+        if username is not None:
+            dataValid = DataValid()
+            if dataValid.mobile_validate(username):
+                user_qs = Device_User.objects.filter(username=username)
+            elif dataValid.email_validate(username):
+                user_qs = Device_User.objects.filter(username=username)
+            else:
+                return response.json(104)
+            if user_qs.exists():
+                if user_qs[0].user_isValid and user_qs[0].is_active:
+                    User = auth.authenticate(username=user_qs[0].username, password=password)
+                    if User:
+                        res = {'username': user_qs[0].username}
+                        return response.json(0, res)
+                    else:
+                        return response.json(111)
+                else:
+                    return response.json(110)
+            else:
+                return response.json(102)
+        else:
+            return response.json(444,'username')
+
+
+class ModifyRSPwdView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(ModifyRSPwdView, self).dispatch(*args, **kwargs)
+
+    # 查询
+    def get(self, request):
+        response = ResponseObject()
+        request_dict = request.GET
+        return self.validate(request_dict, response)
+
+    # 认证登录
+    def post(self, request):
+        response = ResponseObject()
+        try:
+            print(request.body.decode("utf-8"))
+            json_data = json.loads(request.body.decode("utf-8"))
+        except Exception as e:
+            from var_dump import var_dump
+            var_dump(repr(e))
+            return response.json(10, repr(e))
+        else:
+            request_dict = json_data
+            return self.validate(request_dict, response)
+
+    def validate(self, request_dict, response):
+        username = request_dict.get('username', None)
+        oldPwd = request_dict.get('oldPwd', None)
+        newPwd = request_dict.get('newPwd', None)
+
+        UserAuth = auth.authenticate(username=username, password=oldPwd)
+        if UserAuth:
+            return self.ModifyPwd(username, newPwd, response)
+        else:
+            return response.json(99)
+
+    def ModifyPwd(self, username, newPwd, response):
+        user_qs = Device_User.objects.filter(username=username)
+        upCount = user_qs.update(password=make_password(newPwd))
+        if upCount:
+            return response.json(0)
+
+
+class OauthForgetView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(OauthForgetView, self).dispatch(*args, **kwargs)
+
+    # 查询
+    def get(self, request):
+        response = ResponseObject()
+        request_dict = request.GET
+        return self.validate(request_dict, response)
+
+    # 认证登录
+    def post(self, request):
+        response = ResponseObject()
+        try:
+            json_data = json.loads(request.body.decode("utf-8"))
+        except Exception as e:
+            from var_dump import var_dump
+            var_dump(repr(e))
+            return response.json(10, repr(e))
+        else:
+            request_dict = json_data
+            return self.validate(request_dict, response)
+
+    def validate(self, request_dict, response):
+        username = request_dict.get('username', None)
+        dataValid = DataValid()
+        if dataValid.email_validate(username):
+            user_qs = Device_User.objects.filter(userEmail=username)
+        elif dataValid.mobile_validate(username):
+            user_qs = Device_User.objects.filter(username=username)
+        else:
+            return response.json(9)
+        if user_qs.exists():
+            return response.json(0, {'password': user_qs[0].password})
+        else:
+            return response.json(9)

File diff suppressed because it is too large
+ 182 - 474
Controller/PermissionManager.py


+ 149 - 145
Controller/StreamMedia.py

@@ -1,20 +1,19 @@
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from Model.models import Equipment_Stream
 from Model.models import Equipment_Stream
 from Object.AWS.S3ClassObject import S3ClassObject
 from Object.AWS.S3ClassObject import S3ClassObject
 from Object.AWS.ElasticTranscoder import ElasticTranscoder
 from Object.AWS.ElasticTranscoder import ElasticTranscoder
-import traceback, xmltodict, requests, re, subprocess
+import traceback, xmltodict, requests, re, subprocess, time, os,simplejson as json
 from ffmpy import FFmpeg
 from ffmpy import FFmpeg
-import time
 from Object.AWS.CloudfrontSignCookie import BetterThanBoto
 from Object.AWS.CloudfrontSignCookie import BetterThanBoto
-from Ansjer.settings import NGINX_RTMP_STAT,RTMP_PUSH_URL
-from Service.ResponseService import *
-from Ansjer.config import BASE_DIR
-import os
-
+from Ansjer.config import NGINX_RTMP_STAT, RTMP_PUSH_URL
+from Ansjer.settings import BASE_DIR
+from Object.TokenObject import TokenObject
+from Object.ResponseObject import ResponseObject
+from Service.CommonService import CommonService
+from django.http import HttpResponse
 '''
 '''
 移动端=>
 移动端=>
 增:
 增:
@@ -68,58 +67,62 @@ class StreamMedia(View):
         return self.validation(request_dict=request.POST)
         return self.validation(request_dict=request.POST)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         if token is not None:
         if token is not None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                userID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                userID = tko.userID()
                 own_permission = ModelService.check_permission(userID=userID, permID=60)
                 own_permission = ModelService.check_permission(userID=userID, permID=60)
                 if own_permission is not True:
                 if own_permission is not True:
-                    return ResponseJSON(404)
-                operation = request_dict.get('operation', None)
-                if operation == 'add':
-                    return self.add_stream(token=token, request_dict=request_dict, userID=userID)
-                elif operation == 'delete':
-                    return self.delete_stream(request_dict=request_dict, userID=userID)
-                elif operation == 'update':
-                    return self.update_stream(userID=userID, request_dict=request_dict)
-                elif operation == 'query':
-                    return self.query_stream(userID=userID)
-                elif operation == 'getDelVideo':
-                    return self.get_del_video(userID=userID, request_dict=request_dict)
-                elif operation == 'getAllVideo':
-                    return self.get_all_video(request_dict=request_dict, userID=userID)
-                elif operation == 'getVodUrl':
-                    return self.get_vod_url(request_dict=request_dict)
-                elif operation == 'getVodHls':
-                    return self.get_vod_hls(request_dict=request_dict)
-                elif operation == 'getAdminAllStream':
-                    return self.get_admin_all_stream(request_dict=request_dict, userID=userID)
-                elif operation == 'getAdminDelStream':
-                    return self.get_admin_del_stream(request_dict=request_dict, userID=userID)
-                elif operation == 'getAdminUpdateStream':
-                    return self.get_admin_update_stream(request_dict=request_dict, userID=userID)
-                elif operation == 'getAdminVodUrl':
-                    return self.get_admin_vod_url(request_dict=request_dict, userID=userID)
-                elif operation == 'getAdminFindStream':
-                    return self.get_admin_find_stream(request_dict=request_dict, userID=userID)
-                elif operation == 'getAdminDelVideo':
-                    return self.get_admin_del_video(request_dict=request_dict, userID=userID)
-                elif operation == 'getAllServerJson':
-                    return self.get_all_server_json(userID=userID)
-                elif operation == 'getAdminHlsVod':
-                    return self.get_admin_hls_vod(userID=userID, request_dict=request_dict)
-                elif operation == 'getAdminAddStream':
-                    return self.get_admin_add_stream(userID=userID, request_dict=request_dict)
+                    operation = request_dict.get('operation', None)
+                    if operation == 'add':
+                        return self.add_stream(token=token, request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'delete':
+                        return self.delete_stream(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'update':
+                        return self.update_stream(userID=userID, request_dict=request_dict, response=response)
+                    elif operation == 'query':
+                        return self.query_stream(userID=userID, response=response)
+                    elif operation == 'getDelVideo':
+                        return self.get_del_video(userID=userID, request_dict=request_dict, response=response)
+                    elif operation == 'getAllVideo':
+                        return self.get_all_video(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getVodUrl':
+                        return self.get_vod_url(request_dict=request_dict, response=response)
+                    elif operation == 'getVodHls':
+                        return self.get_vod_hls(request_dict=request_dict, response=response)
+                    elif operation == 'getAdminAllStream':
+                        return self.get_admin_all_stream(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAdminDelStream':
+                        return self.get_admin_del_stream(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAdminUpdateStream':
+                        return self.get_admin_update_stream(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAdminVodUrl':
+                        return self.get_admin_vod_url(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAdminFindStream':
+                        return self.get_admin_find_stream(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAdminDelVideo':
+                        return self.get_admin_del_video(request_dict=request_dict, userID=userID, response=response)
+                    elif operation == 'getAllServerJson':
+                        return self.get_all_server_json(userID=userID, response=response)
+                    elif operation == 'getAdminHlsVod':
+                        return self.get_admin_hls_vod(userID=userID, request_dict=request_dict, response=response)
+                    elif operation == 'getAdminAddStream':
+                        return self.get_admin_add_stream(userID=userID, request_dict=request_dict, response=response)
+                    else:
+                        return response.json(444, 'operation')
                 else:
                 else:
-                    return ResponseJSON(444)
+                    return response.json(404)
+
             else:
             else:
-                return HttpResponse(tokenManager.errorCodeInfo(error_code))
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(311)
+            return response.json(311)
 
 
-    def add_stream(self, token, userID, request_dict):
+    def add_stream(self, token, userID, request_dict, response):
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
@@ -129,54 +132,54 @@ class StreamMedia(View):
             if is_user is True:
             if is_user is True:
                 stream_queryset = Equipment_Stream.objects.filter(userID=userID, uid=uid, channel=channel, rank=1)
                 stream_queryset = Equipment_Stream.objects.filter(userID=userID, uid=uid, channel=channel, rank=1)
                 if stream_queryset.exists():
                 if stream_queryset.exists():
-                    return ResponseJSON(174)
+                    return response.json(174)
                 try:
                 try:
                     flag = Equipment_Stream.objects.create(userID=userID, status=status, uid=uid, channel=channel,
                     flag = Equipment_Stream.objects.create(userID=userID, status=status, uid=uid, channel=channel,
                                                            access_token=token)
                                                            access_token=token)
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, errorInfo)
+                    return response.json(424, errorInfo)
                 else:
                 else:
                     if flag:
                     if flag:
                         rtmp_url = RTMP_PUSH_URL
                         rtmp_url = RTMP_PUSH_URL
                         rtmp_name = uid + '_' + channel + '?userID=' + userID + '&uid=' + uid + '&channel=' + channel + '&access_token=' + token
                         rtmp_name = uid + '_' + channel + '?userID=' + userID + '&uid=' + uid + '&channel=' + channel + '&access_token=' + token
-                        return ResponseJSON(0, {'userID': userID, 'channel': channel,
-                                                'uid': uid,
-                                                'status': status,
-                                                'access_token': token,
-                                                'rtmp_url': rtmp_url,
-                                                'rtmp_name': rtmp_name})
+                        return response.json(0, {'userID': userID, 'channel': channel,
+                                                 'uid': uid,
+                                                 'status': status,
+                                                 'access_token': token,
+                                                 'rtmp_url': rtmp_url,
+                                                 'rtmp_name': rtmp_name})
             else:
             else:
-                return ResponseJSON(14)
+                return response.json(14)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444, 'channel, status, uid')
 
 
-    def delete_stream(self, request_dict, userID):
+    def delete_stream(self, request_dict, userID,response):
         id_list = request_dict.getlist('id', None)
         id_list = request_dict.getlist('id', None)
         if len(id_list):
         if len(id_list):
             for id in id_list:
             for id in id_list:
                 Equipment_Stream.objects.filter(id=id, userID=userID).delete()
                 Equipment_Stream.objects.filter(id=id, userID=userID).delete()
-            return ResponseJSON(0)
-        return ResponseJSON(444)
+            return response.json(0)
+        return response.json(444)
 
 
-    def update_stream(self, userID, request_dict):
+    def update_stream(self, userID, request_dict,response):
         id = request_dict.get('id', None)
         id = request_dict.get('id', None)
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
         is_update = Equipment_Stream.objects.filter(id=id, userID=userID).update(status=status)
         is_update = Equipment_Stream.objects.filter(id=id, userID=userID).update(status=status)
         if is_update:
         if is_update:
-            return ResponseJSON(0,{'id': id, 'status': status})
-        return ResponseJSON(444)
+            return response.json(0, {'id': id, 'status': status})
+        return response.json(444)
 
 
-    def query_stream(self, userID):
+    def query_stream(self, userID,response):
         equipment_stream_queryset = Equipment_Stream.objects.filter(userID=userID)
         equipment_stream_queryset = Equipment_Stream.objects.filter(userID=userID)
         if equipment_stream_queryset.exists():
         if equipment_stream_queryset.exists():
-            send_josn = CommonService.query_set_to_dict(equipment_stream_queryset)
-            return HttpResponse(CommonService.response_formal(
-                data={'code': 0, 'reason': u'Success', 'result': send_josn}))
-        return ResponseJSON(444)
+            res = CommonService.qs_to_dict(equipment_stream_queryset)
+            return response.json(0,res)
+        else:
+            return response.json(0)
 
 
-    def get_all_video(self, request_dict, userID):
+    def get_all_video(self, request_dict, userID,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         if uid is not None and channel is not None:
         if uid is not None and channel is not None:
@@ -185,24 +188,23 @@ class StreamMedia(View):
             if own_permission is True or own_device is True:
             if own_permission is True or own_device is True:
                 s3 = S3ClassObject()
                 s3 = S3ClassObject()
                 data = s3.get_all_object(prefix=uid + '_' + channel + '/flv')
                 data = s3.get_all_object(prefix=uid + '_' + channel + '/flv')
-                # data = s3.get_all_object(prefix=uid + '_' + channel + '/')
-                return ResponseJSON(0, {'files': data})
+                return response.json(0, {'files': data})
             else:
             else:
-                return ResponseJSON(404)
-        return ResponseJSON(444)
+                return response.json(404)
+        return response.json(444,'uid,channel')
 
 
-    def get_vod_url(self, request_dict):
+    def get_vod_url(self, request_dict,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         filename = request_dict.get('filename', None)
         filename = request_dict.get('filename', None)
         if uid is not None and filename is not None and channel is not None:
         if uid is not None and filename is not None and channel is not None:
             s3 = S3ClassObject()
             s3 = S3ClassObject()
             url = s3.get_generate_vod_url(uid + '_' + channel + '/' + filename)
             url = s3.get_generate_vod_url(uid + '_' + channel + '/' + filename)
-            return ResponseJSON(0, {'url': url})
+            return response.json(0, {'url': url})
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def get_admin_all_stream(self, request_dict, userID):
+    def get_admin_all_stream(self, request_dict, userID,response):
         # 判断
         # 判断
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
@@ -212,16 +214,16 @@ class StreamMedia(View):
             if equipment_stream_queryset.exists():
             if equipment_stream_queryset.exists():
                 equipment_stream_count = equipment_stream_queryset.count()
                 equipment_stream_count = equipment_stream_queryset.count()
                 equipment_stream_res = equipment_stream_queryset[(page - 1) * line:page * line]
                 equipment_stream_res = equipment_stream_queryset[(page - 1) * line:page * line]
-                send_json = CommonService.query_set_to_dict(equipment_stream_res)
+                send_json = CommonService.qs_to_dict(equipment_stream_res)
                 send_json['count'] = equipment_stream_count
                 send_json['count'] = equipment_stream_count
-                send_json = CommonService.query_set_to_dict(equipment_stream_queryset)
-                return ResponseJSON(0, send_json)
+                send_json = CommonService.qs_to_dict(equipment_stream_queryset)
+                return response.json(0, send_json)
             else:
             else:
-                return ResponseJSON(0)
+                return response.json(0)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_admin_del_stream(self, request_dict, userID):
+    def get_admin_del_stream(self, request_dict, userID,response):
         # 判断
         # 判断
         own_permission = ModelService.check_permission(userID=userID, permID=10)
         own_permission = ModelService.check_permission(userID=userID, permID=10)
         if own_permission is True:
         if own_permission is True:
@@ -230,12 +232,12 @@ class StreamMedia(View):
             if len(id_list):
             if len(id_list):
                 for id in id_list:
                 for id in id_list:
                     Equipment_Stream.objects.filter(id=id).delete()
                     Equipment_Stream.objects.filter(id=id).delete()
-                return ResponseJSON(0)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
-        return ResponseJSON(404)
+                return response.json(444)
+        return response.json(404)
 
 
-    def get_admin_del_video(self, request_dict, userID):
+    def get_admin_del_video(self, request_dict, userID,response):
         # 判断
         # 判断
         own_permission = ModelService.check_permission(userID=userID, permID=10)
         own_permission = ModelService.check_permission(userID=userID, permID=10)
         if own_permission is True:
         if own_permission is True:
@@ -257,11 +259,11 @@ class StreamMedia(View):
                         s3 = S3ClassObject()
                         s3 = S3ClassObject()
                         response = s3.del_object_list(keylist=key_list)
                         response = s3.del_object_list(keylist=key_list)
                         if response['Deleted']:
                         if response['Deleted']:
-                            return ResponseJSON(0,
-                                                                             {'deleted': response['Deleted']})
-        return ResponseJSON(444)
+                            return response.json(0,
+                                                {'deleted': response['Deleted']})
+        return response.json(444)
 
 
-    def get_del_video(self, request_dict, userID):
+    def get_del_video(self, request_dict, userID,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         if uid is not None and channel is not None:
         if uid is not None and channel is not None:
@@ -280,12 +282,12 @@ class StreamMedia(View):
                         s3 = S3ClassObject()
                         s3 = S3ClassObject()
                         response = s3.del_object_list(keylist=key_list)
                         response = s3.del_object_list(keylist=key_list)
                         if response['Deleted']:
                         if response['Deleted']:
-                            return ResponseJSON(0)
+                            return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
-        return ResponseJSON(444)
+                return response.json(404)
+        return response.json(444)
 
 
-    def get_admin_update_stream(self, userID, request_dict):
+    def get_admin_update_stream(self, userID, request_dict,response):
         own_permission = ModelService.check_permission(userID=userID, permID=50)
         own_permission = ModelService.check_permission(userID=userID, permID=50)
         if own_permission is True:
         if own_permission is True:
             id = request_dict.get('id', None)
             id = request_dict.get('id', None)
@@ -294,13 +296,13 @@ class StreamMedia(View):
             if param_flag is True:
             if param_flag is True:
                 is_update = Equipment_Stream.objects.filter(id=id).update(status=status)
                 is_update = Equipment_Stream.objects.filter(id=id).update(status=status)
                 if is_update:
                 if is_update:
-                    return ResponseJSON(0, {'id': id, 'status': status})
+                    return response.json(0, {'id': id, 'status': status})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_admin_vod_url(self, userID, request_dict):
+    def get_admin_vod_url(self, userID, request_dict,response):
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             uid = request_dict.get('uid', None)
             uid = request_dict.get('uid', None)
@@ -309,13 +311,13 @@ class StreamMedia(View):
             if uid is not None and filename is not None and channel is not None:
             if uid is not None and filename is not None and channel is not None:
                 s3 = S3ClassObject()
                 s3 = S3ClassObject()
                 url = s3.get_generate_vod_url(uid + '_' + channel + '/' + filename)
                 url = s3.get_generate_vod_url(uid + '_' + channel + '/' + filename)
-                return ResponseJSON(0, {'url': url})
+                return response.json(0, {'url': url})
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_admin_find_stream(self, userID, request_dict):
+    def get_admin_find_stream(self, userID, request_dict,response):
         own_permission = ModelService.check_permission(userID=userID, permID=20)
         own_permission = ModelService.check_permission(userID=userID, permID=20)
         if own_permission is True:
         if own_permission is True:
             content = request_dict.get('content', None)
             content = request_dict.get('content', None)
@@ -329,17 +331,17 @@ class StreamMedia(View):
                 if equipment_stream_queryset.exists():
                 if equipment_stream_queryset.exists():
                     equipment_stream_count = equipment_stream_queryset.count()
                     equipment_stream_count = equipment_stream_queryset.count()
                     equipment_stream_res = equipment_stream_queryset[(page - 1) * line:page * line]
                     equipment_stream_res = equipment_stream_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.query_set_to_dict(equipment_stream_res)
+                    send_json = CommonService.qs_to_dict(equipment_stream_res)
                     send_json['count'] = equipment_stream_count
                     send_json['count'] = equipment_stream_count
-                    return ResponseJSON(0, send_json)
+                    return response.json(0, send_json)
                 else:
                 else:
-                    return ResponseJSON(0)
+                    return response.json(0)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_all_server_json(self, userID):
+    def get_all_server_json(self, userID,response):
         own_permission = ModelService.check_permission(userID=userID, permID=20)
         own_permission = ModelService.check_permission(userID=userID, permID=20)
         if own_permission is True:
         if own_permission is True:
             url = NGINX_RTMP_STAT
             url = NGINX_RTMP_STAT
@@ -347,11 +349,11 @@ class StreamMedia(View):
             xml_content = res.text
             xml_content = res.text
             xml_dict = xmltodict.parse(xml_content)
             xml_dict = xmltodict.parse(xml_content)
             if len(xml_dict):
             if len(xml_dict):
-                return ResponseJSON(0, {'data': xml_dict})
+                return response.json(0, {'data': xml_dict})
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_admin_add_stream(self, token, userID, request_dict):
+    def get_admin_add_stream(self, token, userID, request_dict,response):
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
@@ -361,31 +363,31 @@ class StreamMedia(View):
             if own_perm is True:
             if own_perm is True:
                 stream_queryset = Equipment_Stream.objects.filter(uid=uid, channel=channel)
                 stream_queryset = Equipment_Stream.objects.filter(uid=uid, channel=channel)
                 if stream_queryset.exists():
                 if stream_queryset.exists():
-                    return ResponseJSON(174)
+                    return response.json(174)
                 try:
                 try:
                     flag = Equipment_Stream.objects.create(userID=userID, status=status, uid=uid, channel=channel,
                     flag = Equipment_Stream.objects.create(userID=userID, status=status, uid=uid, channel=channel,
                                                            access_token=token)
                                                            access_token=token)
                 except Exception as e:
                 except Exception as e:
                     errorInfo = traceback.format_exc()
                     errorInfo = traceback.format_exc()
                     print(errorInfo)
                     print(errorInfo)
-                    return ResponseJSON(424, {'details': errorInfo})
+                    return response.json(424, {'details': errorInfo})
                 else:
                 else:
                     if flag:
                     if flag:
                         rtmp_url = RTMP_PUSH_URL
                         rtmp_url = RTMP_PUSH_URL
                         rtmp_name = uid + '_' + channel + '?userID=' + userID + '&uid=' + uid + '&channel=' + channel + '&access_token=' + token
                         rtmp_name = uid + '_' + channel + '?userID=' + userID + '&uid=' + uid + '&channel=' + channel + '&access_token=' + token
-                        return ResponseJSON(0,
-                                                                         {'userID': userID, 'channel': channel,
-                                                                                   'uid': uid,
-                                                                                   'status': status,
-                                                                                   'access_token': token,
-                                                                                   'rtmp_url': rtmp_url,
-                                                                                   'rtmp_name': rtmp_name})
+                        return response.json(0,
+                                            {'userID': userID, 'channel': channel,
+                                             'uid': uid,
+                                             'status': status,
+                                             'access_token': token,
+                                             'rtmp_url': rtmp_url,
+                                             'rtmp_name': rtmp_name})
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
-    def get_admin_hls_vod(self, request_dict, userID):
+    def get_admin_hls_vod(self, request_dict, userID,response):
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         own_permission = ModelService.check_permission(userID=userID, permID=30)
         if own_permission is True:
         if own_permission is True:
             uid = request_dict.get('uid', None)
             uid = request_dict.get('uid', None)
@@ -407,15 +409,15 @@ class StreamMedia(View):
                 if res is True:
                 if res is True:
                     domain_prefix = 'http://d3596w5a6euckc.cloudfront.net/vod'
                     domain_prefix = 'http://d3596w5a6euckc.cloudfront.net/vod'
                     vod_url = domain_prefix + '/' + vod_key + '.m3u8'
                     vod_url = domain_prefix + '/' + vod_key + '.m3u8'
-                    return ResponseJSON(0, {'vodurl': vod_url})
+                    return response.json(0, {'vodurl': vod_url})
                 else:
                 else:
-                    return ResponseJSON(403)
+                    return response.json(403)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(444)
         else:
         else:
-            return ResponseJSON(404)
+            return response.json(404)
 
 
-    def get_vod_hls(self, request_dict):
+    def get_vod_hls(self, request_dict,response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         channel = request_dict.get('channel', None)
         channel = request_dict.get('channel', None)
         filename = request_dict.get('filename', None)
         filename = request_dict.get('filename', None)
@@ -440,11 +442,11 @@ class StreamMedia(View):
                                                      expires_at=expires_at,
                                                      expires_at=expires_at,
                                                      private_key_file=os.path.join(BASE_DIR,
                                                      private_key_file=os.path.join(BASE_DIR,
                                                                                    'Ansjer/file/pk-APKAINI6BNPKV54NHH7Q.pem'))
                                                                                    'Ansjer/file/pk-APKAINI6BNPKV54NHH7Q.pem'))
-                return ResponseJSON(0, {'vodurl': vod_url,'vodCookie': vodCookie})
+                return response.json(0, {'vodurl': vod_url, 'vodCookie': vodCookie})
             else:
             else:
-                return ResponseJSON(403)
+                return response.json(403)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
 
 
 
 
 # 推流验证
 # 推流验证
@@ -482,12 +484,14 @@ def Auth_Live(request, *callback_args,
     if request.method == 'POST':
     if request.method == 'POST':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.POST
         request_dict = request.POST
+    response = ResponseObject()
     token = request_dict.get('token', None)
     token = request_dict.get('token', None)
     if token is not None:
     if token is not None:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = request_dict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             uid = request_dict.get('uid', None)
             uid = request_dict.get('uid', None)
             channel = request_dict.get('channel', None)
             channel = request_dict.get('channel', None)
             if userID is not None and uid is not None and channel is not None:
             if userID is not None and uid is not None and channel is not None:
@@ -561,7 +565,7 @@ def send_video_s3(request, *callback_args,
                             subprocess.Popen(rm_common, shell=True)
                             subprocess.Popen(rm_common, shell=True)
         return HttpResponse(status=403)
         return HttpResponse(status=403)
     else:
     else:
-        return ResponseJSON(444)
+        return HttpResponse(404)
 
 
 
 
 @csrf_exempt
 @csrf_exempt
@@ -575,7 +579,7 @@ def push_flv_s3(request, *callback_args,
         request_dict = request.POST
         request_dict = request.POST
     # 文件名
     # 文件名
     basename = request_dict.get('basename', None)
     basename = request_dict.get('basename', None)
-    # print(basename)
+    response = ResponseObject()
     if basename != None:
     if basename != None:
         base_path = 'tmp/flv/'
         base_path = 'tmp/flv/'
         file_base_path = base_path + basename
         file_base_path = base_path + basename
@@ -624,5 +628,5 @@ def push_flv_s3(request, *callback_args,
                             except Exception as e:
                             except Exception as e:
                                 print(repr(e))
                                 print(repr(e))
                                 pass
                                 pass
-                        return ResponseJSON(code)
-    return ResponseJSON(444)
+                        return response.json(code)
+    return response.json(444)

+ 15 - 12
Controller/SysManage.py

@@ -12,15 +12,16 @@
 @Contact: chanjunkai@163.com
 @Contact: chanjunkai@163.com
 """
 """
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
-from Service.TokenManager import JSONTokenManager
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
-from Ansjer.config import *
-from Service.ResponseService import *
+from Ansjer.settings import BASE_DIR
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+import os
 
 
 
 
 @csrf_exempt
 @csrf_exempt
-def updateLog(request, *callback_args, **callback_kwargs):
+def updateLog(request):
     if request.method == 'GET':
     if request.method == 'GET':
         request.encoding = 'utf-8'
         request.encoding = 'utf-8'
         request_dict = request.GET
         request_dict = request.GET
@@ -29,12 +30,14 @@ def updateLog(request, *callback_args, **callback_kwargs):
         request_dict = request.POST
         request_dict = request.POST
     token = request_dict.get('token',None)
     token = request_dict.get('token',None)
     content = request_dict.get('content',None)
     content = request_dict.get('content',None)
+    response = ResponseObject()
     param_flag = CommonService.get_param_flag(data=[token,content])
     param_flag = CommonService.get_param_flag(data=[token,content])
     if param_flag is True:
     if param_flag is True:
-        tokenManager = JSONTokenManager()
-        error_code = tokenManager.verify_AToken(token)
-        if error_code == 0:
-            userID = tokenManager.accessDict.get('userID', None)
+        tko = TokenObject(token)
+        tko.valid()
+        response.lang = tko.lang
+        if tko.code == 0:
+            userID = tko.userID()
             own_permission = ModelService.check_permission(userID=userID,permID=50)
             own_permission = ModelService.check_permission(userID=userID,permID=50)
             if own_permission is True:
             if own_permission is True:
                 file_path = os.path.join(BASE_DIR,'static/Help/version.txt')
                 file_path = os.path.join(BASE_DIR,'static/Help/version.txt')
@@ -43,11 +46,11 @@ def updateLog(request, *callback_args, **callback_kwargs):
                         f.write(content)
                         f.write(content)
                 except Exception as e:
                 except Exception as e:
                     pass
                     pass
-                return ResponseJSON(0)
+                return response.json(0)
             else:
             else:
-                return ResponseJSON(404)
+                return response.json(404)
         else:
         else:
-            return HttpResponse(tokenManager.errorCodeInfo(error_code))
+            return response.json(tko.code)
     else:
     else:
-        return ResponseJSON(444)
+        return response.json(444)
 
 

+ 18 - 10
Controller/Test.py

@@ -15,19 +15,20 @@ from django.views.generic.base import View
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 # from Ansjer.settings import *
 # from Ansjer.settings import *
-from Service.TokenManager import *
 from django.contrib import auth
 from django.contrib import auth
 from django.http import HttpResponseRedirect
 from django.http import HttpResponseRedirect
 '''
 '''
 http://192.168.136.40:8077/Test
 http://192.168.136.40:8077/Test
 '''
 '''
 import json
 import json
-from Service.ResponseService import *
 import requests
 import requests
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
 from django.middleware.csrf import get_token
 from django.middleware.csrf import get_token
 from django.http import JsonResponse
 from django.http import JsonResponse
 from ratelimit.decorators import ratelimit
 from ratelimit.decorators import ratelimit
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+
 
 
 class Test(View):
 class Test(View):
     '''
     '''
@@ -45,25 +46,32 @@ class Test(View):
     @ratelimit(key='ip', rate='1/m')
     @ratelimit(key='ip', rate='1/m')
     # 查询
     # 查询
     def get(self, request, *args, **kwargs):
     def get(self, request, *args, **kwargs):
-        return ResponseJSON(0)
+        response = ResponseObject()
+
+        return response.json(0)
 
 
     # 增加
     # 增加
     def post(self, request, *args, **kwargs):
     def post(self, request, *args, **kwargs):
-
-
-        return ResponseJSON(0, {'test': 123})
+        response = ResponseObject()
+        return response.json(0)
 
 
     # 修改 资源改变
     # 修改 资源改变
     def put(self, request):
     def put(self, request):
-        return ResponseJSON(404)
+        response = ResponseObject()
+        return response.json(0)
 
 
     # 修改 属性改变
     # 修改 属性改变
     def PATCH(self, request):
     def PATCH(self, request):
-        return ResponseJSON(404)
+        response = ResponseObject()
+        return response.json(0)
 
 
     # 删除
     # 删除
     def delete(self, request):
     def delete(self, request):
-        return ResponseJSON(404)
+        response = ResponseObject()
+
+        return response.json(0)
 
 
     def validation(self, request_dict, *args, **kwargs):
     def validation(self, request_dict, *args, **kwargs):
-        return ResponseJSON(404)
+        response = ResponseObject()
+
+        return response.json(0)

File diff suppressed because it is too large
+ 145 - 747
Controller/UserManger.py


BIN
Controller/__pycache__/AccessLog.cpython-36.pyc


BIN
Controller/__pycache__/AdminManage.cpython-36.pyc


BIN
Controller/__pycache__/AppInfo.cpython-36.pyc


BIN
Controller/__pycache__/CheckUserData.cpython-36.pyc


BIN
Controller/__pycache__/DeviceLog.cpython-36.pyc


BIN
Controller/__pycache__/DeviceManage.cpython-36.pyc


BIN
Controller/__pycache__/DeviceMeal.cpython-36.pyc


BIN
Controller/__pycache__/EquipmentInfo.cpython-36.pyc


BIN
Controller/__pycache__/EquipmentManager.cpython-36.pyc


BIN
Controller/__pycache__/EquipmentOTA.cpython-36.pyc


BIN
Controller/__pycache__/EquipmentSensor.cpython-36.pyc


BIN
Controller/__pycache__/EquipmentStatus.cpython-36.pyc


BIN
Controller/__pycache__/FeedBackInfo.cpython-36.pyc


BIN
Controller/__pycache__/HlsManage.cpython-36.pyc


BIN
Controller/__pycache__/LogAccess.cpython-36.pyc


BIN
Controller/__pycache__/LogManager.cpython-36.pyc


BIN
Controller/__pycache__/MealManage.cpython-36.pyc


BIN
Controller/__pycache__/OTAEquipment.cpython-36.pyc


BIN
Controller/__pycache__/OauthManage.cpython-36.pyc


BIN
Controller/__pycache__/PermissionManager.cpython-36.pyc


BIN
Controller/__pycache__/StreamMedia.cpython-36.pyc


BIN
Controller/__pycache__/SysManage.cpython-36.pyc


BIN
Controller/__pycache__/Test.cpython-36.pyc


BIN
Controller/__pycache__/UserController.cpython-36.pyc


BIN
Controller/__pycache__/UserManger.cpython-36.pyc


BIN
Controller/__pycache__/shareUserPermission.cpython-36.pyc


+ 114 - 121
Controller/shareUserPermission.py

@@ -2,16 +2,14 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
 from django.core import serializers
 from django.core import serializers
 import traceback, simplejson as json
 import traceback, simplejson as json
-from django.shortcuts import HttpResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
 from django.core.exceptions import FieldError
 from django.core.exceptions import FieldError
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
-from Service.TokenManager import JSONTokenManager
 from Model.models import Device_User, Device_Info, Role
 from Model.models import Device_User, Device_Info, Role
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-from Service.ResponseService import *
-
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
 
 
 
 
 class searchUserView(View):
 class searchUserView(View):
@@ -29,7 +27,7 @@ class searchUserView(View):
         fieldDict = request.GET
         fieldDict = request.GET
         return self.searchUser(fieldDict, args, kwargs)
         return self.searchUser(fieldDict, args, kwargs)
 
 
-    def searchUserSQL(self, fieldDict, *args, **kwargs):
+    def searchUserSQL(self, fieldDict, response, *args, **kwargs):
         exact = fieldDict.get('exact', True)
         exact = fieldDict.get('exact', True)
         if exact == '0' or exact == 'False':
         if exact == '0' or exact == 'False':
             exact = False
             exact = False
@@ -38,31 +36,30 @@ class searchUserView(View):
 
 
         if 'exact' in fieldDict.keys():
         if 'exact' in fieldDict.keys():
             fieldDict.pop('exact')
             fieldDict.pop('exact')
-
         try:
         try:
-            if  exact == 'True' or exact == 1:
+            if exact == 'True' or exact == 1:
                 User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
                 User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
             elif exact == 'False' or exact == 0:
             elif exact == 'False' or exact == 0:
                 if 'username' in fieldDict.keys():
                 if 'username' in fieldDict.keys():
-                    User = Device_User.objects.filter(username = fieldDict.get('username',
-                                                                                           None)).order_by('-data_joined')
+                    User = Device_User.objects.filter(username=fieldDict.get('username',
+                                                                             None)).order_by('-data_joined')
                 elif 'userEmail' in fieldDict.keys():
                 elif 'userEmail' in fieldDict.keys():
-                    User = Device_User.objects.filter(userEmail = fieldDict.get('userEmail',
-                                                                                           None)).order_by('-data_joined')
+                    User = Device_User.objects.filter(userEmail=fieldDict.get('userEmail',
+                                                                              None)).order_by('-data_joined')
                 elif 'userID' in fieldDict.keys():
                 elif 'userID' in fieldDict.keys():
-                    User = Device_User.objects.filter(userID = fieldDict.get('userID',
-                                                                                           None)).order_by('-data_joined')
+                    User = Device_User.objects.filter(userID=fieldDict.get('userID',
+                                                                           None)).order_by('-data_joined')
                 else:
                 else:
                     User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
                     User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
             else:
             else:
                 User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
                 User = Device_User.objects.filter(**fieldDict).order_by('-data_joined')
 
 
         except FieldError:
         except FieldError:
-            return ResponseFormal(502)
+            return response.json(502)
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('查询数据库错误: %s' % errorInfo)
             print('查询数据库错误: %s' % errorInfo)
-            return ResponseFormal(500,{'details':repr(e)})
+            return response.json(500, {'details': repr(e)})
         else:
         else:
             if User:
             if User:
                 ddUser = User[0].device_info_set.all()
                 ddUser = User[0].device_info_set.all()
@@ -71,32 +68,30 @@ class searchUserView(View):
                 if ddUser:
                 if ddUser:
                     sqlJSON1 = serializers.serialize('json', ddUser)
                     sqlJSON1 = serializers.serialize('json', ddUser)
                     sqlList1 = json.loads(sqlJSON1)
                     sqlList1 = json.loads(sqlJSON1)
-                    device_Info_dict={}
-                    device_Info_list=[]
+                    device_Info_dict = {}
+                    device_Info_list = []
                     for eachJson1 in sqlList1:
                     for eachJson1 in sqlList1:
-                        device_Info_dict['primaryUserID']=eachJson1['fields']['primaryUserID']
-                        device_Info_dict['Type']=eachJson1['fields']['Type']
-                        device_Info_dict['UID']=eachJson1['fields']['UID']
-                        device_Info_dict['pk']=eachJson1['pk']
-                        device_Info_dict['NickName']=eachJson1['fields']['NickName']
-                        device_Info_dict['View_Password']=eachJson1['fields']['View_Password']
-                        device_Info_dict['View_Account']=eachJson1['fields']['View_Account']
-                        device_Info_dict['Online']=eachJson1['fields']['Online']
-                        device_Info_dict['EventNotification']=eachJson1['fields']['EventNotification']
-                        device_Info_dict['ChannelIndex']=eachJson1['fields']['ChannelIndex']
-                        device_Info_dict['EventNotification']=eachJson1['fields']['EventNotification']
-                        device_Info_dict['NotificationMode']=eachJson1['fields']['NotificationMode']
-
+                        device_Info_dict['primaryUserID'] = eachJson1['fields']['primaryUserID']
+                        device_Info_dict['Type'] = eachJson1['fields']['Type']
+                        device_Info_dict['UID'] = eachJson1['fields']['UID']
+                        device_Info_dict['pk'] = eachJson1['pk']
+                        device_Info_dict['NickName'] = eachJson1['fields']['NickName']
+                        device_Info_dict['View_Password'] = eachJson1['fields']['View_Password']
+                        device_Info_dict['View_Account'] = eachJson1['fields']['View_Account']
+                        device_Info_dict['Online'] = eachJson1['fields']['Online']
+                        device_Info_dict['EventNotification'] = eachJson1['fields']['EventNotification']
+                        device_Info_dict['ChannelIndex'] = eachJson1['fields']['ChannelIndex']
+                        device_Info_dict['EventNotification'] = eachJson1['fields']['EventNotification']
+                        device_Info_dict['NotificationMode'] = eachJson1['fields']['NotificationMode']
                         device_Info_list.append(device_Info_dict)
                         device_Info_list.append(device_Info_dict)
-                        device_Info_dict={}
+                        device_Info_dict = {}
                     sqlList[0]['device_info'] = device_Info_list
                     sqlList[0]['device_info'] = device_Info_list
                 sqlDict = dict(zip(["datas"], [sqlList]))
                 sqlDict = dict(zip(["datas"], [sqlList]))
-                return ResponseFormal(0, sqlDict)
+                return response.json(0, sqlDict)
             else:
             else:
-                # 发送邮件
-                # sms()
-                return ResponseFormal(102)
-    def searchUserPCSQL(self, fieldDict):
+                return response.json(102)
+
+    def searchUserPCSQL(self, fieldDict, response):
         try:
         try:
             page = int(fieldDict['page'])
             page = int(fieldDict['page'])
             line = int(fieldDict['line'])
             line = int(fieldDict['line'])
@@ -104,57 +99,56 @@ class searchUserView(View):
             fieldDict.pop('line')
             fieldDict.pop('line')
             fieldDict.pop('type')
             fieldDict.pop('type')
             if len(fieldDict) > 0:
             if len(fieldDict) > 0:
-                searchCondition=CommonService.get_kwargs(data=fieldDict)
+                searchCondition = CommonService.get_kwargs(data=fieldDict)
                 device_user_queryset = Device_User.objects.filter(**searchCondition).order_by('-data_joined')
                 device_user_queryset = Device_User.objects.filter(**searchCondition).order_by('-data_joined')
             else:
             else:
                 device_user_queryset = Device_User.objects.all().order_by('-data_joined')
                 device_user_queryset = Device_User.objects.all().order_by('-data_joined')
         except FieldError:
         except FieldError:
-            return ResponseFormal(502)
+            return response.json(502)
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('查询数据库错误: %s' % errorInfo)
             print('查询数据库错误: %s' % errorInfo)
-            return ResponseFormal(500, {"details": repr(e)})
+            return response.json(500, {"details": repr(e)})
         else:
         else:
             if device_user_queryset:
             if device_user_queryset:
                 device_user_count = device_user_queryset.count()
                 device_user_count = device_user_queryset.count()
-                device_user_res=device_user_queryset[(page-1)*line:page*line]
-                sqlDict = CommonService.query_set_to_dict(device_user_res)
+                device_user_res = device_user_queryset[(page - 1) * line:page * line]
+                sqlDict = CommonService.qs_to_dict(device_user_res)
                 for k, v in enumerate(sqlDict["datas"]):
                 for k, v in enumerate(sqlDict["datas"]):
                     for val in device_user_res:
                     for val in device_user_res:
-                        if v['pk']==val.userID:
-                            device_info_query_set=val.device_info_set.all()
-                            device_info_list = CommonService.query_set_to_dict(device_info_query_set)
+                        if v['pk'] == val.userID:
+                            device_info_query_set = val.device_info_set.all()
+                            device_info_list = CommonService.qs_to_dict(device_info_query_set)
                             # device_user关联到device_info
                             # device_user关联到device_info
-                            sqlDict["datas"][k]['device_info']=device_info_list
-                    if len(v['fields']['role'])>0:
-                        role_query_set=Role.objects.get(rid=v['fields']['role'][0])
+                            sqlDict["datas"][k]['device_info'] = device_info_list
+                    if len(v['fields']['role']) > 0:
+                        role_query_set = Role.objects.get(rid=v['fields']['role'][0])
                         sqlDict["datas"][k]['fields']['role'].append(role_query_set.roleName)
                         sqlDict["datas"][k]['fields']['role'].append(role_query_set.roleName)
                 sqlDict['count'] = device_user_count
                 sqlDict['count'] = device_user_count
-                return ResponseFormal(0,sqlDict)
+                return response.json(0, sqlDict)
             else:
             else:
-                return ResponseFormal(0,{"datas":""})
+                return response.json(0, {"datas": ""})
+
     def searchUser(self, fieldDict, *args, **kwargs):
     def searchUser(self, fieldDict, *args, **kwargs):
-        if fieldDict != None:
-            token = fieldDict.get('token', None)
-            if token != None:
-                tokenManager = JSONTokenManager()
-                error_code = tokenManager.verify_AToken(token)
-                if error_code == 0:
-                    fieldDict = fieldDict.dict()
-                    fieldDict.pop('token')
-                    type = fieldDict.get('type',None)
-                    if type == 'PC':
-                        response = HttpResponse(self.searchUserPCSQL(fieldDict))
-                    else:
-                        response = HttpResponse(self.searchUserSQL(fieldDict, args, kwargs))
-                    return response
+        response = ResponseObject()
+        token = fieldDict.get('token', None)
+        if token != None:
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                fieldDict = fieldDict.dict()
+                fieldDict.pop('token')
+                type = fieldDict.get('type', None)
+                if type == 'PC':
+                    return self.searchUserPCSQL(fieldDict, response)
                 else:
                 else:
-                    response = HttpResponse(tokenManager.errorCodeInfo(error_code))
-                    return response
+                    return self.searchUserSQL(fieldDict, response, args, kwargs)
             else:
             else:
-                return ResponseJSON(444)
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(444)
+            return response.json(444)
+
 
 
 class shareUserEquipmentView(View):
 class shareUserEquipmentView(View):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
@@ -186,34 +180,32 @@ class shareUserEquipmentView(View):
                 sharedAll = 1
                 sharedAll = 1
             else:
             else:
                 sharedAll = 0
                 sharedAll = 0
-
+        response = ResponseObject()
         if token != None and GuestID != None:
         if token != None and GuestID != None:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                MasterID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                MasterID = tko.userID()
                 if sharedAll and MasterID != None:
                 if sharedAll and MasterID != None:
-                    response = HttpResponse(self.shareUserSQL(MasterID, GuestID, True, args, kwargs))
-                    return response
+                    return self.shareUserSQL(MasterID, GuestID, True, response, args, kwargs)
                 if content != None and MasterID != None:
                 if content != None and MasterID != None:
-                    response = HttpResponse(self.shareUserSQL(MasterID, GuestID, False, args, content=content))
-                    return response
+                    return self.shareUserSQL(MasterID, GuestID, False, response, args, content=content)
                 else:
                 else:
-                    return ResponseJSON(804)
+                    return response.json(804)
             else:
             else:
-                response = HttpResponse(tokenManager.errorCodeInfo(error_code))
-                return response
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(800)
+            return response.json(800)
 
 
-    def shareUserSQL(self, MasterID, GuestID, sharedAll, *args, **kwargs):
+    def shareUserSQL(self, MasterID, GuestID, sharedAll, response, *args, **kwargs):
         try:
         try:
-            Guest = Device_User.objects.filter(userID = GuestID).order_by('-data_joined')
-            Master = Device_Info.objects.filter(userID_id = MasterID).order_by('-data_joined')
+            Guest = Device_User.objects.filter(userID=GuestID).order_by('-data_joined')
+            Master = Device_Info.objects.filter(userID_id=MasterID).order_by('-data_joined')
         except Exception as e:
         except Exception as e:
             errorInfo = traceback.format_exc()
             errorInfo = traceback.format_exc()
             print('查询数据库错误: %s' % errorInfo)
             print('查询数据库错误: %s' % errorInfo)
-            return ResponseFormal(500, {"details": repr(e)})
+            return response.json(500, {"details": repr(e)})
         else:
         else:
             if Master:
             if Master:
                 if Guest:
                 if Guest:
@@ -262,46 +254,47 @@ class shareUserEquipmentView(View):
 
 
                     if len(querysetList) == 0:
                     if len(querysetList) == 0:
                         if sharedAll:
                         if sharedAll:
-                            return ResponseFormal(160)
+                            return response.json(160)
                         else:
                         else:
                             if len(UID) > 0:
                             if len(UID) > 0:
-                                return ResponseFormal(160,{'error_UID': UID})
+                                return response.json(160, {'error_UID': UID})
                             else:
                             else:
-                                return ResponseFormal(160)
+                                return response.json(160)
                     else:
                     else:
                         try:
                         try:
                             equipmentCount = Device_Info.objects.bulk_create(querysetList)
                             equipmentCount = Device_Info.objects.bulk_create(querysetList)
                         except Exception as e:
                         except Exception as e:
                             errorInfo = traceback.format_exc()
                             errorInfo = traceback.format_exc()
                             print('添加数据库记录错误: %s' % errorInfo)
                             print('添加数据库记录错误: %s' % errorInfo)
-                            return ResponseFormal(500, {"details": repr(e)})
+                            return response.json(500, {"details": repr(e)})
                         else:
                         else:
                             if dictLen > 0:
                             if dictLen > 0:
-                                return ResponseFormal(0, {
-                                            'Shared': dictLen,
-                                            'Sharing': len(querysetList),
-                                            'errormsg': u'A part of the equipment has been shared!',
-                                        })
+                                return response.json(0, {
+                                    'Shared': dictLen,
+                                    'Sharing': len(querysetList),
+                                    'errormsg': u'A part of the equipment has been shared!',
+                                })
                             else:
                             else:
                                 if sharedAll:
                                 if sharedAll:
-                                    return ResponseFormal(0, {
+                                    return response.json(0, {
                                         'Sharing': len(querysetList)
                                         'Sharing': len(querysetList)
                                     })
                                     })
                                 else:
                                 else:
                                     if len(UID) > 0:
                                     if len(UID) > 0:
-                                        return ResponseFormal(0, {
+                                        return response.json(0, {
                                             'error_UID': UID,
                                             'error_UID': UID,
                                             'Sharing': len(querysetList),
                                             'Sharing': len(querysetList),
                                         })
                                         })
                                     else:
                                     else:
-                                        return ResponseFormal(0, {
+                                        return response.json(0, {
                                             'Sharing': len(querysetList),
                                             'Sharing': len(querysetList),
                                         })
                                         })
                 else:
                 else:
-                    return ResponseFormal(113)
+                    return response.json(113)
 
 
             else:
             else:
-                return ResponseFormal(172)
+                return response.json(172)
+
 
 
 class unsharedUserEquipmentView(View):
 class unsharedUserEquipmentView(View):
     @method_decorator(csrf_exempt)
     @method_decorator(csrf_exempt)
@@ -326,6 +319,8 @@ class unsharedUserEquipmentView(View):
         content = queryset.get('content', None)
         content = queryset.get('content', None)
         unsharedAll = queryset.get('unsharedAll', False)
         unsharedAll = queryset.get('unsharedAll', False)
 
 
+        response = ResponseObject()
+
         if unsharedAll in ('1', '0'):
         if unsharedAll in ('1', '0'):
             unsharedAll = bool(int(unsharedAll))
             unsharedAll = bool(int(unsharedAll))
         elif unsharedAll in ('true', 'false'):
         elif unsharedAll in ('true', 'false'):
@@ -335,36 +330,34 @@ class unsharedUserEquipmentView(View):
                 unsharedAll = 0
                 unsharedAll = 0
 
 
         if token != None and GuestID != None and len(GuestID) > 0:
         if token != None and GuestID != None and len(GuestID) > 0:
-            tokenManager = JSONTokenManager()
-            error_code = tokenManager.verify_AToken(token)
-            if error_code == 0:
-                MasterID = tokenManager.accessDict.get('userID', None)
+            tko = TokenObject(token)
+            tko.valid()
+            response.lang = tko.lang
+            if tko.code == 0:
+                MasterID = tko.userID()
                 if unsharedAll and MasterID != None:
                 if unsharedAll and MasterID != None:
-                    response = HttpResponse(self.unsharedUserEquipmentSQL(MasterID, GuestID, True, args, kwargs))
-                    return response
+                    return self.unsharedUserEquipmentSQL(MasterID, GuestID, True, response, args, kwargs)
                 else:
                 else:
                     if content != None and MasterID != None:
                     if content != None and MasterID != None:
-                        response = HttpResponse(self.unsharedUserEquipmentSQL(MasterID, GuestID, False, args, content=content))
-                        return response
+                        return self.unsharedUserEquipmentSQL(MasterID, GuestID, False, response, args, content=content)
                     else:
                     else:
-                        return ResponseJSON(805)
+                        return response.json(805)
 
 
             else:
             else:
-                response = HttpResponse(tokenManager.errorCodeInfo(error_code))
-                return response
+                return response.json(tko.code)
         else:
         else:
-            return ResponseJSON(800)
+            return response.json(800)
 
 
-    def unsharedUserEquipmentSQL(self, MasterID, GuestID, unsharedAll, *args, **kwargs):
+    def unsharedUserEquipmentSQL(self, MasterID, GuestID, unsharedAll, response, *args, **kwargs):
         if unsharedAll:
         if unsharedAll:
             try:
             try:
                 equipmentCount = Device_Info.objects.filter(userID_id=GuestID, primaryUserID=MasterID).delete()
                 equipmentCount = Device_Info.objects.filter(userID_id=GuestID, primaryUserID=MasterID).delete()
             except Exception as e:
             except Exception as e:
                 errorInfo = traceback.format_exc()
                 errorInfo = traceback.format_exc()
                 print('删除设备更新数据库错误: %s' % errorInfo)
                 print('删除设备更新数据库错误: %s' % errorInfo)
-                return ResponseFormal(171, {"details": repr(e)})
+                return response.json(171, {"details": repr(e)})
             else:
             else:
-                return ResponseFormal(0, {'removeCount': equipmentCount[0]})
+                return response.json(0, {'removeCount': equipmentCount[0]})
         else:
         else:
             content = kwargs.get('content', None)
             content = kwargs.get('content', None)
             if content != None:
             if content != None:
@@ -394,17 +387,17 @@ class unsharedUserEquipmentView(View):
                         removeCount += equipmentCount[0]
                         removeCount += equipmentCount[0]
 
 
                 if len(errorRemove) > 0:
                 if len(errorRemove) > 0:
-                    return ResponseFormal(171, {
-                                'removeCount': removeCount,
-                                'error_UID': errorRemove,
-                            })
+                    return response.json(171, {
+                        'removeCount': removeCount,
+                        'error_UID': errorRemove,
+                    })
                 else:
                 else:
-                    if len(errorUID) >0:
-                        return ResponseFormal(173, {
+                    if len(errorUID) > 0:
+                        return response.json(173, {
                             'removeCount': removeCount,
                             'removeCount': removeCount,
                             'error_UID': errorUID,
                             'error_UID': errorUID,
                         })
                         })
                     else:
                     else:
-                        return ResponseFormal(0, {
-                                     'removeCount': removeCount
+                        return response.json(0, {
+                            'removeCount': removeCount
                         })
                         })

+ 3 - 15
DB/data.json

@@ -1,17 +1,5 @@
 {
 {
-  "token": "",
-  "content": {
-    "View_Account": "admin",
-    "UID": "9M23R17PHD8TJDT8111A",
-    "NotificationMode": 1,
-    "EventNotification": 0,
-    "DebugMode": 0,
-    "NickName": "\ud83c\udf3a",
-    "qvgaLevel": 0,
-    "mMonitorIndex": 0,
-    "View_Password": "541034aaa",
-    "Online": 0,
-    "Type": 10,
-    "ChannelIndex": 0
-  }
+  "code": "200",
+  "res": {},
+  "msg":{}
 }
 }

BIN
Model/__pycache__/models.cpython-36.pyc


+ 18 - 70
Model/models.py

@@ -1,13 +1,16 @@
-from django.db import models
 from itertools import chain
 from itertools import chain
+
+from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
+from django.db import models
 from django.utils import six
 from django.utils import six
-from imagekit.processors import ResizeToFill
-from imagekit.models import ProcessedImageField
-import Ansjer.settings as api_settings
 from django.utils.encoding import python_2_unicode_compatible
 from django.utils.encoding import python_2_unicode_compatible
-from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
+from imagekit.models import ProcessedImageField
+from imagekit.processors import ResizeToFill
+
+from Ansjer.config import SERVER_DOMAIN
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 
 
+
 class PermissionsManager(models.Manager):
 class PermissionsManager(models.Manager):
     use_in_migrations = True
     use_in_migrations = True
 
 
@@ -162,7 +165,7 @@ class Device_User(AbstractBaseUser):
                         verbose_name=u'头像',
                         verbose_name=u'头像',
                         # 图片将处理成85x85的尺寸
                         # 图片将处理成85x85的尺寸
                         processors=[ResizeToFill(85, 85)],)
                         processors=[ResizeToFill(85, 85)],)
-    userIconUrl = models.URLField(blank = True, max_length = 128, default=api_settings.SERVER_DOMAIN
+    userIconUrl = models.URLField(blank = True, max_length = 128, default=SERVER_DOMAIN
                                                                           + '/account/getAvatar/User/defaultUser.png')
                                                                           + '/account/getAvatar/User/defaultUser.png')
     NickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'用户昵称')
     NickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'用户昵称')
     is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
     is_superuser = models.IntegerField(blank=True, default=0, verbose_name=u'用户类型')
@@ -276,42 +279,14 @@ class Device_User(AbstractBaseUser):
             return permslist
             return permslist
     def has_module_perms(self, app_label):
     def has_module_perms(self, app_label):
         return True
         return True
-    '''
-
-    def toJSON(self, fields=None, exclude=None):
-        Fields = []
-        for field in self._meta.fields:
-            Fields.append(field.name)
-
-        data = {}
-        for attr in Fields:
-            if fields and attr not in fields:
-                continue
-            if exclude and attr in exclude:
-                continue
-
-            if isinstance(getattr(self, attr), datetime.datetime):
-                data[attr] = getattr(self, attr).strftime('%Y-%m-%d %H:%M:%S')
-            elif isinstance(getattr(self, attr), datetime.date):
-                data[attr] = getattr(self, attr).strftime('%Y-%m-%d')
-            elif isinstance(getattr(self, attr), ProcessedImageFieldFile):
-                data[attr] = str(getattr(self, attr))
-            else:
-                data[attr] = getattr(self, attr)
-
-        import simplejson as json
-        return json.dumps(data, ensure_ascii=False)
-    '''
     @property
     @property
     def is_staff(self):
     def is_staff(self):
         return self.is_superuser
         return self.is_superuser
 
 
 class Device_Info(models.Model):
 class Device_Info(models.Model):
     id = models.CharField(blank=True, max_length=32, primary_key=True)
     id = models.CharField(blank=True, max_length=32, primary_key=True)
-    # to_field 指定当前关系与被关联对象中的哪个字段关联。默认情况下,to_field 指向被关联对象的主键
     userID = models.ForeignKey(Device_User, blank=True, to_field='userID',
     userID = models.ForeignKey(Device_User, blank=True, to_field='userID',
                                    on_delete=models.CASCADE)
                                    on_delete=models.CASCADE)
-
     NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
     NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
     UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID')
     UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID')
     SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID')
     SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID')
@@ -341,32 +316,6 @@ class Device_Info(models.Model):
 
 
     def __str__(self):
     def __str__(self):
         return self.NickName
         return self.NickName
-    '''
-    def toJSON(self, fields=None, exclude=None):
-        Fields = []
-        for field in self._meta.fields:
-            Fields.append(field.name)
-
-        data = {}
-        for attr in Fields:
-            if fields and attr not in fields:
-                continue
-            if exclude and attr in exclude:
-                continue
-
-            if isinstance(getattr(self, attr), datetime.datetime):
-                data[attr] = getattr(self, attr).strftime('%Y-%m-%d %H:%M:%S')
-            elif isinstance(getattr(self, attr), datetime.date):
-                data[attr] = getattr(self, attr).strftime('%Y-%m-%d')
-            elif isinstance(getattr(self, attr), Device_User):
-                data[attr] = getattr(self, attr).userID
-            else:
-                data[attr] = getattr(self, attr)
-
-        import simplejson as json
-        return json.dumps(data,ensure_ascii=False)
-    
-    '''
     def model_to_dict(self, fields=None, exclude=None):
     def model_to_dict(self, fields=None, exclude=None):
         opts = self._meta
         opts = self._meta
         data = {}
         data = {}
@@ -442,7 +391,7 @@ class Auth_Captcha(models.Model):
 class Access_Log(models.Model):
 class Access_Log(models.Model):
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     user = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'用户')
     user = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'用户')
-    operation = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'操作')
+    operation = models.CharField(max_length=100,db_index=True,null=True,blank=True,verbose_name=u'操作')
     ip = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'访问ip地址')
     ip = models.CharField(max_length=100,null=True,blank=True,verbose_name=u'访问ip地址')
     url = models.CharField(max_length=150,null=True,blank=True,verbose_name=u'访问路径')
     url = models.CharField(max_length=150,null=True,blank=True,verbose_name=u'访问路径')
     status = models.IntegerField(null=True,blank=True,verbose_name=u'状态')
     status = models.IntegerField(null=True,blank=True,verbose_name=u'状态')
@@ -491,7 +440,7 @@ class Equipment_Sensor(models.Model):
 class Equipment_Info(models.Model):
 class Equipment_Info(models.Model):
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     devUid = models.CharField(null=True, blank=True,max_length=32, verbose_name=u'设备ID')
     devUid = models.CharField(null=True, blank=True,max_length=32, verbose_name=u'设备ID')
-    devNickName = models.CharField(blank=True, max_length=32, default='', verbose_name=u'设备昵称')
+    devNickName = models.CharField(blank=True, max_length=32, default='',verbose_name=u'设备昵称')
     Channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
     Channel = models.IntegerField(null=True, blank=True, verbose_name=u'设备通道')
     eventType = models.IntegerField(null=True, blank=True, verbose_name=u'事件类型')
     eventType = models.IntegerField(null=True, blank=True, verbose_name=u'事件类型')
     viewAccont = models.CharField(blank=True,null=True, max_length=32, verbose_name=u'设备账户')
     viewAccont = models.CharField(blank=True,null=True, max_length=32, verbose_name=u'设备账户')
@@ -500,7 +449,8 @@ class Equipment_Info(models.Model):
     alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
     alarm = models.CharField(blank=True, max_length=256, verbose_name=u'报警信息')
     eventTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'设备报警时间')
     eventTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'设备报警时间')
     receiveTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'接收到报警时间')
     receiveTime = models.CharField(blank=True,null=True, max_length=16, verbose_name=u'接收到报警时间')
-
+    userID = models.ForeignKey(Device_User, null=True,blank=True, to_field='userID',
+                                   on_delete=models.CASCADE)
     def __str__(self):
     def __str__(self):
         return self.id
         return self.id
 
 
@@ -508,7 +458,7 @@ class Equipment_Info(models.Model):
         db_table = 'equipment_info'
         db_table = 'equipment_info'
         verbose_name = u'设备信息推送表'
         verbose_name = u'设备信息推送表'
         verbose_name_plural=verbose_name
         verbose_name_plural=verbose_name
-        ordering = ('id',)
+        ordering = ('-id',)
 
 
 class Feedback_Info(models.Model):
 class Feedback_Info(models.Model):
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
@@ -590,9 +540,8 @@ class Equipment_Version(models.Model):
         ordering = ('-data_joined',)
         ordering = ('-data_joined',)
         db_table = 'equipment_version'
         db_table = 'equipment_version'
 
 
-
 class App_Info(models.Model):
 class App_Info(models.Model):
-    
+
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     id = models.AutoField(primary_key=True,verbose_name=u'自增标记ID')
     appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
     appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
     appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
     appName = models.CharField(blank=True, max_length=32, verbose_name=u'app名称')
@@ -615,13 +564,13 @@ class App_Info(models.Model):
         verbose_name_plural=verbose_name
         verbose_name_plural=verbose_name
         ordering = ('id',)
         ordering = ('id',)
 
 
-
-'''
 class oauth_user(models.Model):
 class oauth_user(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     oid = models.CharField(max_length=36,unique=True,null=True,blank=True)
     oid = models.CharField(max_length=36,unique=True,null=True,blank=True)
     userID = models.OneToOneField("Device_User",verbose_name="用户表userID",to_field='userID',on_delete=models.CASCADE)
     userID = models.OneToOneField("Device_User",verbose_name="用户表userID",to_field='userID',on_delete=models.CASCADE)
-    
+    add_time = models.DateTimeField(blank=True,null=True, verbose_name=u'加入时间', auto_now_add=True)
+    update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
+
     def __str__(self):
     def __str__(self):
         return self.oid
         return self.oid
 
 
@@ -630,4 +579,3 @@ class oauth_user(models.Model):
         verbose_name = u'认证用户关联表'
         verbose_name = u'认证用户关联表'
         verbose_name_plural=verbose_name
         verbose_name_plural=verbose_name
         ordering = ('id',)
         ordering = ('id',)
-'''

+ 1 - 1
Object/AWS/SesClassObject.py

@@ -1,4 +1,4 @@
-from Ansjer.config import *
+from Ansjer.config import AWS_ACCESS_ID,AWS_ACCESS_SECRET,AWS_ACCESS_REGION,COMPANY_EMAIL
 from boto3.session import Session
 from boto3.session import Session
 import traceback
 import traceback
 
 

BIN
Object/AWS/__pycache__/SesClassObject.cpython-36.pyc


+ 51 - 0
Object/TokenObject1.py

@@ -0,0 +1,51 @@
+#!/usr/bin/env python3  
+# -*- coding: utf-8 -*-  
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerOA
+@software: PyCharm
+@DATE: 2018/8/13 15:36
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+@file: TokenObject.py
+@Contact: chanjunkai@163.com
+"""
+from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET
+import jwt
+from Model.models import oauth_user
+
+class TokenObject:
+
+    def __init__(self, token=None):
+        if token == 'debug':
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvaWQiOiJhNDVmN2U3MC04NTAwLTRkOTItYWRkZS1mMmMxMDdkYzVkYzEiLCJsYW5nIjpudWxsLCJleHAiOjE1NzA5ODY4Mzl9.uDLfBjUQqWQB0pOMtXN17iikEbxztDhcus_UCH36XZw'
+        if token == 'test':
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvaWQiOiJhNDVmN2U3MC04NTAwLTRkOTItYWRkZS1mMmMxMDdkYzVkYzEiLCJsYW5nIjpudWxsLCJleHAiOjE1MzUwNzQ0Njl9.MW7iU_LMo_uqceYeoePVZiyJoYc1wZTJTxpxOa0aha8'
+        self.token = token
+        self.code = 0
+        self.userID = None
+        self.lang = None
+
+    def valid(self):
+        try:
+            res = jwt.decode(self.token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
+            self.userID = res.get('userID', None)
+            self.lang = res.get('lang', None)
+        except jwt.ExpiredSignatureError as e:
+            print('过期')
+            print(repr(e))
+            self.code = 307
+        except Exception as e:
+            print(repr(e))
+            self.code = 303
+
+    def userID(self):
+        oid = self.oid
+
+        if oid is not None:
+            oauth_user_qs = oauth_user.objects.filter(oid=oid)
+            if oauth_user_qs.exists():
+
+                return oauth_user_qs[0].userID.userID
+        return None

+ 31 - 2
Service/CommonService.py

@@ -7,7 +7,9 @@ from pathlib import Path
 from django.utils import timezone
 from django.utils import timezone
 from Ansjer.settings import SERVER_HOST
 from Ansjer.settings import SERVER_HOST
 from django_global_request.middleware import get_request
 from django_global_request.middleware import get_request
-from Ansjer.config import BASE_DIR
+from Ansjer.settings import BASE_DIR
+from random import Random
+
 
 
 # 复用性且公用较高封装代码在这
 # 复用性且公用较高封装代码在这
 class CommonService:
 class CommonService:
@@ -36,7 +38,7 @@ class CommonService:
     # 定义静态方法
     # 定义静态方法
     # 格式化query_set转dict
     # 格式化query_set转dict
     @staticmethod
     @staticmethod
-    def query_set_to_dict(query_set):
+    def qs_to_dict(query_set):
         sqlJSON = serializers.serialize('json', query_set)
         sqlJSON = serializers.serialize('json', query_set)
         sqlList = json.loads(sqlJSON)
         sqlList = json.loads(sqlJSON)
         sqlDict = dict(zip(["datas"], [sqlList]))
         sqlDict = dict(zip(["datas"], [sqlList]))
@@ -247,3 +249,30 @@ class CommonService:
             return None
             return None
         else:
         else:
             return userID
             return userID
+
+    @staticmethod
+    def req_path(request, ssl=False):
+        get_host = request.get_host()  # 获取请求地址
+        if ssl is True:
+            tran_p = "https://"
+        else:
+            tran_p = "http://"
+        url_all = tran_p + get_host
+        return url_all
+
+    # 生成随机数
+    @staticmethod
+    def RandomStr(randomlength=8, number=True):
+        str = ''
+        if number == False:
+            characterSet = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsT' \
+                           'tUuVvWwXxYyZz0123456789'
+        else:
+            characterSet = '0123456789'
+
+        length = len(characterSet) - 1
+
+        random = Random()
+        for index in range(randomlength):
+            str += characterSet[random.randint(0, length)]
+        return str

+ 27 - 32
Service/MiscellService.py

@@ -1,18 +1,22 @@
-from Object.AWS.SesClassObject import SesClassObject
-from Ansjer.settings import SERVER_DOMAIN
-from Ansjer.config import SECRET_KEY
-from Service.CommonService import CommonService
-import time, traceback
-from Controller.CheckUserData import getRandom, TokenLink
-import simplejson as json
-from Service.TokenManager import JSONTokenManager
-from Service.ModelService import ModelService
 import datetime
 import datetime
-from django.utils.timezone import utc
+import time
+import traceback
+
 import requests
 import requests
+import simplejson as json
+from django.utils.timezone import utc
+
+from Ansjer.config import SERVER_DOMAIN
+from Ansjer.settings import SECRET_KEY
+from Controller.CheckUserData import getRandom, TokenLink
+from Object.AWS.SesClassObject import SesClassObject
+from Object.TokenObject import TokenObject
 from Object.mongodb import mongodb
 from Object.mongodb import mongodb
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
 from Service.TemplateService import TemplateService
 from Service.TemplateService import TemplateService
-from Model.models import Device_User
+
+
 # 杂项类,共用行不高,但有些地方需求
 # 杂项类,共用行不高,但有些地方需求
 
 
 
 
@@ -61,37 +65,28 @@ class MiscellService():
 
 
     # 获取访问用户名称
     # 获取访问用户名称
     @staticmethod
     @staticmethod
-    def get_access_name(request):
-        if request.method == 'GET':
-            request_dict = request.GET
-        if request.method == 'POST':
-            request_dict = request.POST
+    def get_access_name(request_dict):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
-        userName = request_dict.get('userName', None)
-        userEmail = request_dict.get('userEmail', None)
-        if userName is not None:
-            return userName
-        elif userEmail is not None:
-            return userEmail
-        elif token is not None:
-            tM = JSONTokenManager()
-            tM.verify_AToken(token)
-            userID = tM.accessDict.get('userID', None)
-            username = ModelService.get_user_name(userID=userID)
-            return username
-        else:
-            return None
+        user = None
+        if token is not None:
+            tko = TokenObject(token)
+            tko.valid()
+            if tko.code == 0:
+                userID = ModelService.get_userID_by_oid(tko.oid)
+                user = ModelService.get_user_name(userID)
+        return user
 
 
     @staticmethod
     @staticmethod
     def add_access_log(request, status_code):
     def add_access_log(request, status_code):
+        request.encoding = 'utf-8'
         if request.method == 'GET':
         if request.method == 'GET':
             request_dict = request.GET
             request_dict = request.GET
         if request.method == 'POST':
         if request.method == 'POST':
-            # request.encoding = 'utf-8'
             request_dict = request.POST
             request_dict = request.POST
         api_list = TemplateService.log_api()
         api_list = TemplateService.log_api()
         request_path = request.path.strip().strip('/')
         request_path = request.path.strip().strip('/')
         if request_path in api_list:
         if request_path in api_list:
+            user = MiscellService.get_access_name(request_dict=request_dict)
             clientIP = CommonService.get_ip_address(request)
             clientIP = CommonService.get_ip_address(request)
             now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
             now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
             password = request_dict.get('userPwd', None)
             password = request_dict.get('userPwd', None)
@@ -100,7 +95,7 @@ class MiscellService():
                 request_dict.pop('userPwd')
                 request_dict.pop('userPwd')
             content = json.dumps(request_dict)
             content = json.dumps(request_dict)
             add_data = {
             add_data = {
-                'user': MiscellService.get_access_name(request=request),
+                'user': user,
                 'ip': clientIP,
                 'ip': clientIP,
                 'status': status_code,
                 'status': status_code,
                 'url': request.META['SERVER_PROTOCOL'] + '-' + request.method + '-' + request.path,
                 'url': request.META['SERVER_PROTOCOL'] + '-' + request.method + '-' + request.path,

+ 13 - 4
Service/ModelService.py

@@ -14,7 +14,7 @@ class ModelService:
     def getValidateMember(userID):
     def getValidateMember(userID):
         device_user_query_set = Device_User.objects.get(userID=userID)
         device_user_query_set = Device_User.objects.get(userID=userID)
         role_query_set = device_user_query_set.role.all()
         role_query_set = device_user_query_set.role.all()
-        role_dict = CommonService.query_set_to_dict(role_query_set)
+        role_dict = CommonService.qs_to_dict(role_query_set)
         permission = role_dict["datas"][0]["fields"]["permission"]
         permission = role_dict["datas"][0]["fields"]["permission"]
         if len(permission):
         if len(permission):
             if 92 in permission:
             if 92 in permission:
@@ -27,7 +27,7 @@ class ModelService:
         device_user_query_set = Device_User.objects.get(userID=userID)
         device_user_query_set = Device_User.objects.get(userID=userID)
         role_query_set = device_user_query_set.role.all()
         role_query_set = device_user_query_set.role.all()
         if role_query_set.exists():
         if role_query_set.exists():
-            role_dict = CommonService.query_set_to_dict(role_query_set)
+            role_dict = CommonService.qs_to_dict(role_query_set)
             permission = role_dict["datas"][0]["fields"]["permission"]
             permission = role_dict["datas"][0]["fields"]["permission"]
             if len(permission):
             if len(permission):
                 return permission
                 return permission
@@ -50,7 +50,7 @@ class ModelService:
             if device_user_query_set:
             if device_user_query_set:
                 role_query_set = device_user_query_set.role.all()
                 role_query_set = device_user_query_set.role.all()
                 if role_query_set:
                 if role_query_set:
-                    role_dict = CommonService.query_set_to_dict(role_query_set)
+                    role_dict = CommonService.qs_to_dict(role_query_set)
                     permission = role_dict["datas"][0]["fields"]["permission"]
                     permission = role_dict["datas"][0]["fields"]["permission"]
                     print(permission)
                     print(permission)
                     if len(permission) > 0:
                     if len(permission) > 0:
@@ -123,4 +123,13 @@ class ModelService:
                                                           View_Password=View_Password, ChannelIndex=ChannelIndex)
                                                           View_Password=View_Password, ChannelIndex=ChannelIndex)
         if device_info_queryset.exists():
         if device_info_queryset.exists():
             return True
             return True
-        return False
+        return False
+
+    # 根据oid获取userID
+    @staticmethod
+    def get_userID_by_oid(oid):
+        if oid is not None:
+            oauth_user_qs = oauth_user.objects.filter(oid=oid)
+            if oauth_user_qs.exists():
+                return oauth_user_qs[0].userID.userID
+        return None

+ 4 - 40
Service/TemplateService.py

@@ -16,17 +16,6 @@ class TemplateService:
     @staticmethod
     @staticmethod
     def log_api():
     def log_api():
         apiList = [
         apiList = [
-            'account/login',
-            # 'account/logout',
-            'account/authcode',
-            'account/register',
-            'account/changePwd',
-            'account/active',
-            'account/forget',
-            'account/activate',
-            'account/password/edit',
-            'account/password/mobiletoResetPwd',
-            'account/modifyPwd',
             'account/showUserMore',
             'account/showUserMore',
             'account/perfectUserInfo',
             'account/perfectUserInfo',
             'account/getAvatar',
             'account/getAvatar',
@@ -43,7 +32,6 @@ class TemplateService:
             'equipment/modifyUserEquipment',
             'equipment/modifyUserEquipment',
             'equipment/showAllUserEquipment',
             'equipment/showAllUserEquipment',
             'accessLog/findEquipmentInfo',
             'accessLog/findEquipmentInfo',
-            'accessLog/testApi',
             'OTA/uploads',
             'OTA/uploads',
             'OTA/download',
             'OTA/download',
             'OTA/downloads',
             'OTA/downloads',
@@ -53,8 +41,6 @@ class TemplateService:
             'OTA/showAllEquipmentVersion',
             'OTA/showAllEquipmentVersion',
             'OTA/getUpdataFileUrl',
             'OTA/getUpdataFileUrl',
             'mobile/uploadlogFile',
             'mobile/uploadlogFile',
-            # 'toekn/refreshToken',
-            'import/batchAddEquipment',
             'roles/addNewRole',
             'roles/addNewRole',
             'roles/queryRole',
             'roles/queryRole',
             'roles/delRole',
             'roles/delRole',
@@ -64,37 +50,16 @@ class TemplateService:
             'perms/queryPerms',
             'perms/queryPerms',
             'perms/modifyPerms',
             'perms/modifyPerms',
             'permsManager/queryRolePerms',
             'permsManager/queryRolePerms',
-            'api-token-auth',
-            'api-token-refresh',
-            'api-token-verify',
-
             'uploads/upgrade',
             'uploads/upgrade',
             'upgrade/download',
             'upgrade/download',
             'downloads/upgrade',
             'downloads/upgrade',
             'getOTAurl/getUpdataFileUrl',
             'getOTAurl/getUpdataFileUrl',
-
-            # 'media/stream',
-            # 'media/auth_stream',
-            # 'media/send_video_s3',
-            # 'media/auth_live',
-
             'equipment/sensor',
             'equipment/sensor',
             'equipment/info',
             'equipment/info',
-
             'adminManage/manage',
             'adminManage/manage',
-
             'equipment/OTA',
             'equipment/OTA',
-
             'feedbackInfo',
             'feedbackInfo',
-
             'appInfo',
             'appInfo',
-            'meal/manage',
-            'device/meal',
-            'HlsManage',
-            'device/manage',
-            # 'device/online',
-            # 'device/offline',
-            # 'device/updateIP',
         ]
         ]
         return apiList
         return apiList
 
 
@@ -106,7 +71,6 @@ class TemplateService:
             data = {
             data = {
                 'cn': {
                 'cn': {
                     'title': '注册码获取邮件',
                     'title': '注册码获取邮件',
-                    # 'body': '恭喜你来到安士佳公司物联网系统,您获取的注册码为:',
                     'body': """
                     'body': """
                         <!DOCTYPE html>
                         <!DOCTYPE html>
     <html>
     <html>
@@ -243,7 +207,7 @@ class TemplateService:
                     <div class="xboxcontent">
                     <div class="xboxcontent">
                         <div class="neirong">
                         <div class="neirong">
                             <p><b>请核对你的用户名:</b><span id="userName" class="font_darkblue">{username}</span></p>
                             <p><b>请核对你的用户名:</b><span id="userName" class="font_darkblue">{username}</span></p>
-                            <p><b>验证码:</b><span class="font_lightblue"><span id="yzm" data="{captcha}" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">{captcha}</span></span><br><span class="font_gray">(请输入该验证码完成验证,验证码5分钟内有效!)</span></p>
+                            <p><b>验证码:</b><span class="font_lightblue"><span id="yzm" data="{captcha}" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">{captcha}</span></span><br><span class="font_gray">(请输入该验证码完成验证,验证码10分钟内有效!)</span></p>
                             <div class="line">如果你未申请注册服务,请忽略该邮件。</div>
                             <div class="line">如果你未申请注册服务,请忽略该邮件。</div>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -399,7 +363,7 @@ class TemplateService:
                     <div class="xboxcontent">
                     <div class="xboxcontent">
                         <div class="neirong">
                         <div class="neirong">
                             <p><b>Please check your username:</b><span id="userName" class="font_darkblue">{username}</span></p>
                             <p><b>Please check your username:</b><span id="userName" class="font_darkblue">{username}</span></p>
-                            <p><b>Your validation code:</b><span class="font_lightblue"><span id="yzm" data="{captcha}" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">{captcha}</span></span><br><span class="font_gray">(Please input the verification code to complete the verification. The verification code is valid in 5 minutes!)</span></p>
+                            <p><b>Your validation code:</b><span class="font_lightblue"><span id="yzm" data="{captcha}" onclick="return false;" t="7" style="border-bottom: 1px dashed rgb(204, 204, 204); z-index: 1; position: static;">{captcha}</span></span><br><span class="font_gray">(Please input the verification code to complete the verification. The verification code is valid in 10 minutes!)</span></p>
                             <div class="line">If you have not applied for registration, please ignore the email.</div>
                             <div class="line">If you have not applied for registration, please ignore the email.</div>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -438,11 +402,11 @@ class TemplateService:
             data = {
             data = {
                 'cn': {
                 'cn': {
                     'title': '重置密码信息',
                     'title': '重置密码信息',
-                    'body': '您好{username}\n' + '您已经请求了重置密码,可以点击下面的链接来重置密码\n' + '<p><a href="{domain}/account/password/edit?reset_password_token={token}&reset_pwd_val={redis_val}">{domain}/account/password/edit?reset_password_token={token}&reset_pwd_val={redis_val}</a></p>\n' + '更改后的密码为:.{userPwd}\n如果你没有请求重置密码,请忽略这封邮件.\n在你点击上面链接修改密码之前,你的密码将会保持不变\n'
+                    'body': '您好{username}\n' + '您已经请求了重置密码,可以点击下面的链接来重置密码\n' + '<p><a href="{reset_link}">{reset_link}</a></p>\n' + '更改后的密码为: {reset_pwd}\n如果你没有请求重置密码,请忽略这封邮件.\n在你点击上面链接修改密码之前,你的密码将会保持不变\n'
                 },
                 },
                 'en': {
                 'en': {
                     'title': 'Reset the password information',
                     'title': 'Reset the password information',
-                    'body': 'Hello! Dear {username}.<br>You have asked to reset the password, and you can click the link below to reset the password.<br>' + '<p><a href="{domain}/account/password/edit?reset_password_token={token}&reset_pwd_val={redis_val}">{domain}/account/password/edit?reset_password_token={token}&reset_pwd_val={redis_val}</a></p><br>' + 'The new password is: {userPwd}<br>If you do not request to reset the password, please ignore this mail.',
+                    'body': 'Hello! Dear {username}.<br>You have asked to reset the password, and you can click the link below to reset the password.<br>' + '<p><a href="{reset_link}">{reset_link}</a></p><br>' + 'The new password is: {reset_pwd}<br>If you do not request to reset the password, please ignore this mail.',
                 }
                 }
             }
             }
         return data[language]
         return data[language]

BIN
Service/__pycache__/CommonService.cpython-36.pyc


BIN
Service/__pycache__/MiscellService.cpython-36.pyc


BIN
Service/__pycache__/ModelService.cpython-36.pyc


BIN
Service/__pycache__/TemplateService.cpython-36.pyc


BIN
Service/__pycache__/middleware.cpython-36.pyc


+ 7 - 12
Service/middleware.py

@@ -1,17 +1,12 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
+from django.utils.deprecation import MiddlewareMixin
+
 from Ansjer import settings as api_settings
 from Ansjer import settings as api_settings
+from Object.ResponseObject import ResponseObject
 from Service.MiscellService import MiscellService
 from Service.MiscellService import MiscellService
-from Service.ResponseService import ResponseJSON
-from django.utils.deprecation import MiddlewareMixin
-'''
-try:
-    from django.utils.deprecation import MiddlewareMixin
-except ImportError:  # pragma: no cover
-    # Not required for Django <= 1.9, see:
-    # https://docs.djangoproject.com/en/1.10/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware
-    MiddlewareMixin = object  # pragma: no cover
-'''
+
+
 class StatisticsUrlMiddleware(MiddlewareMixin):
 class StatisticsUrlMiddleware(MiddlewareMixin):
     def _https_statistics_to_reverse(self, request):
     def _https_statistics_to_reverse(self, request):
         '''
         '''
@@ -57,7 +52,8 @@ class StatisticsUrlMiddleware(MiddlewareMixin):
             print('process_request', request)
             print('process_request', request)
         result = self._https_statistics_to_reverse(request)
         result = self._https_statistics_to_reverse(request)
         if result == -1:
         if result == -1:
-            return ResponseJSON(910)
+            response = ResponseObject()
+            return response.json(910)
         return None
         return None
 
 
     def process_view(self, request, callback, callback_args, callback_kwargs):
     def process_view(self, request, callback, callback_args, callback_kwargs):
@@ -75,7 +71,6 @@ class StatisticsUrlMiddleware(MiddlewareMixin):
         :return: 必须返回 HttpResponse 对象. 这个 response 对象可以是传入函数的那一个原始对象(通常已被修改),也可以是全新生成的。
         :return: 必须返回 HttpResponse 对象. 这个 response 对象可以是传入函数的那一个原始对象(通常已被修改),也可以是全新生成的。
             该处理器能修改 response 的内容;一个常见的用途是内容压缩,如 gzip 所请求的 HTML 页面。
             该处理器能修改 response 的内容;一个常见的用途是内容压缩,如 gzip 所请求的 HTML 页面。
         '''
         '''
-
         self._https_statistics_to_close(request)
         self._https_statistics_to_close(request)
         ########记录访问日志
         ########记录访问日志
         if request.path !='/favicon.ico':
         if request.path !='/favicon.ico':

Some files were not shown because too many files changed in this diff