linkkf 로직수정중
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import sqlite3
|
||||
import traceback
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
@@ -45,7 +46,7 @@ class ModelBase(F.db.Model):
|
||||
paging['next_page'] = False
|
||||
paging['current_page'] = current_page
|
||||
paging['count'] = count
|
||||
F.logger.debug('paging : c:%s %s %s %s %s %s', count, paging['total_page'], paging['prev_page'], paging['next_page'] , paging['start_page'], paging['last_page'])
|
||||
#F.logger.debug('paging : c:%s %s %s %s %s %s', count, paging['total_page'], paging['prev_page'], paging['next_page'] , paging['start_page'], paging['last_page'])
|
||||
return paging
|
||||
except Exception as e:
|
||||
cls.P.logger.error(f'Exception:{str(e)}')
|
||||
@@ -89,24 +90,30 @@ class ModelBase(F.db.Model):
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
def delete_all(cls, days=None):
|
||||
def delete_all(cls, day=None):
|
||||
count = -1
|
||||
try:
|
||||
with F.app.app_context():
|
||||
if days == None:
|
||||
F.db.session.query(cls).delete()
|
||||
F.db.session.commit()
|
||||
if day == None or day in [0, '0']:
|
||||
count = F.db.session.query(cls).delete()
|
||||
else:
|
||||
now = datetime.now()
|
||||
ago = now - timedelta(days=int(days))
|
||||
ago = now - timedelta(days=int(day))
|
||||
#ago.hour = 0
|
||||
#ago.minute = 0
|
||||
count = F.db.session.query(cls).filter(cls.created_time > ago).delete()
|
||||
cls.P.logger.info(f"delete_all {days=} {count=}")
|
||||
return True
|
||||
count = F.db.session.query(cls).filter(cls.created_time < ago).delete()
|
||||
cls.P.logger.info(f"delete_all {day=} {count=}")
|
||||
F.db.session.commit()
|
||||
|
||||
db_file = F.app.config['SQLALCHEMY_BINDS'][cls.P.package_name].replace('sqlite:///', '').split('?')[0]
|
||||
connection = sqlite3.connect(db_file)
|
||||
cursor = connection.cursor()
|
||||
cursor.execute('VACUUM;')
|
||||
connection.close()
|
||||
except Exception as e:
|
||||
cls.P.logger.error(f'Exception:{str(e)}')
|
||||
cls.P.logger.error(traceback.format_exc())
|
||||
return False
|
||||
return count
|
||||
|
||||
|
||||
@classmethod
|
||||
@@ -135,12 +142,12 @@ class ModelBase(F.db.Model):
|
||||
if cls.P.ModelSetting is not None and cls.__tablename__ is not None:
|
||||
cls.P.ModelSetting.set(f'{cls.__tablename__}_last_list_option', f'{order}|{page}|{search}|{option1}|{option2}')
|
||||
except Exception as e:
|
||||
F.logger.error('Exception:%s', e)
|
||||
F.logger.error(f"Exception:{str(e)}")
|
||||
F.logger.error(traceback.format_exc())
|
||||
F.logger.error(f'{cls.__tablename__}_last_list_option ERROR!' )
|
||||
return ret
|
||||
except Exception as e:
|
||||
cls.P.logger.error('Exception:%s', e)
|
||||
cls.P.logger.error(f"Exception:{str(e)}")
|
||||
cls.P.logger.error(traceback.format_exc())
|
||||
|
||||
|
||||
@@ -149,6 +156,10 @@ class ModelBase(F.db.Model):
|
||||
def make_query(cls, req, order='desc', search='', option1='all', option2='all'):
|
||||
with F.app.app_context():
|
||||
query = F.db.session.query(cls)
|
||||
if order == 'desc':
|
||||
query = query.order_by(desc(cls.id))
|
||||
else:
|
||||
query = query.order_by(cls.id)
|
||||
return query
|
||||
|
||||
|
||||
@@ -171,3 +182,16 @@ class ModelBase(F.db.Model):
|
||||
query = query.filter(field.like('%'+search+'%'))
|
||||
#query = query1.union(query2)
|
||||
return query
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_list_by_status(cls, status):
|
||||
try:
|
||||
with F.app.app_context():
|
||||
query = F.db.session.query(cls).filter(
|
||||
cls.status == status,
|
||||
)
|
||||
query = query.order_by(cls.id)
|
||||
return query.all()
|
||||
except:
|
||||
pass
|
||||
Reference in New Issue
Block a user