天津it审核需求

yun-zuoyi
wynne1005 4 years ago
parent d9ea9c63ee
commit 0beaca750a

@ -0,0 +1,17 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysLogRoleChange;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-08-31 11:47
* @Modify:
**/
public interface ISysLogRoleChangeService {
List<SysLogRoleChange> findLogsBetweenDatetime(String startDatetime, String endDatetime);
}

@ -3,6 +3,8 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
import cn.estsh.impp.framework.base.service.ICrudService; import cn.estsh.impp.framework.base.service.ICrudService;
import java.util.List;
/** /**
* @Description : * @Description :
* @Reference : * @Reference :
@ -14,4 +16,6 @@ public interface ISysPojoVersionService extends ICrudService<SysPojoVersion> {
SysPojoVersion getPojoVersion(SysPojoVersion bean); SysPojoVersion getPojoVersion(SysPojoVersion bean);
List<SysPojoVersion> findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate);
} }

@ -31,19 +31,22 @@ public interface ISysRoleService extends ICrudService<SysRole> {
void refreshSysRoleRef(Long roleId,Integer softType,List<Long> idList,String userName); void refreshSysRoleRef(Long roleId,Integer softType,List<Long> idList,String userName);
@ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") @ApiOperation(value = "查信角色菜单关系", notes = "查询 ID 查询角色菜单关系")
List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId); List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId);
@ApiOperation(value = "查信角色菜单关系",notes = "查询 ID 查询角色菜单关系") @ApiOperation(value = "查信角色菜单关系", notes = "查询 ID 查询角色菜单关系")
List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId,Integer softType); List<SysRefRoleMenu> findSysRefRoleMenuByRoleId(Long roleId, Integer softType);
@ApiOperation(value = "查信角色信息",notes = "根据ID + 角色状态查询角色信息") @ApiOperation(value = "查信角色信息", notes = "根据ID + 角色状态查询角色信息")
List<SysRole> findSysRoleByInIdAndStatus(Long[] ids,Integer status); List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status);
@ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") @ApiOperation(value = "查有效的角色信息", notes = "根据ID + 查有效的角色信息")
List<SysRole> findValidSysRole();
@ApiOperation(value = "查信用户的所有角色信息", notes = "查信用户的所有角色信息")
List<SysRole> findSysRoleByUser(SysUser user); List<SysRole> findSysRoleByUser(SysUser user);
@ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)") @ApiOperation(value = "查信角色信息", notes = "查询角色信息(分页/组合)")
ListPager<SysRole> querySysRole(SysRole role, List<Long> idList, Pager pager); ListPager<SysRole> querySysRole(SysRole role, List<Long> idList, Pager pager);
/*** /***

@ -105,6 +105,26 @@ public interface ISysUserService {
SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin); SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin);
/** /**
*
*
* @param startTime
* @param endTime
* @return
*/
@ApiOperation(value = "查询用户登录日志")
List<SysLogUserLogin> queryUserMonthlyLoginLog(String startTime, String endTime);
/**
*
*
* @param startTime
* @param endTime
* @return
*/
@ApiOperation(value = "查询用户登录失败日志")
List<SysLogUserLogin> queryUserMonthlyFailedLoginLog(String startTime, String endTime);
/**
* *
* *
* @param sysUser * @param sysUser
@ -317,4 +337,7 @@ public interface ISysUserService {
*/ */
@ApiOperation(value = "根据用户名查询密码是否正确") @ApiOperation(value = "根据用户名查询密码是否正确")
SysUser validatePasswordByLoginNameAndReturnUser(String loginName, String password); SysUser validatePasswordByLoginNameAndReturnUser(String loginName, String password);
@ApiOperation(value = "查询有效的用户与角色关系")
List<SysRefUserRole> findValidUserRoleRef();
} }

@ -0,0 +1,117 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogRoleChangeService;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.FileContentTypeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.platform.bean.SysLogRoleChange;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-08-31 11:45
* @Modify:
**/
@RestController
@Api(tags = "用户登录日志")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-log-role-change")
public class SysLogRoleChangeController extends CoreBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(SysLogRoleChangeController.class);
@Autowired
private ISysLogRoleChangeService logRoleChangeService;
@Autowired
private EntityManager entityManager;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@GetMapping(value = "/export/user-role-change")
@ApiOperation(value = "导出用户角色变更记录")
public ResultBean exportUserRoleChangedLog(HttpServletResponse response, String startDate, String endDate) {
try {
final String ZERO_TIME = " 00:00:00";
// 获取当月第一天和最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String firstDay, nextMonthFirstDay;
// 获取前月的第一天
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(startDate));
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstDay = format.format(cale.getTime());
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.setTime(format.parse(endDate));
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 1);
nextMonthFirstDay = format.format(cale.getTime());
firstDay += ZERO_TIME;
nextMonthFirstDay += ZERO_TIME;
List<SysLogRoleChange> logRoleChanges = logRoleChangeService.findLogsBetweenDatetime(firstDay, nextMonthFirstDay);
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "user-role-changed-" + System.currentTimeMillis() + ".xls";
File file = new File(fileName);
file.createNewFile();
File excel = excelTool.exportData(file, logRoleChanges, SysLogRoleChange.class
, (LinkedHashMap<String, String>) ExcelTool.getColName(SysLogRoleChange.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(excel)))) {
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);
}
return ResultBean.success().setResultList(logRoleChanges);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.controller.busi; package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogUserLoginService; import cn.estsh.i3plus.core.api.iservice.busi.ISysLogUserLoginService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords;
@ -18,6 +19,8 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -26,7 +29,13 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
@ -42,13 +51,18 @@ import java.util.List;
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-log-user-login") @RequestMapping(PlatformConstWords.BASE_URL + "/sys-log-user-login")
public class SysLogUserLoginController extends CoreBaseController { public class SysLogUserLoginController extends CoreBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(SysLogUserLoginController.class);
@Autowired
private ISysUserService userService;
@Autowired @Autowired
private ISysLogUserLoginService sysLogUserLoginService; private ISysLogUserLoginService sysLogUserLoginService;
@Autowired @Autowired
private EntityManager entityManager; private EntityManager entityManager;
@Resource(name= CommonConstWords.IMPP_REDIS_RES) @Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes; private ImppRedis redisRes;
@GetMapping("/query") @GetMapping("/query")
@ -98,4 +112,61 @@ public class SysLogUserLoginController extends CoreBaseController {
} }
} }
@GetMapping(value = "/export/month/user-fail-login")
@ApiOperation(value = "根据语言代码查询资源")
public ResultBean exportMonthlyUserFailLoginReport(HttpServletResponse response, String date) {
try {
final String ZERO_TIME = " 00:00:00";
// 获取当月第一天和最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String firstDay, nextMonthFirstDay;
// 获取前月的第一天
Calendar cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstDay = format.format(cale.getTime());
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.setTime(format.parse(date));
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 1);
nextMonthFirstDay = format.format(cale.getTime());
firstDay += ZERO_TIME;
nextMonthFirstDay += ZERO_TIME;
List<SysLogUserLogin> sysLogUserLogins = userService.queryUserMonthlyFailedLoginLog(firstDay, nextMonthFirstDay);
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "user-login-log-" + System.currentTimeMillis() + ".xls";
File file = new File(fileName);
file.createNewFile();
File excel = excelTool.exportData(file, sysLogUserLogins, SysLogUserLogin.class
, (LinkedHashMap<String, String>) ExcelTool.getColName(SysLogUserLogin.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(excel)))) {
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);
}
return ResultBean.success().setResultList(sysLogUserLogins);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -1,7 +1,10 @@
package cn.estsh.i3plus.core.apiservice.controller.busi; package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.FileContentTypeTool;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel;
@ -10,15 +13,30 @@ import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.base.service.ICrudService; import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.LinkedHashMap;
import java.util.List;
/** /**
* @Description : * @Description :
* @Reference : * @Reference :
@ -28,11 +46,19 @@ import org.springframework.web.bind.annotation.RestController;
**/ **/
@RestController @RestController
@Api(tags = "对象历史记录") @Api(tags = "对象历史记录")
@RequestMapping(CommonConstWords.BASE_URL_CORE+"/pojo-version") @RequestMapping(CommonConstWords.BASE_URL_CORE + "/pojo-version")
public class SysPojoVersionController extends CrudBaseController<SysPojoVersion> { public class SysPojoVersionController extends CrudBaseController<SysPojoVersion> {
private static final Logger LOGGER = LoggerFactory.getLogger(SysPojoVersionController.class);
@Autowired @Autowired
private ISysPojoVersionService pojoVersionService; private ISysPojoVersionService pojoVersionService;
@Autowired
private EntityManager entityManager;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@Override @Override
public ICrudService getCrudService() { public ICrudService getCrudService() {
return pojoVersionService; return pojoVersionService;
@ -40,7 +66,7 @@ public class SysPojoVersionController extends CrudBaseController<SysPojoVersion>
@PostMapping("/cloud-query") @PostMapping("/cloud-query")
@ApiOperation(value = "查询数据", notes = "复杂查询,分页,排序") @ApiOperation(value = "查询数据", notes = "复杂查询,分页,排序")
BaseResultBean<SysPojoVersion> queryPojoVersionByPagerCloud(@RequestBody CloudPagerModel<SysPojoVersion> model){ BaseResultBean<SysPojoVersion> queryPojoVersionByPagerCloud(@RequestBody CloudPagerModel<SysPojoVersion> model) {
try { try {
SysPojoVersion bean = packQueryPager(model.getObj()); SysPojoVersion bean = packQueryPager(model.getObj());
@ -53,4 +79,45 @@ public class SysPojoVersionController extends CrudBaseController<SysPojoVersion>
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@GetMapping("/export-user-operation")
@ApiOperation(value = "导出用户操作数据", notes = "导出用户操作数据")
BaseResultBean<SysPojoVersion> exportUserOperation(HttpServletResponse response, String userName, String startDate, String endDate) {
try {
final String ZERO_TIME = " 00:00:00";
startDate += ZERO_TIME;
endDate += ZERO_TIME;
List<SysPojoVersion> pojoVersions = pojoVersionService.findPojoVersionByUserBetweenTime(userName, startDate, endDate);
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "user-operation-" + System.currentTimeMillis() + ".xls";
File file = new File(fileName);
file.createNewFile();
File excel = excelTool.exportData(file, pojoVersions, SysPojoVersion.class
, (LinkedHashMap<String, String>) ExcelTool.getColName(SysPojoVersion.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(excel)))) {
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);
}
return ResultBean.success().setResultList(pojoVersions);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
} }

@ -4,8 +4,12 @@ import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.FileContentTypeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -18,17 +22,35 @@ import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Description : * @Description :
@ -50,6 +72,12 @@ public class SysRoleController extends CrudBaseController<SysRole> {
@Autowired @Autowired
private IPersonnelService personnelService; private IPersonnelService personnelService;
@Autowired
private EntityManager entityManager;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@Override @Override
public ICrudService getCrudService() { public ICrudService getCrudService() {
return sysRoleService; return sysRoleService;
@ -89,7 +117,7 @@ public class SysRoleController extends CrudBaseController<SysRole> {
@ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息") @ApiOperation(value = "查询角色", notes = "查询用户所拥有的角色信息")
public ResultBean findSysRoleByUser() { public ResultBean findSysRoleByUser() {
try { try {
if(!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ if (!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
List<SysRole> result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId()); List<SysRole> result = personnelService.findSysRoleByUserId(getSessionUser().getUser().getId());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(result); .setResultList(result);
@ -99,13 +127,14 @@ public class SysRoleController extends CrudBaseController<SysRole> {
.setResultList(sysRoleService.findAll()); .setResultList(sysRoleService.findAll());
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
} catch (Exception e) { } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
/** /**
* *
*
* @param ids id * @param ids id
* @return * @return
*/ */
@ -117,13 +146,14 @@ public class SysRoleController extends CrudBaseController<SysRole> {
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list);
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
} catch (Exception e) { } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
/** /**
* *
*
* @param roleId id * @param roleId id
* @return * @return
*/ */
@ -144,17 +174,64 @@ public class SysRoleController extends CrudBaseController<SysRole> {
} }
} }
@GetMapping(value = "/export/ref-role-menu")
@ApiOperation(value = "导出角色菜单关系", notes = "导出角色菜单关系")
public ResultBean exportRoleMenu(HttpServletResponse response) {
try {
List<Long> roleIds = sysRoleService.findValidSysRole().stream().map(BaseBean::getId).collect(Collectors.toList());
List<SysRefRoleMenu> list = new ArrayList<>();
for (Long roleId : roleIds) {
list.addAll(sysRoleService.findSysRefRoleMenuByRoleId(roleId));
}
if (CollectionUtils.isEmpty(list)) {
return ResultBean.success("系统中不存在角色与菜单的关系。");
}
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "role-menu-ref-" + System.currentTimeMillis() + ".xls";
File file = new File(fileName);
file.createNewFile();
File excel = excelTool.exportData(file, list, SysRefRoleMenu.class
, (LinkedHashMap<String, String>) ExcelTool.getColName(SysRefRoleMenu.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(excel)))) {
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);
}
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@Override @Override
@GetMapping(value="/query") @GetMapping(value = "/query")
@ApiOperation(value="查询角色",notes="组合查询角色,外带分页功能") @ApiOperation(value = "查询角色", notes = "组合查询角色,外带分页功能")
public ResultBean queryPager(SysRole bean, Pager pager) { public ResultBean queryPager(SysRole bean, Pager pager) {
try{ try {
ListPager result = null; ListPager result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){ if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
result = sysRoleService.findPager(bean,pager); result = sysRoleService.findPager(bean, pager);
}else { } else {
List<SysRefUserRole> refList = personnelService.findSysRefUserRole(getSessionUser().getUser().getId()); List<SysRefUserRole> refList = personnelService.findSysRefUserRole(getSessionUser().getUser().getId());
if(refList != null && refList.size() > 0){ if (refList != null && refList.size() > 0) {
List<Long> idList = new ArrayList<>(refList.size()); List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getRoleId())); refList.forEach(ref -> idList.add(ref.getRoleId()));
@ -162,16 +239,17 @@ public class SysRoleController extends CrudBaseController<SysRole> {
} }
} }
return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setListPager(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
/** /**
* *
* @param id id *
* @param id id
* @param status * @param status
* @return * @return
*/ */
@ -184,9 +262,9 @@ public class SysRoleController extends CrudBaseController<SysRole> {
ValidatorBean.checkNotZero(status, "角色状态不能为空"); ValidatorBean.checkNotZero(status, "角色状态不能为空");
SysRole role = sysRoleService.get(id); SysRole role = sysRoleService.get(id);
ValidatorBean.checkNotNull(role,"不存在的角色信息"); ValidatorBean.checkNotNull(role, "不存在的角色信息");
role.setRoleStatus(status); role.setRoleStatus(status);
ConvertBean.modelUpdate(role,getSessionUser()); ConvertBean.modelUpdate(role, getSessionUser());
sysRoleService.update(role); sysRoleService.update(role);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -199,24 +277,25 @@ public class SysRoleController extends CrudBaseController<SysRole> {
/** /**
* *
* @param ids ids *
* @param ids ids
* @param status * @param status
* @return * @return
*/ */
@PutMapping(value = "/batch-status") @PutMapping(value = "/batch-status")
@ApiOperation(value = "批量修改系统角色状态", notes = "根据ID修改系统角色状态") @ApiOperation(value = "批量修改系统角色状态", notes = "根据ID修改系统角色状态")
public ResultBean updateBatchStatus(Long[] ids,int status) { public ResultBean updateBatchStatus(Long[] ids, int status) {
try { try {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(ids, "角色id 不能为空"); ValidatorBean.checkNotNull(ids, "角色id 不能为空");
ValidatorBean.checkNotZero(status, "角色状态不能为空"); ValidatorBean.checkNotZero(status, "角色状态不能为空");
sysRoleService.updateSysRoleStatusByIds(ids,status,AuthUtil.getSessionUser()); sysRoleService.updateSysRoleStatusByIds(ids, status, AuthUtil.getSessionUser());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@ -230,21 +309,21 @@ public class SysRoleController extends CrudBaseController<SysRole> {
*/ */
@PutMapping(value = "/ref-menu/insert") @PutMapping(value = "/ref-menu/insert")
@ApiOperation(value = "新增角色权限关系", notes = "新增角色权限关系") @ApiOperation(value = "新增角色权限关系", notes = "新增角色权限关系")
public ResultBean insertRefMenu(Long roleId,String[] refIds) { public ResultBean insertRefMenu(Long roleId, String[] refIds) {
try { try {
startMultiService(); startMultiService();
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空"); ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空");
ConvertBean.modelSafeArrayNumber(refIds,true); ConvertBean.modelSafeArrayNumber(refIds, true);
sysRoleService.refreshSysRoleRef(roleId,StringTool.getArrayLong(refIds),AuthUtil.getSessionUser().getUserName()); sysRoleService.refreshSysRoleRef(roleId, StringTool.getArrayLong(refIds), AuthUtil.getSessionUser().getUserName());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@ -256,16 +335,16 @@ public class SysRoleController extends CrudBaseController<SysRole> {
try { try {
// 数据校验 // 数据校验
ValidatorBean.beginValid(refRoleMenu) ValidatorBean.beginValid(refRoleMenu)
.notNull("roleId",refRoleMenu.getRoleId()) .notNull("roleId", refRoleMenu.getRoleId())
.notNull("softType",refRoleMenu.getSoftType()); .notNull("softType", refRoleMenu.getSoftType());
sysRoleService.refreshSysRoleRef(refRoleMenu.getRoleId(),refRoleMenu.getSoftType(),refRoleMenu.getMenuIdList() sysRoleService.refreshSysRoleRef(refRoleMenu.getRoleId(), refRoleMenu.getSoftType(), refRoleMenu.getMenuIdList()
,AuthUtil.getSessionUser().getUserName()); , AuthUtil.getSessionUser().getUserName());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
@ -273,7 +352,8 @@ public class SysRoleController extends CrudBaseController<SysRole> {
/** /**
* *
* @param roleId id *
* @param roleId id
* @param softType ID * @param softType ID
* @return * @return
*/ */
@ -290,32 +370,33 @@ public class SysRoleController extends CrudBaseController<SysRole> {
return ResultBean.success("操作成功") return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(sysRefRoleMenuList); .setResultList(sysRefRoleMenuList);
} catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }
/** /**
* *
*
* @param roleIds id * @param roleIds id
* @param menuIds id * @param menuIds id
* @return * @return
*/ */
@PutMapping(value = "/ref-menu/batch-insert") @PutMapping(value = "/ref-menu/batch-insert")
@ApiOperation(value = "批量新增角色权限关系", notes = "批量新增角色权限关系") @ApiOperation(value = "批量新增角色权限关系", notes = "批量新增角色权限关系")
public ResultBean insertBatchRefMenu(String[] roleIds,String[] menuIds) { public ResultBean insertBatchRefMenu(String[] roleIds, String[] menuIds) {
try { try {
startMultiService(); startMultiService();
roleIds = ConvertBean.modelSafeArrayNumber(roleIds,true); roleIds = ConvertBean.modelSafeArrayNumber(roleIds, true);
menuIds = ConvertBean.modelSafeArrayNumber(menuIds,true); menuIds = ConvertBean.modelSafeArrayNumber(menuIds, true);
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(roleIds, "角色roleIds 不能为空"); ValidatorBean.checkNotNull(roleIds, "角色roleIds 不能为空");
if(roleIds.length == 0){ if (roleIds.length == 0) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -324,21 +405,21 @@ public class SysRoleController extends CrudBaseController<SysRole> {
} }
List<SysRole> roleList = sysRoleService.findSysRoleByInIdAndStatus(StringTool.getArrayLong(roleIds), CommonEnumUtil.DATA_STATUS.DISABLE.getValue()); List<SysRole> roleList = sysRoleService.findSysRoleByInIdAndStatus(StringTool.getArrayLong(roleIds), CommonEnumUtil.DATA_STATUS.DISABLE.getValue());
if(roleList != null && roleList.size() > 0){ if (roleList != null && roleList.size() > 0) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("["+roleList.get(0).getName()+"]角色已禁用,不允许操作") .setErrorDetail("[" + roleList.get(0).getName() + "]角色已禁用,不允许操作")
.setErrorSolution("请重新操作") .setErrorSolution("请重新操作")
.build(); .build();
} }
sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds),StringTool.getArrayLong(menuIds), sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds), StringTool.getArrayLong(menuIds),
AuthUtil.getSessionUser().getUserName()); AuthUtil.getSessionUser().getUserName());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){ } catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep); return ResultBean.fail(busExcep);
}catch(Exception e){ } catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e); return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} }
} }

@ -9,9 +9,11 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.EncryptTool; import cn.estsh.i3plus.platform.common.tool.EncryptTool;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.FileContentTypeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
@ -28,6 +30,7 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -44,7 +47,16 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
/** /**
@ -79,6 +91,12 @@ public class SysUserController extends CoreBaseController {
@Autowired @Autowired
private ISysUserPasswordService userPasswordService; private ISysUserPasswordService userPasswordService;
@Autowired
private EntityManager entityManager;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
/** /**
* *
* *
@ -310,6 +328,44 @@ public class SysUserController extends CoreBaseController {
} }
} }
@GetMapping(value = "/export/ref-user-role")
@ApiOperation(value = "导出用户角色关系", notes = "导出用户角色关系")
public ResultBean exportUserRoleRef(HttpServletResponse response) {
try {
List<SysRefUserRole> list = sysUserService.findValidUserRoleRef();
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "user-role-ref-" + System.currentTimeMillis() + ".xls";
File file = new File(fileName);
file.createNewFile();
File excel = excelTool.exportData(file, list, SysRefUserRole.class
, (LinkedHashMap<String, String>) ExcelTool.getColName(SysRefUserRole.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(excel)))) {
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);
}
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/** /**
* *
* *

@ -0,0 +1,33 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogRoleChangeService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysLogRoleChange;
import cn.estsh.i3plus.pojo.platform.repository.SysLogRoleChangeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-08-31 11:51
* @Modify:
**/
@Service
public class SysLogRoleChangeService implements ISysLogRoleChangeService {
@Autowired
private SysLogRoleChangeRepository logRoleChangeRepository;
@Override
public List<SysLogRoleChange> findLogsBetweenDatetime(String startDatetime, String endDatetime) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.timeBuilder(startDatetime, endDatetime, "createDatetime", true, true, packBean);
return logRoleChangeRepository.findByHqlWhere(packBean);
}
}

@ -4,15 +4,19 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionDetailService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan;
import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionPlanRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionRepository; import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CrudService; import cn.estsh.impp.framework.base.service.CrudService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
/** /**
* @Description : * @Description :
@ -25,6 +29,9 @@ import java.util.Objects;
public class SysPojoVersionService extends CrudService<SysPojoVersion> implements ISysPojoVersionService { public class SysPojoVersionService extends CrudService<SysPojoVersion> implements ISysPojoVersionService {
@Autowired @Autowired
private SysPojoVersionPlanRepository pojoVersionPlanRepository;
@Autowired
private SysPojoVersionRepository pojoVersionRDao; private SysPojoVersionRepository pojoVersionRDao;
@Autowired @Autowired
@ -42,8 +49,26 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
} }
@Override @Override
public List<SysPojoVersion> findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getStringEqualPack(userName, "modifyUser", packBean);
DdlPreparedPack.timeBuilder(startDate, endDate, "modifyDatetime", true, false, packBean);
List<SysPojoVersion> pojoVersions = pojoVersionRDao.findByHqlWhere(packBean);
DdlPackBean planPackBean = DdlPackBean.getDdlPackBean();
List<SysPojoVersionPlan> pojoVersionPlans = pojoVersionPlanRepository.findByHqlWhere(planPackBean);
pojoVersions.stream().parallel().forEach(d -> {
Optional<SysPojoVersionPlan> plan = pojoVersionPlans.stream().filter(p -> d.getPlanId().equals(p.getId())).findFirst();
plan.ifPresent(c -> d.setPojoClassTitle(c.getRefClassTitle()));
});
return pojoVersions;
}
@Override
public SysPojoVersion packGetBean(SysPojoVersion bean) { public SysPojoVersion packGetBean(SysPojoVersion bean) {
if(Objects.nonNull(bean)){ if (Objects.nonNull(bean)) {
bean.setVersionDetail(pojoVersionDetailService.get(bean.getPojoDetailId())); bean.setVersionDetail(pojoVersionDetailService.get(bean.getPojoDetailId()));
} }
return bean; return bean;

@ -14,7 +14,11 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository;
@ -234,15 +238,21 @@ public class SysRoleService extends CrudService<SysRole> implements ISysRoleServ
@Override @Override
public List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status) { public List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status) {
LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}",ids,status); LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}", ids, status);
StringBuffer findWhere = new StringBuffer(); StringBuffer findWhere = new StringBuffer();
HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere); HqlPack.getInPack(StringUtils.join(ids, ","), "id", findWhere);
HqlPack.getNumEqualPack(status,"roleStatus",findWhere); HqlPack.getNumEqualPack(status, "roleStatus", findWhere);
return roleRDao.findByHqlWhere(findWhere.toString()); return roleRDao.findByHqlWhere(findWhere.toString());
} }
@Override @Override
@ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") public List<SysRole> findValidSysRole() {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
return roleRDao.findByHqlWhere(packBean);
}
@Override
@ApiOperation(value = "查信用户的所有角色信息", notes = "查信用户的所有角色信息")
public List<SysRole> findSysRoleByUser(SysUser user) { public List<SysRole> findSysRoleByUser(SysUser user) {
LOGGER.info("系统角色 查询用户所有角色"); LOGGER.info("系统角色 查询用户所有角色");
return userPermissionDao.findSysRoleByUser(user); return userPermissionDao.findSysRoleByUser(user);

@ -310,6 +310,23 @@ public class SysUserService implements ISysUserService {
} }
@Override @Override
public List<SysLogUserLogin> queryUserMonthlyLoginLog(String startTime, String endTime) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.timeBuilder(startTime, endTime, "logLoginDateTime", true, false, packBean);
List<SysLogUserLogin> loginLogs = logUserLoginRDao.findByHqlWhere(packBean);
return loginLogs;
}
@Override
public List<SysLogUserLogin> queryUserMonthlyFailedLoginLog(String startTime, String endTime) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.timeBuilder(startTime, endTime, "logLoginDateTime", true, false, packBean);
DdlPreparedPack.getNumNOEqualPack(CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), "logLoginStatus", packBean);
List<SysLogUserLogin> loginLogs = logUserLoginRDao.findByHqlWhere(packBean);
return loginLogs;
}
@Override
@ApiOperation(value = "新增账号", notes = "新增账号信息") @ApiOperation(value = "新增账号", notes = "新增账号信息")
public void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds, String userName) { public void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds, String userName) {
LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser);
@ -772,6 +789,12 @@ public class SysUserService implements ISysUserService {
return userDb; return userDb;
} }
@Override
public List<SysRefUserRole> findValidUserRoleRef() {
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
return refUserRoleRDao.findByHqlWhere(packBean);
}
/** /**
* *
* *

Loading…
Cancel
Save