|
|
@@ -0,0 +1,54 @@
|
|
|
+package com.jzg.organization.state.config;
|
|
|
+
|
|
|
+import com.jzg.organization.state.UserState;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.statemachine.config.EnableStateMachine;
|
|
|
+import org.springframework.statemachine.config.StateMachineConfigurerAdapter;
|
|
|
+import org.springframework.statemachine.config.builders.StateMachineStateConfigurer;
|
|
|
+import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer;
|
|
|
+
|
|
|
+import java.util.EnumSet;
|
|
|
+
|
|
|
+@Configuration
|
|
|
+@EnableStateMachine
|
|
|
+public class UserStateConfig extends StateMachineConfigurerAdapter<UserState.UserStateEnum, UserState.UserStateEvent> {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void configure(StateMachineStateConfigurer<UserState.UserStateEnum, UserState.UserStateEvent> states) throws Exception {
|
|
|
+ states.withStates()
|
|
|
+ .initial(UserState.UserStateEnum.NOT_CERT) // 初始状态
|
|
|
+ .states(EnumSet.allOf(UserState.UserStateEnum.class)); // 所有状态
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void configure(StateMachineTransitionConfigurer<UserState.UserStateEnum, UserState.UserStateEvent> transitions) throws Exception {
|
|
|
+ transitions
|
|
|
+ .withExternal()
|
|
|
+ // 未认证 -> 实名认证中
|
|
|
+ .source(UserState.UserStateEnum.NOT_CERT).target(UserState.UserStateEnum.REAL_AUTH_ING).event(UserState.UserStateEvent.REAL_AUTH_CERT)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //实名认证中 -> 实名认证失败
|
|
|
+ .source(UserState.UserStateEnum.REAL_AUTH_ING).target(UserState.UserStateEnum.REAL_AUTH_FAILED).event(UserState.UserStateEvent.REAL_AUTH_FAILED)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //实名认证中 -> 待入职
|
|
|
+ .source(UserState.UserStateEnum.REAL_AUTH_ING).target(UserState.UserStateEnum.PADDING_EMPLOYEE).event(UserState.UserStateEvent.REAL_AUTH_SUCCESS)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //待入职 -> 入司审核中
|
|
|
+ .source(UserState.UserStateEnum.PADDING_EMPLOYEE).target(UserState.UserStateEnum.COMPANY_REVIEW_ING).event(UserState.UserStateEvent.COMPANY_REVIEW)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //入司审核中 -> 入司审核失败
|
|
|
+ .source(UserState.UserStateEnum.COMPANY_REVIEW_ING).target(UserState.UserStateEnum.COMPANY_REVIEW_FAILED).event(UserState.UserStateEvent.COMPANY_REVIEW_FAILED)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //入司审核失败 -> 重新提交入司审核
|
|
|
+ .source(UserState.UserStateEnum.COMPANY_REVIEW_FAILED).target(UserState.UserStateEnum.COMPANY_REVIEW_ING).event(UserState.UserStateEvent.COMPANY_REVIEW)
|
|
|
+ .and()
|
|
|
+ .withExternal()
|
|
|
+ //入司审核中 -> 已入职
|
|
|
+ .source(UserState.UserStateEnum.COMPANY_REVIEW_ING).target(UserState.UserStateEnum.ALREADY_EMPLOYEE).event(UserState.UserStateEvent.COMPANY_REVIEW_SUCCESS);
|
|
|
+ }
|
|
|
+}
|