| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | from Model.models import *from Service.CommonService import CommonService# 针对模型封装的复用性代码class ModelService:    # 获取当前用户角色名    @staticmethod    def getRole(rid):        Roles = Role.objects.get(rid=rid)        return Roles.roleName    @staticmethod    def getValidateMember(userID):        device_user_query_set = Device_User.objects.get(userID=userID)        role_query_set = device_user_query_set.role.all()        role_dict = CommonService.qs_to_dict(role_query_set)        permission = role_dict["datas"][0]["fields"]["permission"]        if len(permission):            if 92 in permission:                return True        return False    # 获取用户所有权限    @staticmethod    def own_permission(userID):        device_user_query_set = Device_User.objects.get(userID=userID)        role_query_set = device_user_query_set.role.all()        if role_query_set.exists():            role_dict = CommonService.qs_to_dict(role_query_set)            permission = role_dict["datas"][0]["fields"]["permission"]            if len(permission):                return permission        return []    # 获取用户角色相关    @staticmethod    def own_role(userID):        device_user_query_set = Device_User.objects.get(userID=userID)        role_query_set = device_user_query_set.role.all()        if role_query_set.exists():            return {'rid': role_query_set[0].rid, 'roleName': role_query_set[0].roleName}        return {'rid': '', 'roleName': ''}    # 检测权限有无    @staticmethod    def check_permission(userID, permID):        try:            device_user_query_set = Device_User.objects.get(userID=userID)            if device_user_query_set:                role_query_set = device_user_query_set.role.all()                if role_query_set:                    role_dict = CommonService.qs_to_dict(role_query_set)                    permission = role_dict["datas"][0]["fields"]["permission"]                    print(permission)                    if len(permission) > 0:                        if permID in permission:                            return True        except Exception as e:            return False        return False    # 根据设备主键ID判断是否拥有该设备    @staticmethod    def check_user_own_device(userID, deviceID):        try:            device_user = Device_User.objects.get(userID=userID)            device_info_queryset = device_user.device_info_set.all().values('id')            id_list = []            for id_dict in list(device_info_queryset):                id_list.append(id_dict['id'])            if deviceID in id_list:                return True        except Exception as e:            return False        return False    # 根据设设备唯一名称UID判断是否拥有该设备    @staticmethod    def check_own_device(userID, UID):        device_info_queryset = Device_Info.objects.filter(userID_id=userID, UID=UID)        if device_info_queryset.exists():            return True        return False    # 根据userID获取用户名    @staticmethod    def get_user_name(userID):        try:            device_user = Device_User.objects.get(userID=userID)        except Exception as e:            return None        else:            return device_user.username    # 根据username获取userID    @staticmethod    def get_userID_byname(username):        try:            device_user = Device_User.objects.get(username=username)        except Exception as e:            return None        else:            return device_user.userID    # 访问日志添加    @staticmethod    def addAccessLog(data):        try:            access_log = Access_Log.objects.create(**data)        except Exception as e:            return False        else:            if access_log.id:                return True            else:                return False    # 判断设备账户信息是否正确    @staticmethod    def device_auth(UID, View_Account, View_Password, ChannelIndex):        device_info_queryset = Device_Info.objects.filter(UID=UID, View_Account=View_Account,                                                          View_Password=View_Password, ChannelIndex=ChannelIndex)        if device_info_queryset.exists():            return True        return False
 |