DcucLoginController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.dragoninfo.dcuc.authweb.restcontroller.login;
  2. import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
  3. import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
  4. import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
  5. import com.dragoninfo.dcuc.user.admin.facade.IManageInfoFacade;
  6. import com.dragoninfo.dcuc.user.admin.facade.IMenuMtAuthFacade;
  7. import com.dragoninfo.dcuc.user.user.entity.UserInfo;
  8. import com.dragoninfo.dcuc.user.user.enumresources.UserTypeEnum;
  9. import com.dragoninfo.dcuc.user.user.facade.IUserFacade;
  10. import com.dragoninfo.dcuc.user.user.facade.IUserInfoFacade;
  11. import com.dragonsoft.duceap.base.entity.security.SecurityRight;
  12. import com.dragonsoft.duceap.base.entity.security.SecurityUser;
  13. import com.dragonsoft.duceap.base.utils.UserContextUtils;
  14. import com.dragonsoft.duceap.commons.util.string.StringUtils;
  15. import com.dragonsoft.duceap.web.SecurityProperties;
  16. import org.slf4j.Logger;
  17. import org.slf4j.LoggerFactory;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.GetMapping;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. @RestController
  25. @RequestMapping(value = "/user")
  26. public class DcucLoginController {
  27. @Autowired
  28. private IMenuMtAuthFacade iMenuMtAuthFacade;
  29. @Autowired
  30. private IUserInfoFacade iUserInfoFacade;
  31. @Autowired
  32. private IManageInfoFacade iManageInfoFacade;
  33. @Autowired
  34. private IRoleFacade iRoleFacade;
  35. @Autowired
  36. private IOrgInfoFacade iOrgInfoFacade;
  37. @Autowired
  38. private DcucAuthWebConfig dcucAuthWebConfig;
  39. @Autowired
  40. private IUserFacade userFacade;
  41. @Autowired
  42. private SecurityProperties securityProperties;
  43. public static final Logger logger = LoggerFactory.getLogger(DcucLoginController.class);
  44. public DcucLoginController() {
  45. }
  46. @GetMapping(value = "/info")
  47. public SecurityUser info() {
  48. UserInfo userInfo = new UserInfo();
  49. try {
  50. SecurityUser securityUser = (SecurityUser) UserContextUtils.getCurrentUser();
  51. if("dids".equals(securityProperties.getType())){
  52. userInfo = userFacade.detailBySfzh(securityUser.getIdcard());
  53. securityUser.setName(userInfo.getName());
  54. securityUser.setUserName(userInfo.getName());
  55. }
  56. if("dcuc".equals(securityProperties.getType())){
  57. userInfo = iUserInfoFacade.userDetail(securityUser.getId());
  58. }
  59. securityUser.setId(userInfo.getId());
  60. List<SecurityRight> authmenu = getAuthmenu(securityUser, userInfo);
  61. securityUser.setSecurityRightList(authmenu);
  62. //todo 因为数据库不同 后续不需要下面代码
  63. securityUser.setIdcard(userInfo.getIdcard());
  64. securityUser.setName(userInfo.getName());
  65. //ADMIN管理员
  66. String rootOrgid = userInfo.getOrgId();
  67. if (iUserInfoFacade.isRootUser(securityUser.getId()) && StringUtils.isEmpty(rootOrgid)) {
  68. rootOrgid = iOrgInfoFacade.getRootOrgId();
  69. }
  70. securityUser.setSecurityOrg(rootOrgid);
  71. return securityUser;
  72. } catch (Exception var3) {
  73. logger.error("获取用户信息异常", var3);
  74. throw new SecurityException("获取用户信息异常", var3);
  75. }
  76. }
  77. //获取菜单
  78. private List<SecurityRight> getAuthmenu(SecurityUser securityUser, UserInfo userInfo) {
  79. List<SecurityRight> rights = new ArrayList<SecurityRight>();
  80. //用户中心菜单
  81. //ADMIN
  82. if (iUserInfoFacade.getRootUser().equals(securityUser.getName())) {
  83. rights = iMenuMtAuthFacade.getAllMenus("SysMenuInfo");
  84. } else if (dcucAuthWebConfig.isAuthAccess()) {
  85. logger.info("进入权限授权模块控制菜单权限");
  86. //使用权限授权模块控制菜单权限
  87. List<String> rightIds = iRoleFacade.getAuthByUserIdAndAppCode(securityUser.getId(), dcucAuthWebConfig.getAppCode());
  88. rights = iMenuMtAuthFacade.getMenuByIds(rightIds, "SysMenuInfo");
  89. } else {
  90. logger.info("进入管理员管理配置菜单权限");
  91. //使用管理员管理配置菜单权限
  92. rights = iMenuMtAuthFacade.menuForIndex(securityUser.getId(), "00000000000000000000000000000000");
  93. rights = menuFilter(userInfo, rights);
  94. }
  95. String[] codes = new String[rights.size()];
  96. for (int i = 0; i < rights.size(); i++) {
  97. String code = rights.get(i).getCode();
  98. codes[i] = code;
  99. }
  100. securityUser.setSecurityRights(codes);
  101. return rights;
  102. }
  103. private List<SecurityRight> menuFilter(UserInfo userInfo, List<SecurityRight> securityRightList) {
  104. List<SecurityRight> tempSearchList = new ArrayList<SecurityRight>();
  105. for (SecurityRight securityRight : securityRightList) {
  106. String code = securityRight.getCode();
  107. if ((!UserTypeEnum.POLICE.getValue().equals(userInfo.getUserType()) && !iUserInfoFacade.getRootUser().equals(userInfo.getName()))
  108. && ("YHGLPT_ZHCX".equals(code) || "YHGLPT_ZHCX_RYCX".equals(code) || "YHGLPT_ZHCX_JGCX".equals(code))) {
  109. continue;
  110. }
  111. tempSearchList.add(securityRight);
  112. }
  113. securityRightList = tempSearchList;
  114. return securityRightList;
  115. }
  116. }