linkkf 로직수정중

This commit is contained in:
2025-12-25 19:42:32 +09:00
parent 695d26767e
commit af9a38a973
128 changed files with 8711 additions and 1484 deletions

View File

@@ -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