785834757 1 år sedan
förälder
incheckning
e8255a25f7

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -122,7 +122,7 @@ public class UserController extends BaseController {
     @Operation(summary = "实名认证审核失败",description = "实名认证审核失败")
     @Operation(summary = "实名认证审核失败",description = "实名认证审核失败")
     @PostMapping(value = "/realNameAuthFailed")
     @PostMapping(value = "/realNameAuthFailed")
     public HttpResult realNameAuthFailed(@RequestSingleParam(value = "userId") String userId){
     public HttpResult realNameAuthFailed(@RequestSingleParam(value = "userId") String userId){
-        return sysUserService.realNameAuthFailed(userId)? HttpResult.ok("实名认证审核失败") : HttpResult.error("实名认证审核失败");
+        return sysUserService.realNameAuthFailed(userId)? HttpResult.ok("实名认证审核成功") : HttpResult.error("实名认证审核失败");
     }
     }
 
 
 
 

+ 16 - 2
tenant/organization/src/main/java/com/jzg/organization/state/listener/UserStateListener.java

@@ -14,6 +14,7 @@ import org.springframework.statemachine.StateMachine;
 import org.springframework.statemachine.StateMachineEventResult;
 import org.springframework.statemachine.StateMachineEventResult;
 import org.springframework.statemachine.config.StateMachineFactory;
 import org.springframework.statemachine.config.StateMachineFactory;
 import org.springframework.statemachine.state.State;
 import org.springframework.statemachine.state.State;
+import org.springframework.statemachine.support.DefaultStateMachineContext;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 import reactor.core.publisher.Mono;
@@ -31,6 +32,18 @@ public class UserStateListener {
     private synchronized boolean sendEvent(Mono<Message<UserState.UserStateEvent>> message) {
     private synchronized boolean sendEvent(Mono<Message<UserState.UserStateEvent>> message) {
         AtomicBoolean result = new AtomicBoolean(false);
         AtomicBoolean result = new AtomicBoolean(false);
         try {
         try {
+
+            userStateMachine.stop(); // 停止状态机
+            Message<UserState.UserStateEvent> block = message.block();
+            SysUserJzgInfo sysUserJzgInfo =(SysUserJzgInfo)block.getHeaders().get("entity");
+            userStateMachine.getStateMachineAccessor().doWithAllRegions(accessor -> {
+                accessor.resetStateMachineReactively(new DefaultStateMachineContext<>(
+                        UserState.UserStateEnum.fromValue(sysUserJzgInfo.getStatus()), // 目标状态
+                        null, // 当前事件(可以为 null)
+                        null, // 扩展上下文(可以为 null)
+                        null  // 转换历史(通常为 null)
+                )).block();
+            });
             Mono<Void> startMono = userStateMachine.startReactively();
             Mono<Void> startMono = userStateMachine.startReactively();
             startMono.block();
             startMono.block();
 
 
@@ -80,11 +93,12 @@ public class UserStateListener {
         return stateResult;
         return stateResult;
     }
     }
 
 
-    public StateResult AuthCertFailed(SysUserJzgInfo sysUser){
+    public StateResult AuthCertFailed(SysUserJzgInfo sysUserJzgInfo){
         StateResult stateResult = new StateResult();
         StateResult stateResult = new StateResult();
         Mono<Message<UserState.UserStateEvent>> message = Mono.just(
         Mono<Message<UserState.UserStateEvent>> message = Mono.just(
                 MessageBuilder.withPayload(UserState.UserStateEvent.REAL_AUTH_FAILED)
                 MessageBuilder.withPayload(UserState.UserStateEvent.REAL_AUTH_FAILED)
-                        .setHeader("entity", UserState.UserStateEnum.fromValue(sysUser.getStatus())).build());
+                        .setHeader("entity", sysUserJzgInfo).build());
+
 
 
         if(!sendEvent(message)){
         if(!sendEvent(message)){
             throw new SystemException("实名认证审核失败");
             throw new SystemException("实名认证审核失败");