package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.auth.dto.AuthDataDTO; import com.engine.salary.entity.auth.dto.AuthMemberDTO; import com.engine.salary.entity.auth.dto.AuthOptDTO; import com.engine.salary.entity.auth.param.*; import com.engine.salary.entity.auth.po.AuthDataPO; import com.engine.salary.entity.auth.po.AuthMemberPO; import com.engine.salary.enums.auth.DataTargetTypeEnum; import com.engine.salary.enums.auth.MemberTargetTypeEnum; import com.engine.salary.mapper.auth.AuthMapper; import com.engine.salary.service.auth.*; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.engine.salary.util.valid.ValidUtil; import lombok.extern.slf4j.Slf4j; import weaver.hrm.User; import java.util.List; import java.util.stream.Collectors; @Slf4j public class AuthWrapper extends Service { private AuthRoleService getAuthRoleService(User user) { return ServiceUtil.getService(AuthRoleServiceImpl.class, user); } private AuthMemberService getAuthMemberService(User user) { return ServiceUtil.getService(AuthMemberServiceImpl.class, user); } private AuthOptService getAuthOptService(User user) { return ServiceUtil.getService(AuthOptServiceImpl.class, user); } private AuthDataService getAuthDataService(User user) { return ServiceUtil.getService(AuthDataServiceImpl.class, user); } public Long saveRole(AuthRoleSaveParam param) { ValidUtil.doValidator(param); return getAuthRoleService(user).saveRole(param); } public void deleteRole(Long id) { getAuthRoleService(user).deleteRole(id); } public PageInfo memberList(AuthMemberQueryParam param) { List authMemberPOS = getAuthMemberService(user).list(param.getRoleId()); int total = authMemberPOS.size(); authMemberPOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authMemberPOS); List dtos = authMemberPOS.stream() .map(po -> AuthMemberDTO.builder() .id(po.getId()) .targetTypeName(MemberTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) .targetType(MemberTargetTypeEnum.parseByValue(po.getTargetType())) .targetName(po.getTargetName()) .target(po.getTarget()) .build()) .collect(Collectors.toList()); PageInfo authMemberDTOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthMemberDTO.class); authMemberDTOPageInfo.setTotal(total); return authMemberDTOPageInfo; } public Long saveMember(AuthMemberSaveParam param) { ValidUtil.doValidator(param); return getAuthMemberService(user).save(param); } public void deleteMember(Long id) { getAuthMemberService(user).delete(id); } public void syncMember(Long roleId) { getAuthMemberService(user).sync(roleId); } public AuthOptDTO optTree(Long roleId) { return getAuthOptService(user).optTree(roleId); } public void saveOpt(AuthOptSaveParam opt) { getAuthOptService(user).save(opt); } public PageInfo dataList(AuthDataQueryParam param) { List list = getAuthDataService(user).list(param.getRoleId()); int total = list.size(); list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list); List dtos = list.stream().map(po -> AuthDataDTO.builder() .id(po.getId()) .targetTypeName(DataTargetTypeEnum.parseByValue(po.getTargetType()).getDefaultLabel()) .targetType(DataTargetTypeEnum.parseByValue(po.getTargetType())) .targetName(po.getTargetName()) .target(po.getTarget()) .build()) .collect(Collectors.toList()); PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), dtos, AuthDataDTO.class); page.setTotal(total); return page; } public void saveData(AuthDataSaveParam authDataSaveParam) { getAuthDataService(user).save(authDataSaveParam); } public void syncData(Long roleId) { getAuthDataService(user).sync(roleId); } private AuthMapper getAuthMapper() { return MapperProxyFactory.getProxy(AuthMapper.class); } public Object auth() { return getAuthMapper().getAuth(); } }