diff --git a/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py b/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py index 1485df7..84248cf 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/sys_statistics_controller.py @@ -19,55 +19,70 @@ from utils.response_util import ResponseUtil sys_statisticsController = APIRouter(prefix='/system/sys_statistics', dependencies=[Depends(LoginService.get_current_user)]) +# 获取统计数据 @sys_statisticsController.get( - '/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:list'))] + '/get_data' ) -async def get_system_sys_statistics_list( +async def get_statistics_data( request: Request, -sys_statistics_page_query: Sys_statisticsPageQueryModel = Depends(Sys_statisticsPageQueryModel.as_query), query_db: AsyncSession = Depends(get_db), ): - # 获取分页数据 - sys_statistics_page_query_result = await Sys_statisticsService.get_sys_statistics_list_services(query_db, sys_statistics_page_query, is_page=True) - logger.info('获取成功') - - return ResponseUtil.success(model_content=sys_statistics_page_query_result) + data = await Sys_statisticsService.get_statistics_data_services(query_db) + return ResponseUtil.success(data=data) -@sys_statisticsController.post('', dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:add'))]) -@ValidateFields(validate_model='add_sys_statistics') -@Log(title='系统统计数据', business_type=BusinessType.INSERT) -async def add_system_sys_statistics( - request: Request, - add_sys_statistics: Sys_statisticsModel, - query_db: AsyncSession = Depends(get_db), - current_user: CurrentUserModel = Depends(LoginService.get_current_user), -): - add_sys_statistics.create_time = datetime.now() - add_sys_statistics.create_by = current_user.user.user_name - add_sys_statistics.update_time = datetime.now() - add_sys_statistics.update_by = current_user.user.user_name - add_sys_statistics_result = await Sys_statisticsService.add_sys_statistics_services(query_db, add_sys_statistics) - logger.info(add_sys_statistics_result.message) - - return ResponseUtil.success(msg=add_sys_statistics_result.message) +# @sys_statisticsController.get( +# '/list', response_model=PageResponseModel +# # , dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:list'))] +# ) +# async def get_system_sys_statistics_list( +# request: Request, +# sys_statistics_page_query: Sys_statisticsPageQueryModel = Depends(Sys_statisticsPageQueryModel.as_query), +# query_db: AsyncSession = Depends(get_db), +# ): +# # 获取分页数据 +# sys_statistics_page_query_result = await Sys_statisticsService.get_sys_statistics_list_services(query_db, sys_statistics_page_query, is_page=True) +# logger.info('获取成功') +# +# return ResponseUtil.success(model_content=sys_statistics_page_query_result) -@sys_statisticsController.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:edit'))]) -@ValidateFields(validate_model='edit_sys_statistics') -@Log(title='系统统计数据', business_type=BusinessType.UPDATE) -async def edit_system_sys_statistics( - request: Request, - edit_sys_statistics: Sys_statisticsModel, - query_db: AsyncSession = Depends(get_db), - current_user: CurrentUserModel = Depends(LoginService.get_current_user), -): - edit_sys_statistics.update_by = current_user.user.user_name - edit_sys_statistics.update_time = datetime.now() - edit_sys_statistics_result = await Sys_statisticsService.edit_sys_statistics_services(query_db, edit_sys_statistics) - logger.info(edit_sys_statistics_result.message) - - return ResponseUtil.success(msg=edit_sys_statistics_result.message) +# @sys_statisticsController.post('' +# , dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:add'))] +# ) +# @ValidateFields(validate_model='add_sys_statistics') +# @Log(title='系统统计数据', business_type=BusinessType.INSERT) +# async def add_system_sys_statistics( +# request: Request, +# add_sys_statistics: Sys_statisticsModel, +# query_db: AsyncSession = Depends(get_db), +# current_user: CurrentUserModel = Depends(LoginService.get_current_user), +# ): +# add_sys_statistics.create_time = datetime.now() +# add_sys_statistics.create_by = current_user.user.user_name +# add_sys_statistics.update_time = datetime.now() +# add_sys_statistics.update_by = current_user.user.user_name +# add_sys_statistics_result = await Sys_statisticsService.add_sys_statistics_services(query_db, add_sys_statistics) +# logger.info(add_sys_statistics_result.message) +# +# return ResponseUtil.success(msg=add_sys_statistics_result.message) +# +# +# @sys_statisticsController.put('', dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:edit'))]) +# @ValidateFields(validate_model='edit_sys_statistics') +# @Log(title='系统统计数据', business_type=BusinessType.UPDATE) +# async def edit_system_sys_statistics( +# request: Request, +# edit_sys_statistics: Sys_statisticsModel, +# query_db: AsyncSession = Depends(get_db), +# current_user: CurrentUserModel = Depends(LoginService.get_current_user), +# ): +# edit_sys_statistics.update_by = current_user.user.user_name +# edit_sys_statistics.update_time = datetime.now() +# edit_sys_statistics_result = await Sys_statisticsService.edit_sys_statistics_services(query_db, edit_sys_statistics) +# logger.info(edit_sys_statistics_result.message) +# +# return ResponseUtil.success(msg=edit_sys_statistics_result.message) # @sys_statisticsController.delete('/{statistic_ids}', dependencies=[Depends(CheckUserInterfaceAuth('system:sys_statistics:remove'))]) diff --git a/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py b/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py index 610ed44..037b581 100644 --- a/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py +++ b/ruoyi-fastapi-backend/module_admin/dao/sys_statistics_dao.py @@ -3,6 +3,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from module_admin.entity.do.sys_statistics_do import SysStatistics from module_admin.entity.vo.sys_statistics_vo import Sys_statisticsModel, Sys_statisticsPageQueryModel from utils.page_util import PageUtil +from datetime import datetime, date class Sys_statisticsDao: @@ -10,6 +11,15 @@ class Sys_statisticsDao: 系统统计数据模块数据库操作层 """ + @classmethod + async def get_statistics_data(cls, db: AsyncSession, dd: date): + stmt = ( + select(SysStatistics.llm_call,SysStatistics.access_control_count, SysStatistics.visitor_guide, SysStatistics.exhibition_explanation) + .where(SysStatistics.stat_date == dd) + ) + return (await db.execute(stmt)).mappings().first() + + @classmethod async def get_sys_statistics_detail_by_id(cls, db: AsyncSession, statistic_id: int): """ diff --git a/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py b/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py index f20ada1..e8aa03d 100644 --- a/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/sys_statistics_service.py @@ -7,6 +7,7 @@ from module_admin.dao.sys_statistics_dao import Sys_statisticsDao from module_admin.entity.vo.sys_statistics_vo import DeleteSys_statisticsModel, Sys_statisticsModel, Sys_statisticsPageQueryModel from utils.common_util import CamelCaseUtil from utils.excel_util import ExcelUtil +from datetime import datetime, timedelta class Sys_statisticsService: @@ -14,6 +15,41 @@ class Sys_statisticsService: 系统统计数据模块服务层 """ + @classmethod + async def get_statistics_data_services(cls, query_db: AsyncSession): + + # 当前日期 + today = datetime.now().date() + yesterday = today - timedelta(days=1) + data_1 = await Sys_statisticsDao.get_statistics_data(query_db, yesterday) + data_2 = await Sys_statisticsDao.get_statistics_data(query_db, today) + if data_1 is None: + data_1 = { + "llm_call": 0, + "access_control_count": 0, + "visitor_guide": 0, + "exhibition_explanation": 0 + } + else: + data_1 =dict(data_1) + if data_2 is None: + data_2 = { + "llm_call": 0, + "access_control_count": 0, + "visitor_guide": 0, + "exhibition_explanation": 0 + } + else: + data_2 =dict(data_2) + # + for k, v in data_1.items(): + data_1[k] = data_2[k] - v + + return { + 'change': data_1, + 'today': data_2 + } + @classmethod async def get_sys_statistics_list_services( cls, query_db: AsyncSession, query_object: Sys_statisticsPageQueryModel, is_page: bool = False diff --git a/ruoyi-fastapi-backend/server.py b/ruoyi-fastapi-backend/server.py index d763a8d..bd559c6 100644 --- a/ruoyi-fastapi-backend/server.py +++ b/ruoyi-fastapi-backend/server.py @@ -30,6 +30,7 @@ from module_admin.controller.message_controller import messageController from module_admin.controller.robot_role_pairing_controller import pairingController from module_admin.controller.explanation_content_controller import explanationContentController from module_admin.controller.explanation_style_robot_pair_controller import explanation_style_robot_pairController +from module_admin.controller.sys_statistics_controller import sys_statisticsController from sub_applications.handle import handle_sub_applications from utils.common_util import worship @@ -94,6 +95,7 @@ controller_list = [ {'router': pairingController, 'tags': ['机器人角色']}, {'router': explanationContentController, 'tags': ['讲解管理']}, {'router': explanation_style_robot_pairController, 'tags': ['讲解风格管理']}, + {'router': sys_statisticsController, 'tags': ['系统统计数据管理']}, ]