| 
					
				 | 
			
			
				@@ -1,22 +1,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package cn.iocoder.yudao.module.system.controller.admin.logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExcelVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExportReqVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.common.pojo.CommonResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.common.pojo.PageParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.common.pojo.PageResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.service.logger.OperateLogService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.common.pojo.CommonResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.common.pojo.PageResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.module.system.service.user.AdminUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import io.swagger.v3.oas.annotations.tags.Tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.v3.oas.annotations.Operation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.v3.oas.annotations.tags.Tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.validation.annotation.Validated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.GetMapping; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -27,12 +24,11 @@ import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.validation.Valid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Collection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Tag(name = "管理后台 - 操作日志") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,37 +45,27 @@ public class OperateLogController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/page") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Operation(summary = "查看操作日志分页列表") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PreAuthorize("@ss.hasPermission('system:operate-log:query')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public CommonResult<PageResult<OperateLogRespVO>> pageOperateLog(@Valid OperateLogPageReqVO reqVO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PageResult<OperateLogDO> pageResult = operateLogService.getOperateLogPage(reqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CommonResult<PageResult<OperateLogRespVO>> pageOperateLog(@Valid OperateLogPageReqVO pageReqVO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PageResult<OperateLogDO> pageResult = operateLogService.getOperateLogPage(pageReqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获得拼接需要的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), OperateLogDO::getUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Long, AdminUserDO> userMap = userService.getUserMap(userIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 拼接数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<OperateLogRespVO> list = new ArrayList<>(pageResult.getList().size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        pageResult.getList().forEach(operateLog -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            OperateLogRespVO respVO = OperateLogConvert.INSTANCE.convert(operateLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            list.add(respVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 拼接用户信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MapUtils.findAndThen(userMap, operateLog.getUserId(), user -> respVO.setUserNickname(user.getNickname())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return success(new PageResult<>(list, pageResult.getTotal())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, AdminUserDO> userMap = userService.getUserMap( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                convertList(pageResult.getList(), OperateLogDO::getUserId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return success(new PageResult<>(OperateLogConvert.INSTANCE.convertList(pageResult.getList(), userMap), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                pageResult.getTotal())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Operation(summary = "导出操作日志") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/export") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @PreAuthorize("@ss.hasPermission('system:operate-log:export')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @OperateLog(type = EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void exportOperateLog(HttpServletResponse response, @Valid OperateLogExportReqVO reqVO) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<OperateLogDO> list = operateLogService.getOperateLogList(reqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 获得拼接需要的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Collection<Long> userIds = CollectionUtils.convertList(list, OperateLogDO::getUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Long, AdminUserDO> userMap = userService.getUserMap(userIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 拼接数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<OperateLogExcelVO> excelDataList = OperateLogConvert.INSTANCE.convertList(list, userMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void exportOperateLog(HttpServletResponse response, @Valid OperateLogPageReqVO exportReqVO) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<OperateLogDO> list = operateLogService.getOperateLogPage(exportReqVO).getList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 输出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ExcelUtils.write(response, "操作日志.xls", "数据列表", OperateLogExcelVO.class, excelDataList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, AdminUserDO> userMap = userService.getUserMap( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                convertList(list, OperateLogDO::getUserId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtils.write(response, "操作日志.xls", "数据列表", OperateLogRespVO.class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OperateLogConvert.INSTANCE.convertList(list, userMap)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |