Sindbad~EG File Manager

Current Path : /home/numerotech/hs.numerotech.com/scan_v1/core/model/__pycache__/
Upload File :
Current File : //home/numerotech/hs.numerotech.com/scan_v1/core/model/__pycache__/SyncModel.cpython-310.pyc

o

N��fL �@s�ddlmZmZmZmZmZmZmZmZm	Z	ddl
mZmZddlm
Z
mZddlmZddlZddlmZmZmZmZeejddd	dd
�Zeejddd	dd
�Zeejddd	dd
�ZGd
d�d�ZdS)�)	�
create_engine�MetaData�Table�insert�null�select�update�delete�text)�and_�or_)�asc�desc)�appN)�	timedelta�date�datetime�time�DATABASE_URITi)�
pool_pre_ping�pool_recycle�future�DATABASE_URI_FK�DATABASE_URI_CONFc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�	SyncModelc
Cs>zt�|_WdSty}zt|�WYd}~dSd}~ww)N)r�meta�	Exception�print)�self�e�r �B/home/numerotech/hs.numerotech.com/scan_v1/core/model/SyncModel.py�__init__s��zSyncModel.__init__cC�ft���%}td|�d|�d��}|�|���}|rt|j�nd}|Wd�S1s,wYdS)Nz@select asession_id,updated_at from abs_sessions where conf_id = � and hall_id = z and is_active = 1;��engine�connectr
�execute�first�dict�_mapping�r�conf_id�hall_id�conn�stmt�resultr r r!�get_active_session_live1�
$�z!SyncModel.get_active_session_livecCr#)NzJselect asession_id,updated_at,is_active from abs_sessions where conf_id = r$z! order by updated_at desc limit 1r%r,r r r!�get_last_update_session_live8r3z&SyncModel.get_last_update_session_livec
Cs�t���\}z8td|�d|�d��}|�|�}|r,td|�d|�d|�d|�d|�d��}	|�|	�}
|��WWd�dSty_}ztd	|�t|�WYd}~Wd�Sd}~ww1scwYdS)
Nz9update abs_sessions set is_active = Null where conf_id = r$�;z$update abs_sessions set is_active = z
,updated_at='z' where asession_id=z and  conf_id = �successzError: )r&r'r
r(�commitrr�str)rZactive_session_id�	is_activer-r.Zsession_updated_at_localr/Z	stmt_bulk�	restult_1Zstmt_singleZ	restult_2rr r r!�update_active_session?s"

(
�	
��	�zSyncModel.update_active_sessioncCsdt���$}td|�d��}|�|���}|rdd�|D�nd}|Wd�S1s+wYdS)N�select * from � ;cS�g|]}t|j��qSr �r*r+��.0�rr r r!�
<listcomp>S�z/SyncModel.get_scan_all_data.<locals>.<listcomp>)r&r'r
r(�all)r�scan_table_namer/r0r1�resultsr r r!�get_scan_all_dataNs
$�zSyncModel.get_scan_all_datac	Csxt���.}td|�d|�d|�d��}t|�|�|���}|r'dd�|D�nd}|Wd�S1s5wYdS)Nr<z where (new_sync_at > 'z' or updated_sync_at > 'z' );cSr>r r?r@r r r!rC]rDzCSyncModel.get_scan_data_from_last_sync_at_local.<locals>.<listcomp>)r&r'r
rr(rE)rrFZlast_sync_at_localr/r0r1rGr r r!�%get_scan_data_from_last_sync_at_localWs
$�z/SyncModel.get_scan_data_from_last_sync_at_localc
Cszpt���a}|d��}	g}
|D]}|�d�dkr&||d<d|d<|
�|�q|
r\t|
�dkr\d�dd�|	D��}d|�d|�d	d�|	��d
|�d�	}
td|
�|�t	|
�|
�}|�
�	Wd�Wd
S1siwYWdSty�}ztd|�t|�WYd}~Sd}~ww)Nr�new_sync_at�scan_id�, cS�g|]}d|�qS�z:%sr �rA�colr r r!rCm�z>SyncModel.insert_update_table_data_to_live.<locals>.<listcomp>z
 INSERT INTO �.� (�
) VALUES (�)�stmt_1r6zError : )
r&r'�keys�get�append�len�joinrr(r
r7rr8)rr-�conf_keyr.�	scan_datarF�curr_dt�conf_schemar/�columns_to_insertZinsert_data�data�placeholdersrVr1rr r r!� insert_update_table_data_to_liveas.

�$
(�
��z*SyncModel.insert_update_table_data_to_livec
Cs�zbt���S}|d��}|s	Wd�WdS|D]}	||	d<||	d<d|	d<qd�dd�|D��}
d	|�d
d�|��d|
�d�}|�t|�|�}|��	Wd�Wd
S1s[wYWdStyx}
z
t|
�WYd}
~
Sd}
~
ww)NrzNo data to insertrJ�updated_sync_atrKrLcSrMrNr rOr r r!rC�rQz7SyncModel.insert_table_data_to_live.<locals>.<listcomp>zINSERT INTO rSrTrUr6)	r&r'rWr[r(r
r7rr8)rr-r\r.r]rFr^r/r`rarbrVr1rr r r!�insert_table_data_to_livews(
�
(���z#SyncModel.insert_table_data_to_livecCs�t��}|��}|�d|g�|jr;dd�|jD�}g}|��D]}|�tt||���q |�	�|�
�|r9|SdS|�	�|jdS)NZ0usp_conf_generate_session_table_scan_logs_by_daycSsg|]}|d�qS)rr )rA�columnr r r!rC�rQzISyncModel.usp_generate_session_table_scan_logs_by_day.<locals>.<listcomp>)r&�raw_connection�cursor�callproc�description�fetchallrYr*�zip�closer7�co)rr-�
connectionrh�columnsrG�rowr r r!�+usp_generate_session_table_scan_logs_by_day�s
z5SyncModel.usp_generate_session_table_scan_logs_by_daycCs:z�t���w}|s	Wd�WdSd}tt|��|D]-}|d|d<|d}	|d}
d�dd�|��D��}|d	|�d
|�d|�d|	�d
�	}qtd|�|�t|��}|��td|d�}
|�|
�}|�	�}|rrt
|j�ndWd�WS1swYWdSty�}z
t
|�WYd}~Sd}~ww)NzNo data to update��exist_atrd�delegate_norLcSs4g|]\}}|dkr|�d|pd�d��dd��qS)rKz = '�NULL�'z'NULL')�replace)rA�key�valuer r r!rC�s4z7SyncModel.update_table_data_to_live.<locals>.<listcomp>zUPDATE z SET z WHERE conf_id = z/ AND new_sync_at IS NOT NULL and delegate_no = r=zupdate query- z8select MAX(updated_sync_at) as last_update_sync_at from z> where updated_sync_at is not null and  exist_at is not null ;)r&r'r�lengthr[�itemsr(r
r7�one_or_noner*r+rr8)rr-r\r.Zupdate_scan_datarFr/Zstmt_updaterarurtZ
set_valuesr1r0rGrr r r!�update_table_data_to_live�s2
�$

(���z#SyncModel.update_table_data_to_liveN)
�__name__�
__module__�__qualname__r"r2r4r;rHrIrcrerrr~r r r r!rs	
r)�
sqlalchemyrrrrrrrr	r
Zsqlalchemy.sqlrrr
r�corer�jsonrrrr�configr&�	engine_fkZengine_conf_liverr r r r!�<module>s,

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists