0593ac5bac40f480aa4a827f03f48ef17e4015f0.svn-base 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package cn.com.goldenwater.dcproj.service.impl.system;
  2. import cn.com.goldenwater.core.service.AbstractCrudService;
  3. import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
  4. import cn.com.goldenwater.dcproj.dao.RoleDao;
  5. import cn.com.goldenwater.dcproj.dao.RolePrivDao;
  6. import cn.com.goldenwater.dcproj.dto.RoleDto;
  7. import cn.com.goldenwater.dcproj.enums.SystemFlagEnum;
  8. import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
  9. import cn.com.goldenwater.dcproj.model.Role;
  10. import cn.com.goldenwater.dcproj.param.GetRoleByUserIdParam;
  11. import cn.com.goldenwater.dcproj.param.RoleParam;
  12. import cn.com.goldenwater.dcproj.param.RolePrivParam;
  13. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  14. import cn.com.goldenwater.dcproj.service.RoleService;
  15. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  16. import com.github.pagehelper.PageHelper;
  17. import com.github.pagehelper.PageInfo;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. import java.util.Optional;
  25. import java.util.stream.Collectors;
  26. /**
  27. * @author lune
  28. * @date 2018-2-13
  29. */
  30. @Service
  31. @Transactional
  32. public class RoleServiceImpl extends AbstractCrudService<Role, RoleParam> implements RoleService {
  33. @Autowired
  34. private RoleDao roleDao;
  35. @Autowired
  36. private RolePrivDao rolePrivDao;
  37. @Autowired
  38. private BisInspAllRlationPersDao bisInspAllRlationPersDao;
  39. public RoleServiceImpl(RoleDao roleDao) {
  40. super(roleDao);
  41. this.roleDao = roleDao;
  42. }
  43. @Autowired
  44. private OlBisInspOrgService olBisInspOrgService;
  45. @Override
  46. public PageInfo<RoleDto> getRoleByUserId(GetRoleByUserIdParam p) throws Exception {
  47. // 获取机构编码,非水利部机构需要输入对应级地区编码(必须)
  48. String province = AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(p.getOrgId()));
  49. // 获取用户信息
  50. BisInspAllRlationPers per = bisInspAllRlationPersDao.get(p.getId());
  51. Optional.ofNullable(per).orElseThrow(() -> new Exception("此用户不存在:" + p.getId()));
  52. Optional.of(per).map(BisInspAllRlationPers::getOwnerSystem)
  53. .orElseThrow(() -> new Exception("用户所属系统不正确:" + per.getOwnerSystem()));
  54. List<String> systemList = new ArrayList<>(2);
  55. // 判断是否是督查系统全系统
  56. if (!SystemFlagEnum.DC_ALL.getValue().equals(per.getOwnerSystem())) {
  57. systemList.add(SystemFlagEnum.DC_ALL.getValue());
  58. systemList.add(per.getOwnerSystem());
  59. }
  60. // PageHelper.startPage(p.getPageNum(), p.getPageSize());
  61. List<RoleDto> list = roleDao.getRoleByUserId(p.getId(), systemList, p.getRoleName(), p.getOrgId(), province);
  62. List<RoleDto> pageList = list.stream()
  63. .filter(role -> {
  64. if (StringUtils.isNotBlank(p.getPersType()) && StringUtils.isNotBlank(role.getPersType())) {
  65. return "0".equals(role.getPersType()) || role.getPersType().equals(p.getPersType());
  66. }
  67. return true;
  68. })
  69. .skip(p.getPageSize() * (p.getPageNum() - 1))
  70. .limit(p.getPageSize()).collect(Collectors.toList());
  71. PageInfo<RoleDto> pageInfo = new PageInfo<>(pageList);
  72. pageInfo.setTotal(list.size());
  73. return pageInfo;
  74. }
  75. @Override
  76. public List<RoleDto> findPageDto(RoleParam roleParam) {
  77. PageHelper.startPage(roleParam.getPageNum(), roleParam.getPageSize(), false);
  78. return roleDao.findPageDto(roleParam);
  79. }
  80. @Override
  81. public PageInfo<RoleDto> findPageInfoDto(RoleParam roleParam) {
  82. PageHelper.startPage(roleParam.getPageNum(), roleParam.getPageSize(), true);
  83. List<RoleDto> list = roleDao.findPageDto(roleParam);
  84. return new PageInfo<>(list);
  85. }
  86. @Override
  87. public void insertRole(Role role, List<RolePrivParam> list, RolePrivParam param) {
  88. roleDao.insert(role);
  89. rolePrivDao.deleteBy(param);
  90. if (null != list && list.size() > 0) {
  91. rolePrivDao.addRolePriv(list);
  92. }
  93. }
  94. @Override
  95. public void updateRole(Role role, List<RolePrivParam> list, RolePrivParam param) {
  96. roleDao.update(role);
  97. rolePrivDao.deleteBy(param);
  98. if (null != list && list.size() > 0) {
  99. rolePrivDao.addRolePriv(list);
  100. }
  101. }
  102. }