class LogModel: """ Model class of malinger log 只针对增、删、改进行操作 """ _table = TableName.LOG def __init__(self): self.db = DBMalinger() def create_log(self, bag): res = self.db.insert_dict(self._table, bag) return res def get(self, conds={}, cols="", extra_conds={}): return self.db.get(self._table, conds, cols, extra_conds)
class UserModel: """ Model class of malinger user user includes following type 1. malinger root user (type 0) 2. malinger normal user (type 1) """ _table = TableName.USER def __init__(self): self.db = DBMalinger() def create_user(self, bag): res = self.db.insert_dict(self._table, bag) return bag['user_id'] if res else None def update(self, conds, update_bag): return self.db.update_dict(self._table, update_bag, conds) def delete(self, conds): updata_bag = {"is_del": 1} return self.update(conds, updata_bag) def get(self, conds={}, cols="", extra_conds={}): return self.db.get(self._table, conds, cols, extra_conds) def verify_user(self, username, password): sql = """ select * from %s where username = '******' and password = '******' and is_del = 0 """ % (self._table, username, password) res = self.db.query(sql) if res: return res[0] else: return None #根据用户user_id取得用户名 def get_user_name(self, user_id): name = self.get({"user_id":user_id})[0]["name"] return name
class RecordModel: """ Model class of malinger record """ _table = TableName.RECORD def __init__(self): self.db = DBMalinger() def create_record(self, bag): res = self.db.insert_dict(self._table, bag) return bag if res else None def update(self, conds, update_bag): return self.db.update_dict(self._table, update_bag, conds) def get(self, conds={}, cols="", extra_conds={}): return self.db.get(self._table, conds, cols, extra_conds) def get_own(self, ctime, etime, head, type, enterprise_id_list): sql = "select * from %s where " % self._table type_sql, head_sql, enterprise_sql, ctime_sql, etime_sql = "", "", "", "", "" sql_list = [] if type: type_sql = " type = %s" % int(type) sql_list.append(type_sql) if head: head_sql = " head = '%s' " % head sql_list.append(head_sql) if enterprise_id_list: enterprise_sql = " enterprise_id in (%s) " % "'%s'" % "','".join([str(v) for v in enterprise_id_list]) sql_list.append(enterprise_sql) if ctime: ctime_sql = self.time_sql(ctime, 0) sql_list.append(ctime_sql) if etime: etime_sql = self.time_sql(etime, 1) sql_list.append(etime_sql) sql = sql + " and ".join(sql_list) sql = sql + "order by ctime desc,date(etime) asc" res = self.db.query(sql) return res def time_sql(self, date_str, type ): date_now = date.today() date_sql = " " if type == 0: if date_str == "0": date_compute = date_now - timedelta(7) date_sql = date_sql + " ctime > '%s' " % date_compute elif date_str == "1": date_compute = date_now - timedelta(30) date_sql = date_sql + " ctime > '%s' " % date_compute elif date_str =="2": date_compute = date_now - timedelta(90) date_sql = date_sql + " ctime > '%s' " % date_compute else: date_sql = date_sql + " date(ctime) > '%s' " % date_str elif type == 1: if date_str == "0": date_compute = date_now + timedelta(7) date_sql = date_sql + " ('%s' < etime) and (etime < '%s') " % (date_now,date_compute) elif date_str == "1": date_compute = date_now + timedelta(30) date_sql = date_sql + " ('%s' < etime) and (etime < '%s') " % (date_now,date_compute) elif date_str =="2": date_compute = date_now + timedelta(90) date_sql = date_sql + " ('%s' < etime) and (etime < '%s') " % (date_now,date_compute) else: date_sql = date_sql + " ('%s' < etime) and (etime < '%s') " % (date_now,date_str) return date_sql def get_enterprise_name(self, enterprise_id): domain = self.get({"enterprise_id": enterprise_id})[0]["domain"] return domain