示例#1
0
 def filter_item(self, **kwargs):
     session = self.db
     if session is None:
         return None, None
     start = int(kwargs.get("start", -1))
     end = int(kwargs.get("end", -1))
     pk = kwargs.get("id", None)
     try:
         filter_obj = self.do_filter(**kwargs)
         if not filter_obj:
             return None, None
         if pk:
             return filter_obj.first(), 1
         order_by = kwargs.get("order_by", None)
         order_method = kwargs.get("order_method", None)
         if order_by is None:
             filter_obj = filter_obj.order_by(desc("id"))
         else:
             if order_method == "desc":
                 filter_obj = filter_obj.order_by(desc(order_by))
             else:
                 filter_obj = filter_obj.order_by(order_by)
         if start == -1 and end == -1:
             data = filter_obj.all()
             return data, len(data)
         else:
             pk = self.get_model_pk()
             if pk is None:
                 return None, None
             return filter_obj[start:end], filter_obj.with_entities(func.count(pk)).scalar()
     except Exception as e:
         logger.error(u"查询%s出错. %s, %s" % (self._model.__tablename__, e, kwargs))
         return None, None
 def do_filter(self, **kwargs):
     session = kwargs.get("session", None)
     if session is None:
         return None
     pk = kwargs.get("id", None)
     try:
         filter_obj = session.query(self._model)
         if pk is not None:
             return filter_obj.filter_by(id=pk)
         value = {
             k: self._clean_value(kwargs[k])
             for k in self._filter_value(kwargs)
         }
         filter_obj = filter_obj.filter_by(**value)
         kv = kwargs.get("like", None)
         if kv is not None:
             k, v = kv.split("^")
             filter_obj = filter_obj.filter(
                 getattr(self._model, k).like("%%%s%%" % v))
         id_list = kwargs.get("id_list", None)
         if id_list is not None:
             filter_obj = filter_obj.filter(
                 getattr(self._model, "id").in_(id_list))
         filter_condition = kwargs.get('filter_condition', None)
         if filter_condition is not None:
             filter_obj = filter_obj.filter(filter_condition)
         return filter_obj
     except Exception as e:
         logger.error(u"查询%s出错. %s, %s" %
                      (self._model.__tablename__, e, kwargs))
         return None
示例#3
0
 def change_position(self, data):
     room_id, p_id = data.get('room_id', None), data.get('p_id', 0)
     try:
         p_id = int(p_id)
         room = RoomTool.change_position(self.client, room_id, p_id)
         if room is not None:
             Response('room.info', room).response(clients=self.clients)
     except TypeError as e:
         logger.error(e)
 def get_model_pk(self):
     """
     获取model主键
     :return: Column
     """
     try:
         ins = inspect(self.model)
         return ins.primary_key[0]
     except Exception as e:
         logger.error("获取主键失败e" % e)
         return None
示例#5
0
 def get(self):
     try:
         data, total = self._controller_obj.filter_item(**self._input)
         self._data["total"] = total
         self._data["list"] = to_dict_obj(data)
         self._db_session.commit()
     except Exception as e:
         logger.error(u'查询user表失败: %s' % e)
         self._ret, self._msg = error_msg.SERVER_ERROR
         self._db_session.rollback()
     return self._response()
示例#6
0
 def _do_put(self):
     try:
         if self._controller_obj.update_item(**self._input):
             self._db_session.commit()
             return True
         else:
             self._db_session.rollback()
             return False
     except Exception as e:
         logger.error("put method error: %s" % e)
         return False
 def get_department_info(self, department_id):
     params = {"department_id": department_id}
     try:
         # 获取用户信息
         department_data = requests.get(
             settings.USER_CENTER_API['user_url'], params=params,
             timeout=5).json()
         department_info_list = department_data.get('data', [])
     except Exception as e:
         logger.error(u"获取用户信息异常. %s" % e)
         department_info_list = []
     return department_info_list
示例#8
0
 def decode_session(self, session):
     try:
         data = requests.get("%s?sessionid=%s" %
                             (settings.SESSION_URL, session)).json()
         if data["ret"] == 0:
             self._user = data["data"]
             return True
         else:
             return False
     except Exception as e:
         logger.error("get session error %s" % e)
         return False
示例#9
0
 def handle(self, client, packet):
     self.client = client
     try:
         # headers = str.split()packet.get('header', "")
         # create_obj = compile('obj()', 'create_obj.py', 'eval')
         # a = eval(create_obj)
         # method = getattr(self, packet['header'])
         method = getattr(self, packet['header'])
         (method(packet['data'])
          if 'data' in packet else method()) if method else self.invalid()
     except AttributeError as e:
         logger.error(e)
 def get_user_info(self):
     try:
         # 获取用户信息
         user_data = requests.get(settings.USER_CENTER_API['user_url'],
                                  timeout=5).json()
         user_info_list = user_data.get('data', [])
         if user_info_list:
             for item in user_info_list:
                 item['username'] = item['email'].split('@')[0]
     except Exception as e:
         logger.error(u"获取用户信息异常. %s" % e)
         user_info_list = []
     return user_info_list
示例#11
0
 def _do_post(self):
     try:
         if self._controller_obj.new_item(**self._input):
             self._db_session.commit()
             return True
         else:
             self._db_session.rollback()
             logger.error("post method error")
             return False
     except Exception as e:
         self._ret, self._msg = error_msg.SERVER_ERROR
         logger.error("post method error: %s" % e)
         return False
示例#12
0
 def delete_item(self, **kwargs):
     session = self.db
     if session is None:
         return False
     try:
         filter_obj = self.do_filter(**kwargs)
         if filter_obj:
             filter_obj.delete()
             return True
         else:
             return False
     except Exception as e:
         logger.error(u"删除%s出错. %s, %s" % (self._model.__tablename__, e, kwargs))
         return False
示例#13
0
 def new_item(self, **kwargs):
     session = self.db
     if session is None:
         return False
     try:
         value = {k: self._clean_value(kwargs[k]) for k in self._filter_value(kwargs)}
         if 'password' in value:
             # sha1加密密码字符
             value['password'] = self.__encryption(value['password'])
         new_obj = self._model(**value)
         session.add(new_obj)
         return new_obj
     except Exception as e:
         logger.error(u"新建%s出错. %s, %s" % (self._model.__tablename__, e, kwargs))
         return False
示例#14
0
 def _do_get(self, disable_output=None, transform_json=True):
     try:
         data, total = self._controller_obj.filter_item(**self._input)
         self._data["total"] = total
         if transform_json:
             self._data["list"] = utility.to_dict_obj(
                 data, without_fields=disable_output)
         else:
             self._data["list"] = data
         return True
     except Exception as e:
         import traceback
         traceback.print_exc()
         logger.error("get method error: %s" % e)
         return False
 def get_single_user_info(self, user_id):
     """返回单个用户ID信息"""
     params = {"user_ids": user_id}
     try:
         # 获取用户信息
         user_data = requests.get(settings.USER_CENTER_API['user_url'],
                                  params=params,
                                  timeout=5).json()
         single_user_info = user_data.get('data', [])[0]
         if single_user_info:
             single_user_info['username'] = single_user_info['email'].split(
                 '@')[0]
     except Exception as e:
         logger.error(u"获取用户信息异常. %s" % e)
         single_user_info = {}
     return single_user_info
示例#16
0
 def update_item(self, **kwargs):
     session = self.db
     if session is None:
         return False
     try:
         value = {k: self._clean_value(kwargs[k]) for k in self._filter_value(kwargs)}
         if 'password' in value:
             # sha1加密密码字符
             value['password'] = self.__encryption(value['password'])
         filter_obj = self.do_filter(**kwargs)
         if filter_obj:
             filter_obj.update(value)
             return True
         else:
             return False
     except Exception as e:
         session.rollback()
         logger.error(u"修改%s出错. %s, %s" % (self._model.__tablename__, e, kwargs))
         return False