From 2a581cd5813f46b7c06c2947a8e8a21b837ee838 Mon Sep 17 00:00:00 2001 From: huangxiang <155373492@qq.com> Date: Sun, 27 Apr 2025 14:34:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=9A=E4=B9=89=EF=BC=9B=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E5=A4=84=E7=90=86=E5=99=A8=E5=AE=9A=E4=BD=8D?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/app.db | Bin 0 -> 20480 bytes logs/sys-error.log | 190 ++++++++++++++++++ logs/sys-info.log | 215 +++++++++++++++++++++ .../iflytop/gd/app/controller/CmdController.java | 24 +-- .../gd/app/controller/CmdDebugController.java | 55 ------ .../iflytop/gd/app/controller/UserController.java | 2 +- .../java/com/iflytop/gd/app/model/dto/CmdDTO.java | 10 +- .../iflytop/gd/app/service/cmd/CommandHandler.java | 2 +- .../gd/app/service/cmd/CommandHandlerRegistry.java | 32 ++- .../iflytop/gd/app/service/cmd/DemoCommand.java | 10 +- .../exceptions/UnSupportCommandException.java | 25 +++ .../gd/common/annotation/CommandMapping.java | 3 +- .../gd/common/controller/BaseCmdController.java | 4 + .../gd/debug/controller/CmdDebugController.java | 47 +++++ .../java/com/iflytop/gd/debug/controller/d.txt | 1 - .../repository/service/UserService.java | 32 +++ .../com/iflytop/gd/system/devices/ColdTray.java | 7 + .../java/com/iflytop/gd/system/devices/Fan.java | 7 + .../java/com/iflytop/gd/system/devices/Heater.java | 7 + .../java/com/iflytop/gd/system/devices/Pump.java | 7 + .../java/com/iflytop/gd/system/devices/Relay.java | 7 + .../com/iflytop/gd/system/devices/ServoMotor.java | 8 + .../com/iflytop/gd/system/devices/StepMotor.java | 7 + .../iflytop/gd/system/devices/package-info.java | 1 + .../iflytop/gd/system/modules/package-info.java | 1 + .../java/com/iflytop/gd/system/package-info.java | 6 + .../com/iflytop/gd/system/service/UserService.java | 32 --- 27 files changed, 622 insertions(+), 120 deletions(-) create mode 100644 db/app.db create mode 100644 logs/sys-error.log create mode 100644 logs/sys-info.log delete mode 100644 src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java create mode 100644 src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java create mode 100644 src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java create mode 100644 src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java delete mode 100644 src/main/java/com/iflytop/gd/debug/controller/d.txt create mode 100644 src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/ColdTray.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/Fan.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/Heater.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/Pump.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/Relay.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/ServoMotor.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/StepMotor.java create mode 100644 src/main/java/com/iflytop/gd/system/devices/package-info.java create mode 100644 src/main/java/com/iflytop/gd/system/modules/package-info.java create mode 100644 src/main/java/com/iflytop/gd/system/package-info.java delete mode 100644 src/main/java/com/iflytop/gd/system/service/UserService.java diff --git a/db/app.db b/db/app.db new file mode 100644 index 0000000000000000000000000000000000000000..78620181d68811562ab42c3e7ec6192968c29514 GIT binary patch literal 20480 zcmeI&O>fgM7zc1??I<9&ajBw;%X8ec4t41^q@5O8!y=ljq$#4ODm1PXt#3bcn_SIqd1o=!X{~=%$a#0)ZHaM9f<*A6Ko- zwT(|q{!kzQ0SG_<0uX=z1Rwwb2tWV=5V!*ZuJ)MedPy%mt5*GB7>-P}*)^(r`v+#- zwjA!LKd|anOYMw`vA0Vt92&+iLfQKNnr&R)fdugi5P$##AOHafKmY;| zfB*y_009X6Pl1A#D?U=69jNuc{OBJA0uX=z1Rwwb2tWV=5P$##AOL}TEP(a@Jsw=7 Z1_1~_00Izz00bZa0SG_<0uZ(SQLiteConnection.java:67) + at org.sqlite.jdbc3.JDBC3Connection.(JDBC3Connection.java:28) + at org.sqlite.jdbc4.JDBC4Connection.(JDBC4Connection.java:19) + at org.sqlite.JDBC.createConnection(JDBC.java:106) + at org.sqlite.JDBC.connect(JDBC.java:79) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:120) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) + at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) + at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) + ... 66 common frames omitted +14:33:14.766 [http-nio-8080-exec-1] ERROR c.i.g.c.h.GlobalExceptionHandler - [handleException,20] - Unhandled exception: +org.springframework.web.servlet.resource.NoResourceFoundException: No static resource swagger. + at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585) + at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +14:33:14.891 [http-nio-8080-exec-2] ERROR c.i.g.c.h.GlobalExceptionHandler - [handleException,20] - Unhandled exception: +org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico. + at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585) + at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) diff --git a/logs/sys-info.log b/logs/sys-info.log new file mode 100644 index 0000000..082a67b --- /dev/null +++ b/logs/sys-info.log @@ -0,0 +1,215 @@ +14:31:33.385 [main] INFO c.i.g.GraphiteDigesterServiceApplication - [logStarting,53] - Starting GraphiteDigesterServiceApplication using Java 21.0.6 with PID 24084 (C:\Users\15537\wks\graphite-digester-service\build\classes\java\main started by admin in C:\Users\15537\wks\graphite-digester-service) +14:31:33.386 [main] INFO c.i.g.GraphiteDigesterServiceApplication - [logStartupProfileInfo,652] - No active profile set, falling back to 1 default profile: "default" +14:31:34.125 [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,429] - Bean 'org.springframework.statemachine.config.configuration.StateMachineAnnotationPostProcessorConfiguration' of type [org.springframework.statemachine.config.configuration.StateMachineAnnotationPostProcessorConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [org.springframework.statemachine.processor.stateMachineAnnotationPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead. +14:31:34.380 [main] INFO o.a.c.h.Http11NioProtocol - [log,168] - Initializing ProtocolHandler ["http-nio-8080"] +14:31:34.382 [main] INFO o.a.c.c.StandardService - [log,168] - Starting service [Tomcat] +14:31:34.382 [main] INFO o.a.c.c.StandardEngine - [log,168] - Starting Servlet engine: [Apache Tomcat/10.1.40] +14:31:34.424 [main] INFO o.a.c.c.C.[.[.[/] - [log,168] - Initializing Spring embedded WebApplicationContext +14:31:34.517 [main] INFO c.z.h.HikariDataSource - [getConnection,109] - HikariPool-1 - Starting... +14:31:35.549 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - [refresh,635] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'craftsController' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\controller\CraftsController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'craftsService': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'craftsMapper' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\mapper\CraftsMapper.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate' +14:31:35.553 [main] INFO o.a.c.c.StandardService - [log,168] - Stopping service [Tomcat] +14:31:35.572 [main] ERROR o.s.b.SpringApplication - [reportFailure,858] - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'craftsController' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\controller\CraftsController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'craftsService': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'craftsMapper' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\mapper\CraftsMapper.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate' + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1387) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1224) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1221) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1187) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1122) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) + at com.iflytop.gd.GraphiteDigesterServiceApplication.main(GraphiteDigesterServiceApplication.java:12) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'craftsService': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'craftsMapper' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\mapper\CraftsMapper.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate' + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:788) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:768) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:146) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:509) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1451) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:606) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1681) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) + ... 21 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'craftsMapper' defined in file [C:\Users\15537\wks\graphite-digester-service\build\classes\java\main\com\iflytop\gd\app\mapper\CraftsMapper.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate' + at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:377) + at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:135) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1717) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1466) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:606) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1739) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1627) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:785) + ... 35 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Failed to execute database script + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1818) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) + at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:365) + ... 48 common frames omitted +Caused by: org.springframework.jdbc.datasource.init.UncategorizedScriptException: Failed to execute database script + at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute(DatabasePopulatorUtils.java:67) + at org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializer.runScripts(DataSourceScriptDatabaseInitializer.java:87) + at org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer.runScripts(AbstractScriptDatabaseInitializer.java:146) + at org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer.applyScripts(AbstractScriptDatabaseInitializer.java:108) + at org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer.applySchemaScripts(AbstractScriptDatabaseInitializer.java:98) + at org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer.initializeDatabase(AbstractScriptDatabaseInitializer.java:76) + at org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer.afterPropertiesSet(AbstractScriptDatabaseInitializer.java:66) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1865) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1814) + ... 57 common frames omitted +Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection + at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84) + at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute(DatabasePopulatorUtils.java:52) + ... 65 common frames omitted +Caused by: java.sql.SQLException: path to 'db/app.db': 'C:\Users\15537\wks\graphite-digester-service\db' does not exist + at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:261) + at org.sqlite.SQLiteConnection.(SQLiteConnection.java:67) + at org.sqlite.jdbc3.JDBC3Connection.(JDBC3Connection.java:28) + at org.sqlite.jdbc4.JDBC4Connection.(JDBC4Connection.java:19) + at org.sqlite.JDBC.createConnection(JDBC.java:106) + at org.sqlite.JDBC.connect(JDBC.java:79) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:120) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) + at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) + at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) + ... 66 common frames omitted +14:32:21.638 [main] INFO c.i.g.GraphiteDigesterServiceApplication - [logStarting,53] - Starting GraphiteDigesterServiceApplication using Java 21.0.6 with PID 23724 (C:\Users\15537\wks\graphite-digester-service\build\classes\java\main started by admin in C:\Users\15537\wks\graphite-digester-service) +14:32:21.640 [main] INFO c.i.g.GraphiteDigesterServiceApplication - [logStartupProfileInfo,652] - No active profile set, falling back to 1 default profile: "default" +14:32:22.349 [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,429] - Bean 'org.springframework.statemachine.config.configuration.StateMachineAnnotationPostProcessorConfiguration' of type [org.springframework.statemachine.config.configuration.StateMachineAnnotationPostProcessorConfiguration$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [org.springframework.statemachine.processor.stateMachineAnnotationPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead. +14:32:22.590 [main] INFO o.a.c.h.Http11NioProtocol - [log,168] - Initializing ProtocolHandler ["http-nio-8080"] +14:32:22.591 [main] INFO o.a.c.c.StandardService - [log,168] - Starting service [Tomcat] +14:32:22.591 [main] INFO o.a.c.c.StandardEngine - [log,168] - Starting Servlet engine: [Apache Tomcat/10.1.40] +14:32:22.631 [main] INFO o.a.c.c.C.[.[.[/] - [log,168] - Initializing Spring embedded WebApplicationContext +14:32:22.723 [main] INFO c.z.h.HikariDataSource - [getConnection,109] - HikariPool-1 - Starting... +14:32:22.895 [main] INFO c.z.h.p.HikariPool - [checkFailFast,554] - HikariPool-1 - Added connection org.sqlite.jdbc4.JDBC4Connection@734fbae3 +14:32:22.896 [main] INFO c.z.h.HikariDataSource - [getConnection,122] - HikariPool-1 - Start completed. +14:32:28.286 [main] INFO o.a.c.h.Http11NioProtocol - [log,168] - Starting ProtocolHandler ["http-nio-8080"] +14:32:28.304 [main] INFO c.i.g.GraphiteDigesterServiceApplication - [logStarted,59] - Started GraphiteDigesterServiceApplication in 6.96 seconds (process running for 7.605) +14:33:14.729 [http-nio-8080-exec-1] INFO o.a.c.c.C.[.[.[/] - [log,168] - Initializing Spring DispatcherServlet 'dispatcherServlet' +14:33:14.766 [http-nio-8080-exec-1] ERROR c.i.g.c.h.GlobalExceptionHandler - [handleException,20] - Unhandled exception: +org.springframework.web.servlet.resource.NoResourceFoundException: No static resource swagger. + at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585) + at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +14:33:14.891 [http-nio-8080-exec-2] ERROR c.i.g.c.h.GlobalExceptionHandler - [handleException,20] - Unhandled exception: +org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico. + at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585) + at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:52) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +14:34:05.699 [SpringApplicationShutdownHook] INFO c.z.h.HikariDataSource - [close,349] - HikariPool-1 - Shutdown initiated... +14:34:05.701 [SpringApplicationShutdownHook] INFO c.z.h.HikariDataSource - [close,351] - HikariPool-1 - Shutdown completed. diff --git a/src/main/java/com/iflytop/gd/app/controller/CmdController.java b/src/main/java/com/iflytop/gd/app/controller/CmdController.java index 113fbc0..ad28b33 100644 --- a/src/main/java/com/iflytop/gd/app/controller/CmdController.java +++ b/src/main/java/com/iflytop/gd/app/controller/CmdController.java @@ -3,6 +3,7 @@ package com.iflytop.gd.app.controller; import com.iflytop.gd.app.service.cmd.CommandHandler; import com.iflytop.gd.app.service.cmd.CommandHandlerRegistry; import com.iflytop.gd.app.model.dto.CmdDTO; +import com.iflytop.gd.app.service.exceptions.UnSupportCommandException; import com.iflytop.gd.common.result.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,24 +27,15 @@ public class CmdController { @Operation(summary = "前端统一调用一个接口") @PostMapping public Result controlMethod(@RequestBody CmdDTO cmdDTO) { - String cmdId = cmdDTO.getCmdId(); - String cmdCode = cmdDTO.getCmdCode(); + String moduleName = cmdDTO.getModuleName(); + String commandName = cmdDTO.getCommandName(); try { - CommandHandler commandHandler = registry.getHandler(cmdCode); - if (commandHandler == null) { - log.error("未找到对应的业务指令"); - return Result.failed(); - } + CommandHandler commandHandler = registry.getCommandHandler(moduleName, commandName); log.info("业务指令开始执行"); - CompletableFuture future = commandHandler.handle(cmdDTO); - future.whenComplete((v, ex) -> { - if (ex != null) { - log.error("执行业务指令发生异常: {}", cmdDTO, ex); - } else { - log.info("业务指令执行成功"); - } - log.info("业务指令执行结束"); - }); + commandHandler.handle(cmdDTO); + } catch (UnSupportCommandException exception) { + log.error("未找到对应的业务指令"); + return Result.failed(exception.getMessage()); } catch (Exception e) { log.error("执行业务指令发生异常: {}", cmdDTO, e); return Result.failed(e.getMessage()); diff --git a/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java b/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java deleted file mode 100644 index 02cdc81..0000000 --- a/src/main/java/com/iflytop/gd/app/controller/CmdDebugController.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.iflytop.gd.app.controller; - -import com.iflytop.gd.app.model.dto.CmdDTO; -import com.iflytop.gd.common.result.Result; -import com.iflytop.gd.app.service.cmd.CommandHandler; -import com.iflytop.gd.app.service.cmd.CommandHandlerRegistry; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.concurrent.CompletableFuture; - -@Tag(name = "前端调试指令") -@RestController -@RequestMapping("/api/debug/cmd") -@RequiredArgsConstructor -@Slf4j -public class CmdDebugController { - private final CommandHandlerRegistry registry; - - @Operation(summary = "前端调试指令") - @PostMapping - public Result controlMethod(@RequestBody CmdDTO cmdDTO) { - String cmdId = cmdDTO.getCmdId(); - String cmdCode = cmdDTO.getCmdCode(); - try { - CommandHandler commandHandler = registry.getHandler(cmdCode); - if (commandHandler == null) { - log.error("未找到对应的业务指令"); - return Result.failed(); - } - log.info("业务指令开始执行"); - CompletableFuture future = commandHandler.handle(cmdDTO); - future.whenComplete((v, ex) -> { - if (ex != null) { - log.error("执行业务指令发生异常: {}", cmdDTO, ex); - } else { - log.info("业务指令执行成功"); - } - log.info("业务指令执行结束"); - }); - } catch (Exception e) { - log.error("执行业务指令发生异常: {}", cmdDTO, e); - return Result.failed(e.getMessage()); - } - return Result.success(); - } - - -} diff --git a/src/main/java/com/iflytop/gd/app/controller/UserController.java b/src/main/java/com/iflytop/gd/app/controller/UserController.java index c1ce3d6..a818c0d 100644 --- a/src/main/java/com/iflytop/gd/app/controller/UserController.java +++ b/src/main/java/com/iflytop/gd/app/controller/UserController.java @@ -8,7 +8,7 @@ import com.iflytop.gd.common.result.PageResult; import com.iflytop.gd.common.result.Result; import com.iflytop.gd.common.result.ResultCode; import com.iflytop.gd.infrastructure.repository.entity.User; -import com.iflytop.gd.system.service.UserService; +import com.iflytop.gd.infrastructure.repository.service.UserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java b/src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java index bdbe334..7646619 100644 --- a/src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java +++ b/src/main/java/com/iflytop/gd/app/model/dto/CmdDTO.java @@ -14,11 +14,15 @@ public class CmdDTO { @NotBlank() @Schema(description = "指令id,前端生成唯一ID") - private String cmdId; + private String commandId; @NotBlank() - @Schema(description = "指令") - private String cmdCode; + @Schema(description = "模块名称") + private String moduleName; + + @NotBlank() + @Schema(description = "命令名称") + private String commandName; @Schema(description = "参数") private Map params; diff --git a/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandler.java b/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandler.java index 812ad2e..e2c856e 100644 --- a/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandler.java @@ -5,5 +5,5 @@ import com.iflytop.gd.app.model.dto.CmdDTO; import java.util.concurrent.CompletableFuture; public interface CommandHandler { - CompletableFuture handle(CmdDTO cmdDTO); + void handle(CmdDTO cmdDTO); } \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandlerRegistry.java b/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandlerRegistry.java index ca68ba8..9ec752b 100644 --- a/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandlerRegistry.java +++ b/src/main/java/com/iflytop/gd/app/service/cmd/CommandHandlerRegistry.java @@ -1,8 +1,10 @@ package com.iflytop.gd.app.service.cmd; +import com.iflytop.gd.app.service.exceptions.UnSupportCommandException; import com.iflytop.gd.common.annotation.CommandMapping; import io.micrometer.common.lang.NonNull; import jakarta.annotation.PostConstruct; +import jakarta.validation.constraints.NotNull; import org.springframework.aop.support.AopUtils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; @@ -18,6 +20,8 @@ public class CommandHandlerRegistry implements ApplicationContextAware { private final Map handlerMap = new HashMap<>(); private ApplicationContext applicationContext; + private final String SEPARATOR = ":"; + @Override public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; @@ -31,12 +35,34 @@ public class CommandHandlerRegistry implements ApplicationContextAware { Class targetClass = AopUtils.getTargetClass(bean); CommandMapping mapping = targetClass.getAnnotation(CommandMapping.class); if (mapping != null && bean instanceof CommandHandler) { - handlerMap.put(mapping.value(), (CommandHandler) bean); + String mappingKey = generateCommandIdentifier(mapping.moduleName(), mapping.commandName()); + handlerMap.put(mappingKey, (CommandHandler) bean); } } } - public CommandHandler getHandler(String command) { - return handlerMap.get(command); + /** + * 通过模块名称和命令名称获取命令处理器 + * @param moduleName 模块名称 + * @param commandName 命令名称 + * @return 命令处理器 + * @throws UnSupportCommandException + */ + public CommandHandler getCommandHandler(@NotNull String moduleName, @NotNull String commandName) throws UnSupportCommandException { + String mappingKey = generateCommandIdentifier(moduleName, commandName); + if (!handlerMap.containsKey(mappingKey)) { + throw new UnSupportCommandException("moduleName=" + moduleName + "commandName=" + commandName); + } + return handlerMap.get(mappingKey); + } + + + /** + * 通过模块名称和命令名称生成命令标识符 + * @return + */ + private String generateCommandIdentifier(@NotNull String moduleName, @NotNull String commandName) { + + return moduleName + SEPARATOR + commandName; } } \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java b/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java index 1defd30..b686c54 100644 --- a/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java +++ b/src/main/java/com/iflytop/gd/app/service/cmd/DemoCommand.java @@ -12,15 +12,11 @@ import java.util.concurrent.CompletableFuture; @Slf4j @Component @RequiredArgsConstructor -@CommandMapping("test_test")//业务指令注解 +@CommandMapping(moduleName = "test_module", commandName = "test_command")//业务指令注解 public class DemoCommand extends BaseCommandHandler { @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - //同步代码 - return runAsync(() -> { - //异步代码 - }); - + public void handle(CmdDTO cmdDTO) { + log.info("cmdDTO:{}", cmdDTO); } } diff --git a/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java b/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java new file mode 100644 index 0000000..2fabf71 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/service/exceptions/UnSupportCommandException.java @@ -0,0 +1,25 @@ +package com.iflytop.gd.app.service.exceptions; + +/** + * 不支持的命令异常 + */ +public class UnSupportCommandException extends Exception{ + public UnSupportCommandException() { + } + + public UnSupportCommandException(String message) { + super(message); + } + + public UnSupportCommandException(String message, Throwable cause) { + super(message, cause); + } + + public UnSupportCommandException(Throwable cause) { + super(cause); + } + + public UnSupportCommandException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/src/main/java/com/iflytop/gd/common/annotation/CommandMapping.java b/src/main/java/com/iflytop/gd/common/annotation/CommandMapping.java index 5b4e657..6a8364e 100644 --- a/src/main/java/com/iflytop/gd/common/annotation/CommandMapping.java +++ b/src/main/java/com/iflytop/gd/common/annotation/CommandMapping.java @@ -8,5 +8,6 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface CommandMapping { - String value(); + String moduleName(); + String commandName(); } \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java b/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java new file mode 100644 index 0000000..3bf7d96 --- /dev/null +++ b/src/main/java/com/iflytop/gd/common/controller/BaseCmdController.java @@ -0,0 +1,4 @@ +package com.iflytop.gd.common.controller; + +public class BaseCmdController { +} diff --git a/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java b/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java new file mode 100644 index 0000000..fca697e --- /dev/null +++ b/src/main/java/com/iflytop/gd/debug/controller/CmdDebugController.java @@ -0,0 +1,47 @@ +package com.iflytop.gd.debug.controller; + +import com.iflytop.gd.app.model.dto.CmdDTO; +import com.iflytop.gd.app.service.exceptions.UnSupportCommandException; +import com.iflytop.gd.common.result.Result; +import com.iflytop.gd.app.service.cmd.CommandHandler; +import com.iflytop.gd.app.service.cmd.CommandHandlerRegistry; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.concurrent.CompletableFuture; + +@Tag(name = "前端调试指令") +@RestController +@RequestMapping("/api/debug/cmd") +@RequiredArgsConstructor +@Slf4j +public class CmdDebugController { + private final CommandHandlerRegistry registry; + + @Operation(summary = "前端调试指令") + @PostMapping + public Result controlMethod(@RequestBody CmdDTO cmdDTO) { + String moduleName = cmdDTO.getModuleName(); + String commandName = cmdDTO.getCommandName(); + try { + CommandHandler commandHandler = registry.getCommandHandler(moduleName, commandName); + log.info("业务指令开始执行"); + commandHandler.handle(cmdDTO); + } catch (UnSupportCommandException exception) { + log.error("未找到对应的业务指令"); + return Result.failed(exception.getMessage()); + } catch (Exception e) { + log.error("执行业务指令发生异常: {}", cmdDTO, e); + return Result.failed(e.getMessage()); + } + return Result.success(); + } + + +} diff --git a/src/main/java/com/iflytop/gd/debug/controller/d.txt b/src/main/java/com/iflytop/gd/debug/controller/d.txt deleted file mode 100644 index ffeacb3..0000000 --- a/src/main/java/com/iflytop/gd/debug/controller/d.txt +++ /dev/null @@ -1 +0,0 @@ -向前端提供调试模式接口 \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java b/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java new file mode 100644 index 0000000..6f1de78 --- /dev/null +++ b/src/main/java/com/iflytop/gd/infrastructure/repository/service/UserService.java @@ -0,0 +1,32 @@ +package com.iflytop.gd.infrastructure.repository.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iflytop.gd.infrastructure.repository.mapper.UserMapper; +import com.iflytop.gd.infrastructure.repository.entity.User; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 用户业务实现类 + */ +@Service +@RequiredArgsConstructor +public class UserService extends ServiceImpl { + @Getter + @Setter + private User currentUser; + + public boolean deleteUser(String idsStr) { + List ids = Arrays.stream(idsStr.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + return this.removeByIds(ids); + } + +} diff --git a/src/main/java/com/iflytop/gd/system/devices/ColdTray.java b/src/main/java/com/iflytop/gd/system/devices/ColdTray.java new file mode 100644 index 0000000..9627f15 --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/ColdTray.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 冷阱 + */ +public interface ColdTray { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/Fan.java b/src/main/java/com/iflytop/gd/system/devices/Fan.java new file mode 100644 index 0000000..b3410fb --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/Fan.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 风扇 + */ +public interface Fan { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/Heater.java b/src/main/java/com/iflytop/gd/system/devices/Heater.java new file mode 100644 index 0000000..31e9ee5 --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/Heater.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 加热器 + */ +public interface Heater { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/Pump.java b/src/main/java/com/iflytop/gd/system/devices/Pump.java new file mode 100644 index 0000000..c0157fc --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/Pump.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 泵 + */ +public interface Pump { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/Relay.java b/src/main/java/com/iflytop/gd/system/devices/Relay.java new file mode 100644 index 0000000..0c6d88f --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/Relay.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 继电器 + */ +public interface Relay { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java b/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java new file mode 100644 index 0000000..4eb075f --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/ServoMotor.java @@ -0,0 +1,8 @@ +package com.iflytop.gd.system.devices; + + +/** + * 伺服电机 + */ +public interface ServoMotor { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/StepMotor.java b/src/main/java/com/iflytop/gd/system/devices/StepMotor.java new file mode 100644 index 0000000..e53b1fb --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/StepMotor.java @@ -0,0 +1,7 @@ +package com.iflytop.gd.system.devices; + +/** + * 步进电机 + */ +public interface StepMotor { +} diff --git a/src/main/java/com/iflytop/gd/system/devices/package-info.java b/src/main/java/com/iflytop/gd/system/devices/package-info.java new file mode 100644 index 0000000..bf12794 --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/devices/package-info.java @@ -0,0 +1 @@ +package com.iflytop.gd.system.devices; \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/system/modules/package-info.java b/src/main/java/com/iflytop/gd/system/modules/package-info.java new file mode 100644 index 0000000..e599da0 --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/modules/package-info.java @@ -0,0 +1 @@ +package com.iflytop.gd.system.modules; \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/system/package-info.java b/src/main/java/com/iflytop/gd/system/package-info.java new file mode 100644 index 0000000..98c4126 --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/package-info.java @@ -0,0 +1,6 @@ +package com.iflytop.gd.system; + + +/** + * 系统层用由设备、模块组成 + */ \ No newline at end of file diff --git a/src/main/java/com/iflytop/gd/system/service/UserService.java b/src/main/java/com/iflytop/gd/system/service/UserService.java deleted file mode 100644 index 23f45c7..0000000 --- a/src/main/java/com/iflytop/gd/system/service/UserService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.iflytop.gd.system.service; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.iflytop.gd.infrastructure.repository.mapper.UserMapper; -import com.iflytop.gd.infrastructure.repository.entity.User; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import org.springframework.stereotype.Service; - -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 用户业务实现类 - */ -@Service -@RequiredArgsConstructor -public class UserService extends ServiceImpl { - @Getter - @Setter - private User currentUser; - - public boolean deleteUser(String idsStr) { - List ids = Arrays.stream(idsStr.split(",")) - .map(Long::parseLong) - .collect(Collectors.toList()); - return this.removeByIds(ids); - } - -}