Esempio n. 1
0
    def query_menus(db_session, id=None, returnList='tree'):
        if id is None:
            if returnList == 'tree':
                menus = []
                parent = db_session.query(Menus).filter(Menus.parent_id == 0).order_by(Menus.order.asc()).all()
                for item in parent:
                    children = db_session.query(Menus).filter(Menus.parent_id == item.id).order_by(Menus.order.asc()).all()
                    menu = to_dict(item)
                    if children:
                        menu['children'] = to_dict(children)
                    else:
                        menu['children'] = None
                    menus.append(menu)

                return {
                    'list': menus
                }
            else:
                menus = []
                parent = db_session.query(Menus).filter(Menus.parent_id == 0).order_by(Menus.order.asc()).all()
                for item in parent:
                    menus.append(to_dict(item))
                    children = db_session.query(Menus).filter(Menus.parent_id == item.id).order_by(Menus.order.asc()).all()
                    if children:
                        for ch in children:
                            ch.name = '|------- ' + ch.name
                            menus.append(to_dict(ch))

                return {
                    'list': menus
                }
        else:
            return db_session.query(Menus).filter(Menus.id == id).first()
Esempio n. 2
0
 def get(self, link_id=None, **kwargs):
     if link_id is None:
         pager = Pager(self)
         result = yield self.async_do(FuncService.query_link,self.db, pager=pager)
         self.json_return({
             'code':0,
             'data': to_dict(result)
         })
     else:
         result = yield self.async_do(FuncService.query_link, self.db, link_id=link_id)
         self.json_return({
             'code':0,
             'data': to_dict(result)
         })
Esempio n. 3
0
 def to_dict(self, data):
     """
     将 SqlAlchemy 查询的数据转成字典格式
     :param data:
     :return:
     """
     return to_dict(data)
Esempio n. 4
0
 def update_article_cache(db_session, cache_manager, async_do, id):
     """
     更新 或者 添加文章缓存
     :param cache_manager: 缓存控制
     :param async_do: 异步
     :param db_session: 数据库连接
     :param id: 文章查询标识id
     :return:
     """
     result = yield async_do(ArticleService.query_article, db_session, id)
     if not result is None:
         if isinstance(result, dict):
             yield async_do(
                 cache_manager.set,
                 redis_cache_keys['cache_article_key'].format(id),
                 json.dumps(result))
             # cache_manager.set(redis_cache_keys['cache_article_key'].format(id), json.dumps(result))
         else:
             try:
                 yield async_do(
                     cache_manager.set,
                     redis_cache_keys['cache_article_key'].format(id),
                     json.dumps(to_dict(result)))
                 # cache_manager.set(redis_cache_keys['cache_article_key'].format(id), json.dumps(to_dict(result)))
             except Exception as e:
                 logger.error('添加文章缓存失败  {0}'.format(e))
Esempio n. 5
0
 def save_login_user(self, user, authToken):
     """
     保存登录用户的信息 和 access Token
     :param user:
     :param authToken:
     :return:
     """
     save_user = to_dict(user)
     save_user.pop('user_pass')
     self.cache_manager.remove(key=session_keys['login_user'])
     self.cache_manager.set(key=session_keys['login_user'], value=json.dumps(save_user), expire_time=self.session_expire_time)
     self.cache_manager.set(key=authToken, value=authToken, expire_time=session_keys['auth_token_expire_time'])
Esempio n. 6
0
 def get(self, menuId=None, **kwargs):
     if menuId is None:
         returnType = self.get_argument('return', 'tree')
         result = yield self.async_do(MenusService.query_menus, self.db, None, returnType)
         self.json_return({
             'code':0,
             'data': result
         })
     else:
         result = yield self.async_do(MenusService.query_menus, self.db, menuId)
         self.json_return({
             'code': 0,
             'data': to_dict(result)
         })
Esempio n. 7
0
    def build_query(self, query):
        if self.pageSize != 0:
            ### 获取查询偏移量
            offset = (self.page - 1) * self.pageSize if self.page > 0 else 0
            ### 返回query对象
            queryData = query.limit(self.pageSize).offset(offset).all()
        else:
            queryData = query.all()

        result = {
            'list': to_dict(queryData),
            'nextStart': self.page + 1 if self.has_next() else 0,
            'pageSize': self.pageSize,
            'totalNum': self.totalCount,
            'hasMore': self.has_next()
        }

        return result