
    Xj9              
       |   d dl m Z  d dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZmZ d dlmZ d dlmZ  ee          Z edg          Z ee          Ze                    d           ee           ee          fdededee ef         fd            Z!dS )    )datetime)Any)	APIRouterDepends)
get_logger)descfunc)Session)get_current_user)get_db)AgentChatMessage)AuditLog)ModelModelProvider)User	dashboard)tagsz/statsdbcurrent_userreturnc                   K   t                               d|j         d|j                    |                     t
                                        t
          j        |j        k                                              }|                     t          j        t          j	        t          j
        t          j                            d          t          j	                            d          t          j                            d          t          j                            d          t          j        t           j                                      d                                        t          t          j        t          j        k                                  t           t           j        t          j        k                                  t           j        |j        k                                  t          j        t          j	        t          j
        t          j        t          j	        t          j        t          j                                      t/          d                                        d                                          }d	 |D             }|                     t           t          j        t4          j                                      d
                                        t4          t           j        t4          j        k                                  t           j        dk    t           j        |j        k                                  t           j                                      t/          d
                                        d                                          }d |D             }g }	 |                     t:          t
          j	                                      t
          t:          j        t
          j        k                                  t:          j        |j        k                                  t/          t:          j                                                d                                          }ddddddd}	dddddddd}
dddd d!d"d#d$d%}|D ]\  }}tA          j!                    |j        z
  }|"                                d&k     r%tG          |"                                           d'}n|"                                d(k     r(tG          |"                                d&z             d)}ng|"                                d*k     r(tG          |"                                d(z             d+}n'tG          |"                                d*z             d,}|
$                    |j%        |j%                  }|$                    |j&        |j&                  }|pd-}| d.| d/| }|'                    |||	$                    |j%        d          |j        r|j        (                                nd d0           nJ# tR          $ r=}| *                                 t           +                    d1|            g }Y d }~nd }~ww xY w|d2|                     t
                                        t
          j,                                                  |                     t
                                        t
          j-        .                    d3d4g                                                    |||d5S )6NzFetching dashboard stats: user=z	, tenant=provider_idprovider_nameprovider_iconprovider_colorusage_count   c                 x    g | ]7}|j         |j        |j        |j        |j        |j        |j        |j        d d8S ))idnameiconcolor)r    r!   typer   provider)r    r!   r$   r   r   r   r   r   ).0models     E/lsinfo/ai/hellotax_ai/base_platform/app/api/v1/platform/dashboard.py
<listcomp>z'get_dashboard_stats.<locals>.<listcomp>8   sh         (JJ ,'++-	 	
 	
      
user_countonlinec                 @    g | ]\  }}|j         |j        |j        |d S ))r    r!   model_idr+   )r    r!   r.   )r&   agentr+   s      r(   r)   z'get_dashboard_stats.<locals>.<listcomp>P   s?       E: xWabb  r*   
   greenblueredpurplegrayyellow)createupdatedeleteloginlogoutexecuteu   创建u   更新u   删除u   登录u   登出u   执行u   查看)r7   r8   r9   r:   r;   r<   readu	   智能体u	   知识库u   用户u   租户u   模型提供商u   模型u   文档u   分类)r/   knowledge_baseusertenantr%   r'   documentcategory<   u   秒前i  u	   分钟前iQ u	   小时前u   天前u   系统 u   了)texttime_agor#   
created_atz#Failed to fetch recent activities: r   platform_admincustomer_admin)total_usersonline_usersverified_usersadmin_userspopular_modelspopular_agentsrecent_activities)/loggerinfor    	tenant_idqueryr   filtercountr   r!   r$   r   labelr"   r#   r	   r   joinr   	outerjoinr.   group_byorder_byr   limitallr   agent_idstatusr   user_idrG   r   utcnowtotal_secondsintgetactionresource_typeappend	isoformat	Exceptionrollbackwarningis_verifiedrolein_)r   r   rJ   popular_models_queryrN   popular_agents_queryrO   rP   recent_logsaction_colorsaction_text_mapresource_text_maplogusername	time_diffrF   action_textresource_text	user_textactivity_textes                        r(   get_dashboard_statsr}      s      KKd,/ddLLbddeee((4..'',:P(PQQWWYYK
HJJ""=11$$_55$$_55%%&677Jux  &&}55		
 		
 
mU.-2BB	C	C	5%.EH4	5	5	<#99	:	:	HJJ

 

 
$}%%	&	&	q	3 6  *  N  	
;>2288FFGG	;K,@ @	A	A	(%/\=S*S	T	T	%(			$|$$	%	%	q	  !5  N =HHXty))YtX-899VH&,*@@AAXd8.//00U2YYSUU 	 
 
 
 
 !))  	
 	
 ) 	 	MC ))CN:I&&((2--!)"9"9";";<<DDD((**T11!)"9"9";";b"@AALLL((**U22!)"9"9";";d"BCCNNN!)"9"9";";e"CDDLLL)--cj#*EEK-11#2CSEVWWM ,HI(JJ;JJ=JJM$$) (*..sz6BB@C"X#.":":"<"<"<TX	    	,    
@Q@@AAA
 #((4..//0@AAGGIIxx~~		/1ABCC	D	D	((.
 
 
s   5JY	 	
Z3ZZN)"r   typingr   fastapir   r   common_loggingr   
sqlalchemyr   r	   sqlalchemy.ormr
   app.api.permissionsr   app.db.sessionr   app.models.agentr   r   app.models.audit_logr   app.models.providerr   r   app.models.userr   __name__rQ   routerrd   dictstrr}    r*   r(   <module>r      s               & & & & & & & & % % % % % % ! ! ! ! ! ! ! ! " " " " " " 0 0 0 0 0 0 ! ! ! ! ! ! / / / / / / / / ) ) ) ) ) ) 4 4 4 4 4 4 4 4             % % % % % %	H				&	&	&	H		 H'&//@P8Q8QE EE15E	#s(^E E E E E Er*   