Browse Source

feat:前端指令统一处理

tags/freeze
白凤吉 3 months ago
parent
commit
852cb7a28f
  1. 4
      src/main/java/com/iflytop/gd/app/controller/CmdController.java
  2. 2
      src/main/java/com/iflytop/gd/app/core/CraftsContext.java
  3. 27
      src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java
  4. 6
      src/main/java/com/iflytop/gd/system/common/annotation/CheckedRunnable.java
  5. 2
      src/main/java/com/iflytop/gd/system/common/annotation/CommandMapping.java
  6. 2
      src/main/java/com/iflytop/gd/system/common/constant/WebSocketMessageType.java
  7. 15
      src/main/java/com/iflytop/gd/system/common/utils/LambdaUtil.java
  8. 18
      src/main/java/com/iflytop/gd/system/core/cmd/BaseCommandHandler.java
  9. 2
      src/main/java/com/iflytop/gd/system/core/cmd/CommandHandler.java
  10. 4
      src/main/java/com/iflytop/gd/system/core/cmd/CommandHandlerRegistry.java

4
src/main/java/com/iflytop/gd/app/controller/CmdController.java

@ -1,7 +1,7 @@
package com.iflytop.gd.app.controller;
import com.iflytop.gd.app.core.cmd.CommandHandler;
import com.iflytop.gd.app.core.cmd.CommandHandlerRegistry;
import com.iflytop.gd.system.core.cmd.CommandHandler;
import com.iflytop.gd.system.core.cmd.CommandHandlerRegistry;
import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.system.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;

2
src/main/java/com/iflytop/gd/app/core/CraftsContext.java

@ -1,7 +1,7 @@
package com.iflytop.gd.app.core;
import cn.hutool.json.JSONUtil;
import com.iflytop.gd.app.common.constant.WebSocketMessageType;
import com.iflytop.gd.system.common.constant.WebSocketMessageType;
import com.iflytop.gd.app.common.enums.CraftEvents;
import com.iflytop.gd.app.common.enums.CraftStates;
import com.iflytop.gd.app.model.bo.CraftsStep;

27
src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java

@ -0,0 +1,27 @@
package com.iflytop.gd.app.service.cmd;
import com.iflytop.gd.app.model.dto.CmdDTO;
import com.iflytop.gd.system.common.annotation.CommandMapping;
import com.iflytop.gd.system.core.cmd.BaseCommandHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.concurrent.CompletableFuture;
@Slf4j
@Component
@RequiredArgsConstructor
@CommandMapping("test_test")//业务指令注解
public class DemoCommand extends BaseCommandHandler {
@Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
//同步代码
return runAsync(() -> {
//异步代码
});
}
}

6
src/main/java/com/iflytop/gd/system/common/annotation/CheckedRunnable.java

@ -0,0 +1,6 @@
package com.iflytop.gd.system.common.annotation;
@FunctionalInterface
public interface CheckedRunnable {
void run() throws Exception;
}

2
src/main/java/com/iflytop/gd/app/common/annotation/CommandMapping.java → src/main/java/com/iflytop/gd/system/common/annotation/CommandMapping.java

@ -1,4 +1,4 @@
package com.iflytop.gd.app.common.annotation;
package com.iflytop.gd.system.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

2
src/main/java/com/iflytop/gd/app/common/constant/WebSocketMessageType.java → src/main/java/com/iflytop/gd/system/common/constant/WebSocketMessageType.java

@ -1,4 +1,4 @@
package com.iflytop.gd.app.common.constant;
package com.iflytop.gd.system.common.constant;
public class WebSocketMessageType {
/**

15
src/main/java/com/iflytop/gd/system/common/utils/LambdaUtil.java

@ -0,0 +1,15 @@
package com.iflytop.gd.system.common.utils;
import com.iflytop.gd.system.common.annotation.CheckedRunnable;
public class LambdaUtil {
public static Runnable unchecked(CheckedRunnable runnable) {
return () -> {
try {
runnable.run();
} catch (Exception e) {
throw new RuntimeException(e);
}
};
}
}

18
src/main/java/com/iflytop/gd/system/core/cmd/BaseCommandHandler.java

@ -0,0 +1,18 @@
package com.iflytop.gd.system.core.cmd;
import com.iflytop.gd.system.common.annotation.CheckedRunnable;
import com.iflytop.gd.system.common.utils.LambdaUtil;
import java.util.concurrent.CompletableFuture;
public abstract class BaseCommandHandler implements CommandHandler {
protected CompletableFuture<Void> runAsync(CheckedRunnable task) {
return CompletableFuture.runAsync(LambdaUtil.unchecked(task));
}
}

2
src/main/java/com/iflytop/gd/app/core/cmd/CommandHandler.java → src/main/java/com/iflytop/gd/system/core/cmd/CommandHandler.java

@ -1,4 +1,4 @@
package com.iflytop.gd.app.core.cmd;
package com.iflytop.gd.system.core.cmd;
import com.iflytop.gd.app.model.dto.CmdDTO;

4
src/main/java/com/iflytop/gd/app/core/cmd/CommandHandlerRegistry.java → src/main/java/com/iflytop/gd/system/core/cmd/CommandHandlerRegistry.java

@ -1,6 +1,6 @@
package com.iflytop.gd.app.core.cmd;
package com.iflytop.gd.system.core.cmd;
import com.iflytop.gd.app.common.annotation.CommandMapping;
import com.iflytop.gd.system.common.annotation.CommandMapping;
import io.micrometer.common.lang.NonNull;
import jakarta.annotation.PostConstruct;
import org.springframework.aop.support.AopUtils;
Loading…
Cancel
Save