예제 #1
0
    def getUserInfo(self, username):
        '''
        用户查看自己的基本信息
        :param username:
            微信用户提供的用户名
        :return 'res[]/fail d':
        '''
        if not username:
            return 'fail', errors.NOT_BIND
        r = Db.select('t_user', where="wx_name=$username", vars=locals(), limit=1)  # 查看用户是否已绑定
        if not r:  # 用户还未绑定设备,即用户未注册账号
            return 'fail', errors.NOT_BIND
        u = r[0]  # 取出第一个用户为当前用户
        res = dict()  # 返回结果的字典
        res['id'] = u['id']  # 用户ID
        res['bt'] = Common.secToStr(u['bind_time'])  # 绑定时间
        res['bs'] = '已绑定'  # 绑定状态

        r2 = Db.select('t_user_attribute', what='count(*)', where="user_id=$u['id']", vars=locals())  # 获取登录次数
        if not r2:
            res['count'] = 0  # 登录次数
            res['last'] = Common.secToLast(0)  # 最后一次登录时间
        else:
            res['count'] = r2[0]['count(*)']  # 登录次数
            r3 = Db.select('t_user_attribute', where="user_id=$u['id']", vars=locals(), order="time desc",
                           limit=1)  # 获取最后一个记录
            res['last'] = Common.secToLast(r3[0].time)  # 最后一次登录时间
        return 'success', res
예제 #2
0
    def getDeviceLocationInfo(self, username):
        '''
        读取设备当前坐标信息
        :param username:
            微信用户提供的用户名
        :return 'res[]/fail d':
        '''
        if not username:
            return 'fail', errors.NOT_BIND
        r = Db.select('t_user', where="wx_name=$username", vars=locals(), limit=1)  # 查看用户是否已绑定
        if not r:  # 用户还未绑定设备
            return 'fail', errors.NOT_BIND
        u = r[0]  # 取出第一个用户为当前用户
        r1 = Db.select('t_device', where="id=$u['device_id']", vars=locals(), limit=1)  # 获取设备基本信息
        if not r1:  # 如果设备不存在,则为系统错误
            return 'fail', errors.ERROR_SYSTEM
        d = r1[0]  # 取出第一个设备作为当前设备
        res = dict()  # 返回结果的字典
        res['id'] = d['id']  # 设备ID

        r3 = Db.select('t_device_attribute', where="device_id=$d['id'] and gps!='-1,-1'", vars=locals(),
                       order="time desc",
                       limit=1)  # 获取最后一个记录
        if not r3:  # 返回默认坐标:北京
            res['lat'] = 0  # 经度
            res['lon'] = 0  # 纬度
            res['last'] = 0  # 最后一次上传时间
        else:
            l = r3[0]
            gps = l['gps']
            g = gps.split(',')  # 解析坐标值
            res['lat'] = g[0]  # 经度
            res['lon'] = g[1]  # 纬度
            res['last'] = Common.secToLast(l['time'])  # 最后一次上传时间
        return 'success', res
예제 #3
0
 def getSoundStatus(self, username):
     '''
     用户获取声音状态
     :param username:
     :return:
     '''
     if not username:
         return 'fail', errors.NOT_BIND, ''
     r = Db.select('t_user', where="wx_name=$username", vars=locals(), limit=1)  # 查看用户是否已绑定
     if not r:  # 用户还未绑定设备
         return 'fail', errors.NOT_BIND, ''
     u = r[0]  # 取出第一个用户为当前用户
     r1 = Db.select('t_device', where="id=$u['device_id']", vars=locals(), limit=1)  # 获取设备基本信息
     if not r1:  # 如果设备不存在,则为系统错误
         return 'fail', errors.ERROR_SYSTEM, ''
     d = r1[0]  # 取出第一个设备作为当前设备
     s = d['sound']  # 返回的指令状态
     t = 0
     '''查看指令队列是否有未执行的指令'''
     r2 = Db.select('t_order_quene', what="code,time", where="device_id=$d['id'] and status=1", vars=locals(),
                    order="time desc", limit=1)
     if r2:
         order = r2[0]  # 取出最后的一个指令码
         t = Common.secToLast(order['time'])
         if order['code'] == orders.OPEN_SOUND:
             s = 3  # 等待打开
         elif order['code'] == orders.CLOSE_SOUND:
             s = 4  # 等待关闭
     return 'success', s, t
예제 #4
0
    def getDeviceInfo(self, username):
        '''
        用户查看设备信息
        :param username:
            微信用户提供的用户名
        :return 'res[]/fail d':
        '''
        if not username:
            return 'fail', errors.NOT_BIND
        r = Db.select('t_user', where='wx_name = $username', vars=locals(), limit=1)  # 查看用户是否已绑定
        if not r:  # 用户还未绑定设备
            return 'fail', errors.NOT_BIND
        u = r[0]  # 取出第一个用户为当前用户
        r1 = Db.select('t_device', where="id=$u['device_id']", vars=locals(), limit=1)  # 获取设备基本信息
        if not r1:  # 如果设备不存在,则为系统错误
            return 'fail', errors.ERROR_SYSTEM
        d = r1[0]  # 取出第一个设备作为当前设备
        res = dict()  # 返回结果的字典
        res['id'] = d['id']  # 设备ID
        res['ct'] = Common.secToStr(d['create_time'])  # 生产日期
        res['bs'] = '已绑定'  # 绑定状态
        res['rf'] = d['delay']  # 收集数据频率

        r2 = Db.select('t_device_attribute', what='count(*)', where="device_id=$d['id']", vars=locals())  # 获取上传次数
        if not r2:
            res['count'] = 0  # 上传次数
            res['last'] = 0  # 最后一次上传时间
        else:
            res['count'] = r2[0]['count(*)']  # 上传次数
            r3 = Db.select('t_device_attribute', where="device_id=$d['id']", vars=locals(), order="time desc",
                           limit=1)  # 获取最后一个记录
            res['last'] = Common.secToLast(r3[0].time)  # 最后一次上传时间
        return 'success', res