2024-07-26 11:35:17 +08:00
|
|
|
package com.engine.salary.service.auth;
|
|
|
|
|
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
|
import com.engine.hrmelog.entity.dto.LoggerContext;
|
|
|
|
|
import com.engine.salary.config.SalaryElogConfig;
|
|
|
|
|
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
|
|
|
|
import com.engine.salary.entity.auth.param.AuthRoleSaveParam;
|
|
|
|
|
import com.engine.salary.entity.auth.po.AuthRolePO;
|
|
|
|
|
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
|
|
|
|
import com.engine.salary.enums.OperateTypeEnum;
|
|
|
|
|
import com.engine.salary.exception.SalaryRunTimeException;
|
|
|
|
|
import com.engine.salary.mapper.auth.AuthMemberMapper;
|
|
|
|
|
import com.engine.salary.mapper.auth.AuthRoleMapper;
|
|
|
|
|
import com.engine.salary.util.SalaryI18nUtil;
|
|
|
|
|
import com.engine.salary.util.db.IdGenerator;
|
|
|
|
|
import com.engine.salary.util.db.MapperProxyFactory;
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.Date;
|
2024-08-01 18:04:09 +08:00
|
|
|
import java.util.List;
|
2024-07-26 11:35:17 +08:00
|
|
|
|
|
|
|
|
public class AuthRoleServiceImpl extends Service implements AuthRoleService {
|
|
|
|
|
|
|
|
|
|
private AuthRoleMapper getAuthRoleMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(AuthRoleMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private AuthMemberMapper getAuthMemberMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(AuthMemberMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-23 09:38:54 +08:00
|
|
|
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);
|
2024-07-26 11:35:17 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-08-01 18:04:09 +08:00
|
|
|
@Override
|
|
|
|
|
public List<AuthRolePO> roleList(Long taxAgentId) {
|
|
|
|
|
return getAuthRoleMapper().listSome(AuthRolePO.builder().taxAgentId(taxAgentId).build());
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-26 11:35:17 +08:00
|
|
|
@Override
|
|
|
|
|
public Long saveRole(AuthRoleSaveParam param) {
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
Long id = param.getId();
|
|
|
|
|
String name = param.getName();
|
2024-08-02 16:18:26 +08:00
|
|
|
String description = param.getDescription();
|
2024-07-26 11:35:17 +08:00
|
|
|
Long taxAgentId = param.getTaxAgentId();
|
|
|
|
|
|
2024-08-02 16:18:26 +08:00
|
|
|
|
2024-07-26 11:35:17 +08:00
|
|
|
AuthRolePO po;
|
|
|
|
|
if (id == null) {
|
|
|
|
|
po = AuthRolePO.builder()
|
|
|
|
|
.id(IdGenerator.generate())
|
|
|
|
|
.name(name)
|
2024-08-02 16:18:26 +08:00
|
|
|
.description(description)
|
2024-07-26 11:35:17 +08:00
|
|
|
.taxAgentId(taxAgentId)
|
|
|
|
|
.creator((long) user.getUID())
|
|
|
|
|
.createTime(now)
|
|
|
|
|
.updateTime(now)
|
|
|
|
|
.deleteType(0)
|
|
|
|
|
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
|
|
|
|
.build();
|
|
|
|
|
getAuthRoleMapper().insertIgnoreNull(po);
|
|
|
|
|
|
|
|
|
|
LoggerContext<TaxAgentPO> loggerContext = new LoggerContext<>();
|
|
|
|
|
loggerContext.setUser(user);
|
|
|
|
|
loggerContext.setTargetId(taxAgentId + "");
|
|
|
|
|
loggerContext.setTargetName("角色:" + name);
|
|
|
|
|
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
|
|
|
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增角色"));
|
|
|
|
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增角色"));
|
|
|
|
|
loggerContext.setNewValues(po);
|
|
|
|
|
SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
po = getAuthRoleMapper().getById(id);
|
|
|
|
|
if (po == null) {
|
|
|
|
|
throw new SalaryRunTimeException("角色不存在!");
|
|
|
|
|
}
|
|
|
|
|
AuthRolePO newPo = AuthRolePO.builder()
|
|
|
|
|
.id(id)
|
|
|
|
|
.name(name)
|
2024-08-02 16:18:26 +08:00
|
|
|
.description(description)
|
2024-07-26 11:35:17 +08:00
|
|
|
.taxAgentId(po.getTaxAgentId())
|
|
|
|
|
.updateTime(now)
|
|
|
|
|
.build();
|
|
|
|
|
getAuthRoleMapper().updateIgnoreNull(newPo);
|
|
|
|
|
|
|
|
|
|
LoggerContext<TaxAgentPO> loggerContext = new LoggerContext<>();
|
|
|
|
|
loggerContext.setUser(user);
|
|
|
|
|
loggerContext.setTargetId(taxAgentId + "");
|
|
|
|
|
loggerContext.setTargetName("角色:" + name);
|
|
|
|
|
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
|
|
|
|
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新角色"));
|
|
|
|
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新角色"));
|
|
|
|
|
loggerContext.setOldValues(po);
|
|
|
|
|
loggerContext.setNewValues(newPo);
|
|
|
|
|
SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return po.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
2024-08-06 10:46:33 +08:00
|
|
|
public void deleteRole(List<Long> ids) {
|
2024-08-23 09:38:54 +08:00
|
|
|
ids.forEach(roleId -> {
|
|
|
|
|
AuthRolePO po = getAuthRoleMapper().getById(roleId);
|
2024-08-06 10:46:33 +08:00
|
|
|
if (po == null) {
|
|
|
|
|
throw new SalaryRunTimeException("角色不存在!");
|
|
|
|
|
}
|
2024-07-26 11:35:17 +08:00
|
|
|
|
2024-08-23 09:38:54 +08:00
|
|
|
getAuthMemberService(user).deleteByRoleId(roleId);
|
|
|
|
|
getAuthOptService(user).deleteByRoleId(roleId);
|
|
|
|
|
getAuthDataService(user).deleteByRoleId(roleId);
|
|
|
|
|
getAuthRoleMapper().deleteByIds(Collections.singleton(roleId));
|
2024-07-26 11:35:17 +08:00
|
|
|
|
|
|
|
|
|
2024-08-06 10:46:33 +08:00
|
|
|
LoggerContext<TaxAgentPO> loggerContext = new LoggerContext<>();
|
|
|
|
|
loggerContext.setUser(user);
|
|
|
|
|
loggerContext.setTargetId(po.getTaxAgentId() + "");
|
|
|
|
|
loggerContext.setTargetName("角色:" + po.getName());
|
|
|
|
|
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
|
|
|
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除角色"));
|
|
|
|
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除角色"));
|
|
|
|
|
loggerContext.setNewValues(po);
|
|
|
|
|
SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext);
|
|
|
|
|
});
|
2024-07-26 11:35:17 +08:00
|
|
|
}
|
|
|
|
|
}
|