weaver-hrm-salary/src/com/engine/salary/service/auth/AuthRoleServiceImpl.java

121 lines
4.8 KiB
Java
Raw Normal View History

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.service.TaxAgentService;
import com.engine.salary.service.impl.TaxAgentServiceImpl;
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;
public class AuthRoleServiceImpl extends Service implements AuthRoleService {
private AuthRoleMapper getAuthRoleMapper() {
return MapperProxyFactory.getProxy(AuthRoleMapper.class);
}
private AuthMemberMapper getAuthMemberMapper() {
return MapperProxyFactory.getProxy(AuthMemberMapper.class);
}
private TaxAgentService getTaxAgentService(User user) {
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
}
@Override
public Long saveRole(AuthRoleSaveParam param) {
Date now = new Date();
Long id = param.getId();
String name = param.getName();
Long taxAgentId = param.getTaxAgentId();
AuthRolePO po;
if (id == null) {
po = AuthRolePO.builder()
.id(IdGenerator.generate())
.name(name)
.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)
.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
public void deleteRole(Long id) {
AuthRolePO po = getAuthRoleMapper().getById(id);
if (po == null) {
throw new SalaryRunTimeException("角色不存在!");
}
getAuthMemberMapper().deleteByRoleId(id);
getAuthRoleMapper().deleteByIds(Collections.singleton(id));
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);
}
}