Browse Source

修改了超级管理员添加设备接口

pzb 6 years ago
parent
commit
26e8e221da
2 changed files with 82 additions and 1 deletions
  1. 2 0
      Ansjer/urls.py
  2. 80 1
      Controller/EquipmentManager.py

+ 2 - 0
Ansjer/urls.py

@@ -37,6 +37,8 @@ urlpatterns = [
     # 新删除设备接口
     url(r'^equipment/delete', EquipmentManager.deleteInterface),
     url(r'^equipment/add', EquipmentManager.addInterface),
+    url(r'^equipment/admin_add', EquipmentManager.admin_addInterface),
+
     url(r'^equipment/query', EquipmentManager.queryInterface),
 
     url(r'^OTA/uploads$', OTAEquipment.getUploadFiletoDirView.as_view()),

+ 80 - 1
Controller/EquipmentManager.py

@@ -3,7 +3,8 @@ import time
 import traceback
 
 import simplejson as json
-from Model.models import Device_Info, UID_Bucket
+from Model.models import Device_User,Device_Info, UID_Bucket
+from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -342,7 +343,85 @@ def addInterface(request):
     else:
         return response.json(444, {'param': 'UID,NickName,View_Account,View_Password,Type,ChannelIndex'})
 
+# 管理员添加
+def admin_addInterface(request):
+    request.encoding = 'utf-8'
+    response = ResponseObject()
+    if request.method == 'POST':
+        request_dict = request.POST
+    elif request.method == 'GET':
+        request_dict = request.GET
+    else:
+        return response.json(444)
+    token = request_dict.get('token', None)
+    deviceContent = request_dict.get('content', None)
+    username = request_dict.get('username', None)
+    if not username:
+        return response.json(444, 'username')
+    if not deviceContent:
+        return response.json(444, 'content')
+    tko = TokenObject(token)
+    response.lang = tko.lang
+    if tko.code != 0:
+        return response.json(tko.code)
+    userID = tko.userID
+    own_perm = ModelService.check_perm(userID, 40)
+    # 权限判断
+    if own_perm is not True:
+        return response.json(404)
+    # 查询id
+    user = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username))
+
+    if user.exists():
+        user_dict = CommonService.qs_to_dict(user)
+        userID = user_dict.get('datas')[0].get('pk')
+    else:
+        return response.json(104)
+    try:
+        deviceData = json.loads(deviceContent)
+        UID = deviceData.get('UID', None)
+        if not UID:
+            return response.json(444, 'content')
+        dValid = Device_Info.objects.filter(userID_id=userID, UID=UID)
+        if dValid:
+            return response.json(174)
+        else:
+            UID = deviceData.get('UID', '')
+            re_uid = re.compile(r'^[A-Za-z0-9]{20}$')
+            if re_uid.match(UID):
+                userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
+                                         **deviceData)
+                userDevice.save()
+
+                # is_bind = Device_Info.objects.filter(UID=UID, isShare=False)
+                # # 判断是否有已绑定用户
+                # if not is_bind.exists():
+                #     userDevice = Device_Info(id=CommonService.getUserID(getUser=False), userID_id=userID,
+                #                              **deviceData)
+                #     userDevice.save()
+                # else:
+                #     # 分享添加
+                #     if 'isShare' in deviceData:
+                #         deviceData['isShare'] = True
+                #     else:
+                #         deviceData['isShare'] = True
+                #     bind_userID = is_bind[0].userID_id
+                #     userDevice = Device_Info(id=CommonService.getUserID(getUser=False),
+                #                              userID_id=userID,
+                #                              primaryUserID=bind_userID,
+                #                              primaryMaster=ModelService.get_user_name(bind_userID),
+                #                              **deviceData)
+                #     userDevice.save()
+            else:
+                return response.json(444, 'UID')
 
+    except Exception as e:
+        errorInfo = traceback.format_exc()
+        print('添加设备错误: %s ' % errorInfo)
+        return response.json(178, repr(e))
+    else:
+        sqlDict = CommonService.qs_to_dict([userDevice])
+        return response.json(0, sqlDict)
 # 新删除设备
 def deleteInterface(request):
     '''