785834757 1 год назад
Родитель
Сommit
39381ec206

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

@@ -110,13 +110,13 @@ public class UserController extends BaseController {
     @Operation(summary = "离职申请",description = "离职申请")
     @PostMapping(value = "/userQuitApply")
     public HttpResult userQuitApply(@RequestSingleParam(value="userId") String userId){
-        return sysUserService.userQuitApply(userId)? HttpResult.ok("离职成功") : HttpResult.error("离职失败");
+        return sysUserService.userQuitApply(userId)? HttpResult.ok("离职申请成功,等待审核中") : HttpResult.error("离职申请提交失败");
     }
 
     @Operation(summary = "实名认证",description = "实名认证")
     @PostMapping(value = "/realNameAuth")
     public HttpResult realNameAuth(@RequestSingleParam(value = "userId") String userId){
-        return sysUserService.realNameAuth(userId) ? HttpResult.ok("实名认证提交成功") : HttpResult.error("实名认证提交失败");
+        return sysUserService.realNameAuth(userId) ? HttpResult.ok("实名认证提交成功,等待审核中") : HttpResult.error("实名认证提交失败");
     }
 
     @Operation(summary = "实名认证审核失败",description = "实名认证审核失败")

+ 5 - 4
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -159,13 +159,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public boolean userQuitApply(String userId) {
         SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(userId);
-        StateResult resign = userStateListener.Resign(userByUserId);
+        //离职申请状态机返回
+        StateResult resign = userStateListener.ResignRequest(userByUserId);
         if(resign.isResult()){
             //更新状态
             userByUserId.setStatus(UserState.UserStateEnum.RESIGN_ING.getValue());
             sysUserJzgInfoService.updateById(userByUserId);
         }
-        return true;
+        return resign.isResult();
     }
 
     @Override
@@ -177,7 +178,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             userByUserId.setStatus(stateResult.getCurrentState());
             sysUserJzgInfoService.updateById(userByUserId);
         }
-        return true;
+        return stateResult.isResult();
     }
 
     @Override
@@ -189,7 +190,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             userByUserId.setStatus(stateResult.getCurrentState());
             sysUserJzgInfoService.updateById(userByUserId);
         }
-        return true;
+        return stateResult.isResult();
     }
 
     @Override

+ 28 - 37
tenant/organization/src/main/java/com/jzg/organization/state/listener/UserStateListener.java

@@ -44,8 +44,8 @@ public class UserStateListener {
                         null  // 转换历史(通常为 null)
                 )).block();
             });
-            Mono<Void> startMono = userStateMachine.startReactively();
-            startMono.block();
+            Mono<Void> startMono = userStateMachine.startReactively(); //启用状态机
+            startMono.block(); //设置为同步
 
             Flux<StateMachineEventResult<UserState.UserStateEnum, UserState.UserStateEvent>> stateMachineEventResultFlux = userStateMachine.sendEvent(message);
             StateMachineEventResult<UserState.UserStateEnum, UserState.UserStateEvent> eventResult = stateMachineEventResultFlux.blockFirst();
@@ -54,57 +54,48 @@ public class UserStateListener {
                 result.set(true);
             }
         } catch (Exception e) {
-            e.printStackTrace();
+
+        } finally {
+            userStateMachine.stopReactively(); // 停止状态机
+            return result.get();
         }
-        return result.get();
+    }
+
+    private StateResult callEvent(SysUserJzgInfo sysUserJzgInfo,UserState.UserStateEvent event){
+        StateResult stateResult = new StateResult();
+        Mono<Message<UserState.UserStateEvent>> message = Mono.just(MessageBuilder.withPayload(event).setHeader("entity",sysUserJzgInfo).build());
+        stateResult.setResult(sendEvent(message));
+        stateResult.setCurrentState(userStateMachine.getState().getId().getValue());
+        return stateResult;
     }
 
     /**
-     * 离职
-     * @param sysUser
+     * 离职申请
+     * @param sysUserJzgInfo
      * @return
      */
-    public StateResult Resign(SysUserJzgInfo sysUser){
-        StateResult stateResult = new StateResult();
-        Message message = MessageBuilder.withPayload(UserState.UserStateEvent.RESIGN_ING).setHeader("entity",sysUser).build();
-//        if(!sendEvent(message))
-//        {
-//            throw new SystemException("离职失败");
-//        }
-        stateResult.setCurrentState(userStateMachine.getState().getId().getValue());
-        stateResult.setResult(true);
+    public StateResult ResignRequest(SysUserJzgInfo sysUserJzgInfo){
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.RESIGN_ING);
         return stateResult;
     }
 
     /**
-     * 实名认证
-     * @param sysUser
+     * 实名认证申请
+     * @param sysUserJzgInfo
      * @return
      */
-    public StateResult AuthCert(SysUserJzgInfo sysUser){
-        StateResult stateResult = new StateResult();
-        Message message = MessageBuilder.withPayload(UserState.UserStateEvent.REAL_AUTH_CERT).setHeader("entity",sysUser).build();
-//        if(!sendEvent(message))
-//        {
-//            throw new SystemException("实名认证失败");
-//        }
-        stateResult.setCurrentState(userStateMachine.getState().getId().getValue());
-        stateResult.setResult(true);
+    public StateResult AuthCert(SysUserJzgInfo sysUserJzgInfo){
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.REAL_AUTH_CERT);
         return stateResult;
     }
 
+    /**
+     * 实名认证失败
+     * @param sysUserJzgInfo
+     * @return
+     */
     public StateResult AuthCertFailed(SysUserJzgInfo sysUserJzgInfo){
-        StateResult stateResult = new StateResult();
-        Mono<Message<UserState.UserStateEvent>> message = Mono.just(
-                MessageBuilder.withPayload(UserState.UserStateEvent.REAL_AUTH_FAILED)
-                        .setHeader("entity", sysUserJzgInfo).build());
-
-
-        if(!sendEvent(message)){
-            throw new SystemException("实名认证审核失败");
-        }
-        stateResult.setCurrentState(userStateMachine.getState().getId().getValue());
-        stateResult.setResult(true);
+        StateResult stateResult = callEvent(sysUserJzgInfo, UserState.UserStateEvent.REAL_AUTH_FAILED);
         return stateResult;
     }
 }