diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index 0821e7e..1218a34 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -202,6 +202,13 @@ public interface ISysUserService { List querySysUserByOrganizeCode(String orgCode); /** + * 根据条件查询账号 + * @param sysUser 账户条件对象 + * @return 账户数组 + */ + List querySysUser(SysUser sysUser); + + /** * 根据id 数据 * * @param id diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index 4f0be9e..8519c35 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -21,6 +21,8 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.model.platform.AccountExportModel; +import cn.estsh.i3plus.pojo.model.platform.UserExportModel; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserDepartment; @@ -61,6 +63,9 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Description : 系统用户操作服务 @@ -736,4 +741,65 @@ public class SysUserController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + + @GetMapping("/export") + @ApiOperation(value = "导出账号信息", notes = "导出账号信息") + public void exportSysUserInfo(SysUser sysUser, HttpServletResponse response) throws Exception { + File file = null; + if (sysUser == null) { + sysUser = new SysUser(); + } + try { + + //设置默认值 + sysUser.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + sysUser.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); + sysUser.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue()); + List list = sysUserService.querySysUser(sysUser); + List exportModelList = new ArrayList<>(); + + + List sysRefUserRoleList; + StringBuilder roleName; + for (SysUser user : list) { + exportModelList.add(new AccountExportModel( + user.getUserName(), + user.getUserLoginName(), + user.getUserEmail(), + user.getUserPhone(), + user.getDepartmentNameRdd(), + user.getUserLoginNum(), + user.getUserLoginLastDateTime(), + user.getUserStatus())); + + } + + ExcelTool excelTool = new ExcelTool(entityManager, redisRes); + String fileName = "user-" + System.currentTimeMillis() + ".xls"; + file = new File(fileName); + file.createNewFile(); + File excle = excelTool.exportData(file, exportModelList, AccountExportModel.class + , (LinkedHashMap) ExcelTool.getColName(AccountExportModel.class)); + + response.setContentType("application/force-download"); // 设置强制下载不打开 + response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件名 + response.addHeader("Content-type", FileContentTypeTool.getContentType(StringTool.getStringFileSuffix(fileName, true))); + + // 设置文件名 + try (BufferedInputStream bis = new BufferedInputStream(new DataInputStream(new FileInputStream(excle)))) { + OutputStream os = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int i = bis.read(buffer); + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + } catch (Exception e) { + LOGGER.error("用户日志导出异常", e); + } + } finally { + FileUtils.deleteQuietly(file); + } + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index 824cf43..4b75120 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -19,6 +19,7 @@ import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.mdm.sqlpack.DdlMdmBusiPreparedPack; import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.repository.SysLogUserLoginRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserDepartmentRepository; @@ -544,6 +545,12 @@ public class SysUserService implements ISysUserService { } @Override + public List querySysUser(SysUser sysUser) { + DdlPackBean ddlPackBean = CoreHqlPack.packDdlSysUser(sysUser); + return userRDao.findByHqlWhere(ddlPackBean); + } + + @Override @ApiOperation(value = "账号查询", notes = "根据ID 查询账号信息") public SysUser getSysUserById(Long id) { LOGGER.debug("平台用户 SYS_USER get By id :{}", id);