weaver-hrm-salary/src/com/engine/salary/wrapper/AuthWrapper.java

129 lines
4.8 KiB
Java

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<AuthMemberDTO> memberList(AuthMemberQueryParam param) {
List<AuthMemberPO> authMemberPOS = getAuthMemberService(user).list(param.getRoleId());
int total = authMemberPOS.size();
authMemberPOS = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), authMemberPOS);
List<AuthMemberDTO> 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<AuthMemberDTO> 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<AuthDataDTO> dataList(AuthDataQueryParam param) {
List<AuthDataPO> list = getAuthDataService(user).list(param.getRoleId());
int total = list.size();
list = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), list);
List<AuthDataDTO> 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<AuthDataDTO> 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(String page) {
return getAuthMapper().getAuth((long) user.getUID(), page);
}
}