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.AuthMemberSaveParam;
|
|
|
|
|
import com.engine.salary.entity.auth.po.AuthMemberPO;
|
|
|
|
|
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;
|
2024-07-26 14:30:14 +08:00
|
|
|
import com.engine.salary.mapper.auth.AuthRoleEmpMapper;
|
2024-07-26 11:35:17 +08:00
|
|
|
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;
|
2024-07-26 14:30:14 +08:00
|
|
|
import java.util.List;
|
2024-07-26 11:35:17 +08:00
|
|
|
|
|
|
|
|
public class AuthMemberServiceImpl extends Service implements AuthMemberService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private AuthMemberMapper getAuthMemberMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(AuthMemberMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private AuthRoleMapper getAuthRoleMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(AuthRoleMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-26 14:30:14 +08:00
|
|
|
private AuthRoleEmpMapper getAuthRoleEmpMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(AuthRoleEmpMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-26 11:35:17 +08:00
|
|
|
|
|
|
|
|
private TaxAgentService getTaxAgentService(User user) {
|
|
|
|
|
return ServiceUtil.getService(TaxAgentServiceImpl.class, user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Long saveMember(AuthMemberSaveParam param) {
|
|
|
|
|
|
|
|
|
|
AuthRolePO rolePO = getAuthRoleMapper().getById(param.getRoleId());
|
|
|
|
|
if (rolePO == null) {
|
|
|
|
|
throw new SalaryRunTimeException("角色不存在!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
AuthMemberPO po = AuthMemberPO.builder()
|
|
|
|
|
.id(IdGenerator.generate())
|
2024-07-26 14:32:35 +08:00
|
|
|
.target(param.getTarget())
|
2024-07-26 11:35:17 +08:00
|
|
|
.targetType(param.getTargetType())
|
2024-07-26 14:30:14 +08:00
|
|
|
.targetName(param.getTargetName())
|
2024-07-26 11:35:17 +08:00
|
|
|
.creator((long) user.getUID())
|
|
|
|
|
.createTime(now)
|
|
|
|
|
.updateTime(now)
|
|
|
|
|
.deleteType(0)
|
|
|
|
|
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
|
|
|
|
.build();
|
|
|
|
|
getAuthMemberMapper().insertIgnoreNull(po);
|
|
|
|
|
|
|
|
|
|
LoggerContext<TaxAgentPO> loggerContext = new LoggerContext<>();
|
|
|
|
|
loggerContext.setUser(user);
|
|
|
|
|
loggerContext.setTargetId(rolePO.getTaxAgentId() + "");
|
|
|
|
|
loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId());
|
|
|
|
|
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
|
|
|
|
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增成员"));
|
|
|
|
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增成员"));
|
|
|
|
|
loggerContext.setNewValues(po);
|
|
|
|
|
SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return po.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void deleteMember(Long id) {
|
|
|
|
|
AuthMemberPO po = getAuthMemberMapper().getById(id);
|
|
|
|
|
if (po == null) {
|
|
|
|
|
throw new SalaryRunTimeException("成员不存在!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getAuthMemberMapper().deleteByIds(Collections.singleton(id));
|
|
|
|
|
|
|
|
|
|
AuthRolePO rolePO = getAuthRoleMapper().getById(po.getRoleId());
|
|
|
|
|
LoggerContext<TaxAgentPO> loggerContext = new LoggerContext<>();
|
|
|
|
|
loggerContext.setUser(user);
|
|
|
|
|
loggerContext.setTargetId(rolePO.getTaxAgentId() + "");
|
|
|
|
|
loggerContext.setTargetName(rolePO.getName() + "成员:" + po.getId());
|
|
|
|
|
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
|
|
|
|
|
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除成员"));
|
|
|
|
|
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除成员"));
|
|
|
|
|
loggerContext.setNewValues(po);
|
|
|
|
|
SalaryElogConfig.taxAgentLoggerTemplate.write(loggerContext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void syncMember(Long roleId) {
|
2024-07-26 14:30:14 +08:00
|
|
|
AuthRolePO rolePO = getAuthRoleMapper().getById(roleId);
|
|
|
|
|
if (rolePO == null) {
|
|
|
|
|
throw new SalaryRunTimeException("角色不存在!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//1、获取成员
|
|
|
|
|
List<AuthMemberPO> members = getAuthMemberMapper().listSome(AuthMemberPO.builder().roleId(roleId).build());
|
|
|
|
|
for (AuthMemberPO member : members) {
|
2024-07-26 14:32:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
String targetId = member.getTarget();
|
2024-07-26 14:30:14 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//2、获取人员
|
|
|
|
|
|
|
|
|
|
//3、更新成员关系
|
|
|
|
|
|
|
|
|
|
getAuthRoleEmpMapper().deleteByRoleId(roleId);
|
|
|
|
|
|
2024-07-26 11:35:17 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|