|
|
@@ -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;
|
|
|
}
|
|
|
}
|