feat(REQ-3488): unit更新,发送mq

This commit is contained in:
zhanghonghao 2025-01-07 14:21:44 +08:00
parent 65f3c4af01
commit 3743deade5
3 changed files with 15 additions and 8 deletions

View File

@ -9,7 +9,7 @@ import lombok.Getter;
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum UnitEventType {
NODE_UPSERTED("unit-upserted", "单位新增/更新事件"),
UNIT_UPSERTED("unit-upserted", "单位新增/更新事件"),
;
UnitEventType(String name, String desc) {

View File

@ -4,17 +4,15 @@ import cn.axzo.foundation.event.support.Event;
import cn.axzo.foundation.event.support.producer.EventProducer;
import cn.axzo.foundation.exception.Axssert;
import cn.axzo.orgmanax.common.config.BizResultCode;
import cn.axzo.orgmanax.common.entity.BizErrorInfo;
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalUnit;
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitUpsertRepository;
import cn.axzo.orgmanax.server.node.event.inner.NodeEventType;
import cn.axzo.orgmanax.server.unit.event.inner.UnitEventType;
import cn.axzo.orgmanax.server.unit.event.inner.payload.UnitUpsertedPayload;
import cn.axzo.orgmanax.server.unit.foundation.UnitFoundationService;
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitCreator;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -37,11 +35,11 @@ public class UnitFoundationServiceImpl implements UnitFoundationService {
// 根据单位名称或信用代码查询
if (ObjectUtil.isNotEmpty(creator.getName())) {
UnitQueryRepository.UnitResp unit = unitQueryRepository.one(UnitQueryRepository.OneReq.builder().name(creator.getName()).build());
Axssert.check(unit == null, BizResultCode.INVALID_PARAM,"创建失败, 单位重复");
Axssert.check(unit == null, BizResultCode.INVALID_PARAM, "创建失败, 单位重复");
}
if (ObjectUtil.isNotEmpty(creator.getUniformSocialCreditCode())) {
UnitQueryRepository.UnitResp unit = unitQueryRepository.one(UnitQueryRepository.OneReq.builder().uniformSocialCreditCode(creator.getUniformSocialCreditCode()).build());
Axssert.check(unit == null, BizResultCode.INVALID_PARAM,"创建失败, 统一社会信用码重复");
Axssert.check(unit == null, BizResultCode.INVALID_PARAM, "创建失败, 统一社会信用码重复");
}
// todo 1. parentId 是否使用
@ -72,11 +70,19 @@ public class UnitFoundationServiceImpl implements UnitFoundationService {
@Override
public OrganizationalUnit update(UnitCreator creator) {
UnitQueryRepository.UnitResp unitResp = unitQueryRepository.one(UnitQueryRepository.OneReq.builder().id(creator.getId()).build());
Axssert.check(unitResp != null, BizResultCode.INVALID_PARAM, "更新失败, 单位不存在");
UnitQueryRepository.UnitResp oldUnit = unitQueryRepository.one(UnitQueryRepository.OneReq.builder().id(creator.getId()).build());
Axssert.check(oldUnit != null, BizResultCode.INVALID_PARAM, "更新失败, 单位不存在");
OrganizationalUnit organizationalUnit = BeanUtil.copyProperties(creator, OrganizationalUnit.class);
unitUpsertRepository.update(organizationalUnit);
UnitQueryRepository.UnitResp newUnit = unitQueryRepository.one(UnitQueryRepository.OneReq.builder().id(creator.getId()).build());
//生产消息 发送 UPDATED消息
eventProducer.send(Event.builder().shardingKey(creator.getId().toString())
.targetId(creator.getId().toString())
.targetType("unitId")
.eventCode(UnitEventType.UNIT_UPSERTED.getEventCode())
.operatorId("operatorId")
.data(UnitUpsertedPayload.builder().oldValue(oldUnit).newValue(newUnit).build()).build());
return organizationalUnit;
}

View File

@ -41,6 +41,7 @@ public class UnitServiceImpl implements UnitService {
private final UnitQueryRepository unitQueryRepository;
private final TransactionTemplate transactionTemplate;
private final WorkspaceGateway workspaceGateway;
@Override
public CreateUnitResp create(CreateUnitReq req) {