修复竟态

This commit is contained in:
hy001 2026-05-23 21:26:35 +08:00
parent b98d91a2fb
commit 98d80c6732
2 changed files with 9 additions and 5 deletions

View File

@ -61,8 +61,10 @@ public class CpApplyListener implements MessageListener {
}
private void expire(CpApply cpApply) {
sendExpiredNotice(cpApply);
cpApplyService.changeStatusById(cpApply.getId(), CpApplyStatus.EXPIRE);
boolean changed = cpApplyService.changeStatusById(cpApply.getId(), CpApplyStatus.EXPIRE);
if (changed) {
sendExpiredNotice(cpApply);
}
}
private void sendExpiredNotice(CpApply cpApply) {

View File

@ -4,8 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
@ -27,6 +27,7 @@ import java.util.Map;
import java.util.function.Consumer;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.InOrder;
class CpApplyListenerTest {
@ -66,10 +67,11 @@ class CpApplyListenerTest {
ArgumentCaptor<CustomC2cMsgBodyCmd> captor = ArgumentCaptor.forClass(
CustomC2cMsgBodyCmd.class);
verify(imMessageClient).sendCustomMessage(captor.capture());
InOrder inOrder = inOrder(cpApplyService, imMessageClient);
inOrder.verify(cpApplyService).changeStatusById(3001L, CpApplyStatus.EXPIRE);
inOrder.verify(imMessageClient).sendCustomMessage(captor.capture());
List<CustomC2cMsgBodyCmd> messages = captor.getAllValues();
assertExpiredMessage(messages.get(0), "1001", "2001");
verify(cpApplyService).changeStatusById(3001L, CpApplyStatus.EXPIRE);
}
@SuppressWarnings("unchecked")