package com.boco.nbd.wios.log.controller; import com.boco.nbd.framework.common.PageData; import com.boco.nbd.framework.common.ResponseMessage2; import com.boco.nbd.framework.log.entity.SysLog; import com.boco.nbd.framework.log.entity.annotation.SystemHandleLogInfo; import com.boco.nbd.framework.log.entity.util.LogUtil; import com.boco.nbd.wios.flow.util.ProcessUtil; import com.boco.nbd.wios.log.entity.po.*; import com.boco.nbd.wios.log.service.ISysLogService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.ihidea.core.support.session.SessionInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.UUID; /** * @Description: 日志管理 * @Author: ZQY * @Date: 2022/10/17 **/ @RestController @RequestMapping(value = "/customerUseLog") @Api(tags = "日志管理类") public class SysLogController { @Autowired private ISysLogService sysLogService; /** * 新增操作日志 * * @param sysLog * @return */ @RequestMapping(value = "/insertLog", method = { RequestMethod.POST }) @ApiOperation(value = "新增日志") public ResponseMessage2<Boolean> insert(@RequestBody SysLog sysLog) { SysLogPO customerUseLogPO = new SysLogPO(sysLog.getHandleDateTimeMillis(), sysLog.getModuleId(), sysLog.getBussinessName(), sysLog.getUseTime(), sysLog.getLogContent(), sysLog.getHandleConsumingTime(), sysLog.getIpAddress(), sysLog.getServiceName(), sysLog.getServiceIp()); customerUseLogPO.setLogId(UUID.randomUUID().toString().replace("-", "")); if (customerUseLogPO.getHandleDateTimeMillis() != null && !"".equals(customerUseLogPO.getHandleDateTimeMillis())) { customerUseLogPO.setUseTime(new Date(Long.valueOf(customerUseLogPO.getHandleDateTimeMillis()))); } if (!StringUtils.isEmpty(sysLog.getUserId())) { customerUseLogPO.setUserId(sysLog.getUserId()); customerUseLogPO.setUserName(sysLog.getUserName()); } SessionInfo user = ProcessUtil.getUserInfo(); if (user != null) { customerUseLogPO.setUserId(user.getUserId()); customerUseLogPO.setUserName(user.getUserName()); } LogUtil.log(SystemHandleLogInfo.LogLevel.INFO, sysLog.getModuleId(), sysLog.getBussinessName(), sysLog.getLogContent(), customerUseLogPO.getUserName(), sysLog.getIpAddress()); int resultCount = sysLogService.insert(customerUseLogPO); return ResponseMessage2.Success2(resultCount > 0); } /** ###################登录日志分割线######################### */ /** * 根据时间用户统计日志 * * @param start * @param end * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogUsersLoginStat", method = { RequestMethod.GET }) @ApiOperation(value = "根据用户统计登录日志") @ApiImplicitParams({ @ApiImplicitParam(name = "start", value = "开始时间", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "end", value = "结束时间", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "pageIndex", value = "页序号", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "页大小", required = true, paramType = "query", dataType = "int") }) public ResponseMessage2<PageData<UserLogCountInfoPO>> getUsersLoginStat(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { SessionInfo user = ProcessUtil.getUserInfo(); if (user == null) { return ResponseMessage2.Failed("请先登录"); } Page<UserLogCountInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.getUsersLoginStat(start, end); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * * 根据用户ID查询日志详细信息 * * @param start * @param end * @param userId * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogUsersLoginDetails", method = { RequestMethod.GET }) @ApiOperation(value = "根据用户ID查询登录日志详细信息") public ResponseMessage2<PageData<SysLogInfoPO>> getUsersLoginDetails(@RequestParam("start") String start, @RequestParam("end") String end,@RequestParam("userId") String userId, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { Page<SysLogInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.getUsersLoginDetails(start, end, userId); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * 根据时间角色统计日志 * * @param start * @param end * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogRolesLoginStat", method = { RequestMethod.GET }) @ApiOperation(value = "根据角色统计登录日志") public ResponseMessage2<PageData<RoleLogCountInfoPO>> getRolesLoginStat(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { SessionInfo user = ProcessUtil.getUserInfo(); if (user == null) { return ResponseMessage2.Failed("请先登录"); } Page<RoleLogCountInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.getRolesLoginStat(start, end); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * 根据角色查询日志 * * @param start * @param end * @param roleName * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogRolesLoginDetails", method = { RequestMethod.GET }) @ApiOperation(value = "根据角色查询登录日志详情") public ResponseMessage2<PageData<SysLogInfoPO>> getRolesLoginDetails(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("roleName") String roleName, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { Page<SysLogInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.getRolesLoginDetails(start, end,roleName); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** ###################访问日志统计分割线######################### */ /** * 根据时间用户统计日志 * * @param start * @param end * @param pageIndex * @param pageSize * @return * @throws Exception */ @GetMapping(value = "/getLogVisitCountByUserDate") @ApiOperation(value = "根据用户统计访问日志") @ApiImplicitParams({ @ApiImplicitParam(name = "start", value = "开始时间", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "end", value = "结束时间", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "pageIndex", value = "页序号", required = true, paramType = "query", dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "页大小", required = true, paramType = "query", dataType = "int") }) public ResponseMessage2<PageData<UserLogCountInfoPO>> getLogVisitCountByUserDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { SessionInfo user = ProcessUtil.getUserInfo(); if (user == null) { return ResponseMessage2.Failed("请先登录"); } Page<UserLogCountInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.countByUserDate(start, end); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * * 根据用户ID查询日志详细信息 * * @param start * @param end * @param userId * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogVisitCountByUserIdDate", method = { RequestMethod.GET }) @ApiOperation(value = "根据用户ID查询访问日志详细信息") public ResponseMessage2<PageData<SysLogInfoPO>> getLogVisitCountByUserIdDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("userId") String userId, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { Page<SysLogInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.selectLogInfoByUserIdDate(start, end,userId); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * 根据时间角色统计访问日志 * * @param start * @param end * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogVisitCountByRoleDate", method = { RequestMethod.GET }) @ApiOperation(value = "根据角色统计访问日志") public ResponseMessage2<PageData<RoleLogCountInfoPO>> getVisitCountByRoleDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { SessionInfo user = ProcessUtil.getUserInfo(); if (user == null) { return ResponseMessage2.Failed("请先登录"); } Page<RoleLogCountInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.countByRoleDate(start, end); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * 根据角色查询访问日志 * * @param start * @param end * @param roleName * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogVisitDetailByRoleNameDate", method = { RequestMethod.GET }) @ApiOperation(value = "根据角色名称查询访问日志详情") public ResponseMessage2<PageData<SysLogInfoPO>> getVisitDetailByRoleNameDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("roleName") String roleName, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { Page<SysLogInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.selectByRoleDate(start, end,roleName); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** ###################模块访问日志统计分割线######################### */ /** * 根据时间模块统计日志 * * @param start * @param end * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogModuleCountByDate", method = { RequestMethod.GET }) @ApiOperation(value = "根据模块统计日志") public ResponseMessage2<PageData<ModuleLogCountInfoPO>> getModuleCountByDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { SessionInfo user = ProcessUtil.getUserInfo(); if (user == null) { return ResponseMessage2.Failed("请先登录"); } Page<ModuleLogCountInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.countByModuleDate(start, end); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } /** * 根据模块ID查询日志详细信息 * * @param start * @param end * @param moduleId * @param pageIndex * @param pageSize * @return * @throws Exception */ @RequestMapping(value = "/getLogModuleDetailByModuleIdDate", method = {RequestMethod.GET }) @ApiOperation(value = "根据模块ID查询日志详细信息") public ResponseMessage2<PageData<SysLogInfoPO>> getModuleDetailByModuleIdDate(@RequestParam("start") String start, @RequestParam("end") String end, @RequestParam("moduleId") String moduleId, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize) throws Exception { Page<SysLogInfoPO> result=PageHelper.startPage(pageIndex, pageSize); sysLogService.selectLogInfoByModuleIdDate(start, end,moduleId); return ResponseMessage2.Success2(PageData.create2(result.getTotal(), result.getResult())); } }