自定义报表 功能优化

yun-zuoyi
wei.peng 6 years ago
parent fa8622b3ee
commit 199e1db555

@ -105,6 +105,9 @@ public interface ISysRoleService {
@ApiOperation(value = "查信角色信息",notes = "查询指定角色信息") @ApiOperation(value = "查信角色信息",notes = "查询指定角色信息")
List<SysRole> findSysRoleByInId(Long[] ids); List<SysRole> findSysRoleByInId(Long[] ids);
@ApiOperation(value = "查信角色信息",notes = "根据ID + 角色状态查询角色信息")
List<SysRole> findSysRoleByInIdAndStatus(Long[] ids,Integer status);
@ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") @ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息")
List<SysRole> findSysRoleByUser(SysUser user); List<SysRole> findSysRoleByUser(SysUser user);

@ -2,12 +2,9 @@ package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysLocaleLanguageService;
import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; import cn.estsh.i3plus.platform.common.tool.ServletRequestTool;
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.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
@ -27,6 +24,7 @@ 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;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -89,20 +87,17 @@ public class WhiteController extends CoreBaseController {
@GetMapping(value="/auth/login") @GetMapping(value="/auth/login")
@ApiOperation(value="登陆",notes="登陆") @ApiOperation(value="登陆",notes="登陆")
public ResultBean login(HttpServletRequest request, String loginName, String loginPwd, String languageCode){ public ResultBean login(HttpServletRequest request, String loginName, String loginPwd, String languageCode,
@RequestParam(required = false) String ipAddr){
LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode); LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode);
ResultBean result = null; ResultBean result = null;
try { try {
ValidatorBean.checkNotNull(loginName,"用户名不能为空"); ValidatorBean.checkNotNull(loginName,"用户名不能为空");
ValidatorBean.checkNotNull(loginPwd,"密码不能为空"); ValidatorBean.checkNotNull(loginPwd,"密码不能为空");
ValidatorBean.checkNotNull(languageCode,"语言不能为空"); ValidatorBean.checkNotNull(languageCode,"语言不能为空");
// ValidatorBean.checkNotNull(ipAddr,"IP 地址不能为空");
try { logout();
//先进行登出
AuthUtil.logout();
}catch (Exception e){
e.printStackTrace();
}
SessionUser user = userService.queryUserLogin(loginName,loginPwd.trim(),languageCode); SessionUser user = userService.queryUserLogin(loginName,loginPwd.trim(),languageCode);
@ -115,10 +110,10 @@ public class WhiteController extends CoreBaseController {
result.setUrl("/"); result.setUrl("/");
// 记录登录记录 // 记录登录记录
recordSysUserLog(user.getUser().getUserInfoId(), loginName,CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), request); recordSysUserLog(user.getUser().getUserInfoId(), loginName,CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), ipAddr);
} catch (IncorrectCredentialsException e) { } catch (IncorrectCredentialsException e) {
// 密码错误 // 密码错误
Integer num = systemLoginService.doLoginPasswordError(loginName,request.getSession().getId()); Integer num = systemLoginService.doLoginPasswordError(loginName, ipAddr);
num = CommonConstWords.USER_LOGIN_ERROR_MAX_NUM - num; num = CommonConstWords.USER_LOGIN_ERROR_MAX_NUM - num;
result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD); result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD);
if(num == 0){ if(num == 0){
@ -128,55 +123,55 @@ public class WhiteController extends CoreBaseController {
} }
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName, CommonEnumUtil.USER_LOGIN_STATUS.WRONG_PASSWORD.getValue(), request); recordSysUserLog(null, loginName, CommonEnumUtil.USER_LOGIN_STATUS.WRONG_PASSWORD.getValue(), ipAddr);
} catch (CredentialsException e) { } catch (CredentialsException e) {
// 用户名或密码错误 // 用户名或密码错误
result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME); result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_NAME);
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.WRONG_USERNAME_OR_PASSWORD.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.WRONG_USERNAME_OR_PASSWORD.getValue(), ipAddr);
} catch (LockedAccountException e) { } catch (LockedAccountException e) {
// 账号已锁定 // 账号已锁定
result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_LOCKING); result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_LOCKING);
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_LOGIN_LOCKING.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_LOGIN_LOCKING.getValue(), ipAddr);
} catch (UnknownAccountException e) { } catch (UnknownAccountException e) {
// 用户信息不存在 // 用户信息不存在
result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL); result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_INFO_NULL);
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_INFO_NULL.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.USER_INFO_NULL.getValue(), ipAddr);
} catch (AuthenticationException e) { } catch (AuthenticationException e) {
// 系统异常 // 系统异常
result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
result.setErrorMsg(e.getMessage()); result.setErrorMsg(e.getMessage());
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), ipAddr);
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
result = ResultBean.fail(e); result = ResultBean.fail(e);
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), ipAddr);
} catch (Exception e) { } catch (Exception e) {
result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()) result = ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode())
.setErrorMsg(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription()); .setErrorMsg(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription());
// 记录登录记录 // 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), request); recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), ipAddr);
} }
return result; return result;
} }
private void recordSysUserLog(Long userId, String username,Integer userLoginStatus,HttpServletRequest request){ private void recordSysUserLog(Long userId, String username,Integer userLoginStatus,String IpAddr){
SysLogUserLogin log = new SysLogUserLogin(); SysLogUserLogin log = new SysLogUserLogin();
log.setUserId(userId); log.setUserId(userId);
log.setLogLoginName(username); log.setLogLoginName(username);
log.setLogLoginStatus(userLoginStatus); log.setLogLoginStatus(userLoginStatus);
log.setLogLoginBrowser(ServletRequestTool.getRequestBrowser(request)); log.setLogLoginBrowser(ServletRequestTool.getRequestBrowser(request));
log.setLogLoginHost(ServletRequestTool.getRequestHost(request)); log.setLogLoginHost(IpAddr);
log.setLogLoginPlatform(CommonEnumUtil.LOG_LOGIN_PLATFORM.descOf(ServletRequestTool.getRequestOs(request))); log.setLogLoginPlatform(CommonEnumUtil.LOG_LOGIN_PLATFORM.descOf(ServletRequestTool.getRequestOs(request)));
log.setLogLoginDateTime(TimeTool.getNowTime(true)); log.setLogLoginDateTime(TimeTool.getNowTime(true));

@ -257,7 +257,16 @@ public class SysRoleController extends CoreBaseController{
.setErrorDetail("请输入需要更新的角色信息。") .setErrorDetail("请输入需要更新的角色信息。")
.build(); .build();
} }
List<SysRole> roleList = sysRoleService.findSysRoleByInIdAndStatus(StringTool.getArrayLong(roleIds), CommonEnumUtil.DATA_STATUS.DISABLE.getValue());
if(roleList != null && roleList.size() > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("["+roleList.get(0).getName()+"]角色已禁用,不允许操作")
.setErrorSolution("请重新操作")
.build();
}
sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds),StringTool.getArrayLong(menuIds), sysRoleService.refreshBatchSysRoleRef(StringTool.getArrayLong(roleIds),StringTool.getArrayLong(menuIds),
AuthUtil.getSessionUser().getUserName()); AuthUtil.getSessionUser().getUserName());

@ -596,35 +596,38 @@ public class CoreTreeService implements ICoreTreeService {
} }
private List<SysDepartment> findSysDepartmentCacheByHqlWhere(String hql){ private List<SysDepartment> findSysDepartmentCacheByHqlWhere(String hql){
if(!StringUtils.isBlank(hql)){ return departmentRDao.findByHqlWhere(hql);
String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_DEPARTMENT+ "_findCacheByHqlWhere" + "_" + hql.hashCode(); // if(!StringUtils.isBlank(hql)){
List list = redisCore.getList(redisKey, 0, -1); // String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_DEPARTMENT+ "_findCacheByHqlWhere" + "_" + hql.hashCode();
if(list == null){ // List list = redisCore.getList(redisKey, 0, -1);
list = departmentRDao.findByHqlWhere(hql); // if(list == null){
if(list != null){ // list = departmentRDao.findByHqlWhere(hql);
redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE); // if(list != null){
} // redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE);
} // }
return list; // }
}else { // return list;
return null; // }else {
} // return null;
// }
} }
private List<SysOrganize> findSysOrganizeCacheByHqlWhere(String hql){ private List<SysOrganize> findSysOrganizeCacheByHqlWhere(String hql){
if(!StringUtils.isBlank(hql)){ return organizeRDao.findByHqlWhere(hql);
String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_ORGANIZE+ "_findCacheByHqlWhere" + "_" + hql.hashCode();
List list = redisCore.getList(redisKey, 0, -1); // if(!StringUtils.isBlank(hql)){
if(list == null){ // String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_ORGANIZE+ "_findCacheByHqlWhere" + "_" + hql.hashCode();
list = organizeRDao.findByHqlWhere(hql); // List list = redisCore.getList(redisKey, 0, -1);
if(list != null){ // if(list == null){
redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE); // list = organizeRDao.findByHqlWhere(hql);
} // if(list != null){
} // redisCore.putList(redisKey,list,CommonConstWords.REDIS_TIME_DAY_ONE);
return list; // }
}else { // }
return null; // return list;
} // }else {
// return null;
// }
} }
} }

@ -228,6 +228,15 @@ public class SysRoleService implements ISysRoleService {
} }
@Override @Override
public List<SysRole> findSysRoleByInIdAndStatus(Long[] ids, Integer status) {
LOGGER.info("系统角色 SYS_ROLE findSysRoleByInIdAndStatus ids:{} , status:{}",ids,status);
StringBuffer findWhere = new StringBuffer();
HqlPack.getInPack(StringUtils.join(ids,","),"id",findWhere);
HqlPack.getNumEqualPack(status,"roleStatus",findWhere);
return roleRDao.findByHqlWhere(findWhere.toString());
}
@Override
@ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息") @ApiOperation(value = "查信用户的所有角色信息",notes = "查信用户的所有角色信息")
public List<SysRole> findSysRoleByUser(SysUser user) { public List<SysRole> findSysRoleByUser(SysUser user) {
LOGGER.info("系统角色 查询用户所有角色"); LOGGER.info("系统角色 查询用户所有角色");

Loading…
Cancel
Save