diff --git a/ele-admin-api.log b/ele-admin-api.log index 5e4ea32..e8eb6ae 100644 --- a/ele-admin-api.log +++ b/ele-admin-api.log @@ -1301,3 +1301,567 @@ Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Da 2022-08-26 13:39:07.031 WARN 40740 --- [http-nio-8081-exec-6] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://47.119.165.234:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8, version : 1.2.5, lastPacketReceivedIdleMillis : 69233 2022-08-26 13:41:35.709 WARN 40740 --- [http-nio-8081-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.eleadmin.common.core.exception.BusinessException: 手机号已存在] 2022-08-26 13:41:50.517 WARN 40740 --- [http-nio-8081-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.eleadmin.common.core.exception.BusinessException: 手机号已存在] +2022-08-26 13:54:07.648 WARN 41208 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:54:07.885 ERROR 41208 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : init datasource error, url: jdbc:mysql://42.194.212.185:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 + +java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:787) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:227) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:919) ~[druid-1.2.6.jar:1.2.6] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:212) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:175) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:170) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:155) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.(ServletContextInitializerBeans.java:87) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:260) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:234) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53) ~[spring-boot-2.5.4.jar:2.5.4] + at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5219) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:104) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:450) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:199) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:182) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:160) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.4.jar:2.5.4] + at com.eleadmin.Application.main(Application.java:23) ~[classes/:na] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.4.jar:2.5.4] + +2022-08-26 13:54:07.888 ERROR 41208 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} init error + +java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:787) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:227) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:919) ~[druid-1.2.6.jar:1.2.6] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) [spring-beans-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:212) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:175) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:170) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:155) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.(ServletContextInitializerBeans.java:87) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:260) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:234) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53) ~[spring-boot-2.5.4.jar:2.5.4] + at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5219) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:104) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:450) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:199) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:182) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:160) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.4.jar:2.5.4] + at com.eleadmin.Application.main(Application.java:23) ~[classes/:na] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.5.4.jar:2.5.4] + +2022-08-26 13:54:07.890 ERROR 41208 --- [restartedMain] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'jwtAuthenticationFilter': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleMapper' defined in file [/Users/gxwebsoft/JAVA/yunxinwei-bms-api/target/classes/com/eleadmin/common/system/mapper/UserRoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' +2022-08-26 13:54:07.900 WARN 41208 --- [restartedMain] o.a.c.loader.WebappClassLoaderBase : The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Create-1866593283] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.net.PlainSocketImpl.socketConnect(Native Method) + java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) + java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) + java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) + java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) + java.net.Socket.connect(Socket.java:607) + com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:156) + com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63) + com.mysql.cj.NativeSession.connect(NativeSession.java:119) + com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948) + com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818) + com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) + com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) + com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) + com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) + com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:787) + com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) + com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:227) + com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) + com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) + com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) + com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2801) +2022-08-26 13:54:07.900 WARN 41208 --- [restartedMain] o.a.c.loader.WebappClassLoaderBase : The web application [ROOT] appears to have started a thread named [Druid-ConnectionPool-Destroy-1866593283] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.lang.Thread.sleep(Native Method) + com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2876) +2022-08-26 13:54:07.901 WARN 41208 --- [restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat +2022-08-26 13:54:07.913 ERROR 41208 --- [restartedMain] o.s.boot.SpringApplication : Application run failed + +org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:163) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) [spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) [spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) [spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) [spring-boot-2.5.4.jar:2.5.4] + at com.eleadmin.Application.main(Application.java:23) [classes/:na] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.5.4.jar:2.5.4] +Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:142) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:104) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:450) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:199) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:182) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:160) ~[spring-boot-2.5.4.jar:2.5.4] + ... 13 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtAuthenticationFilter': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleMapper' defined in file [/Users/gxwebsoft/JAVA/yunxinwei-bms-api/target/classes/com/eleadmin/common/system/mapper/UserRoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:321) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:212) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:175) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAsRegistrationBean(ServletContextInitializerBeans.java:170) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addAdaptableBeans(ServletContextInitializerBeans.java:155) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.ServletContextInitializerBeans.(ServletContextInitializerBeans.java:87) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:260) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:234) ~[spring-boot-2.5.4.jar:2.5.4] + at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:53) ~[spring-boot-2.5.4.jar:2.5.4] + at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5219) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_322] + at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) ~[na:1.8.0_322] + at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) ~[tomcat-embed-core-9.0.52.jar:9.0.52] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123) ~[spring-boot-2.5.4.jar:2.5.4] + ... 18 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleMapper' defined in file [/Users/gxwebsoft/JAVA/yunxinwei-bms-api/target/classes/com/eleadmin/common/system/mapper/UserRoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:321) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + ... 57 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleMapper' defined in file [/Users/gxwebsoft/JAVA/yunxinwei-bms-api/target/classes/com/eleadmin/common/system/mapper/UserRoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1413) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:521) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) ~[spring-context-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) ~[spring-context-5.3.9.jar:5.3.9] + ... 73 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userRoleMapper' defined in file [/Users/gxwebsoft/JAVA/yunxinwei-bms-api/target/classes/com/eleadmin/common/system/mapper/UserRoleMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1516) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1399) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.9.jar:5.3.9] + ... 92 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1501) ~[spring-beans-5.3.9.jar:5.3.9] + ... 103 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.9.jar:5.3.9] + ... 116 common frames omitted +Caused by: java.sql.SQLSyntaxErrorException: Access denied for user 'yunxinwei_bms'@'%' to database 'com_gxwebsoft_oa' + at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.26.jar:8.0.26] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:787) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:227) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.6.jar:1.2.6] + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:919) ~[druid-1.2.6.jar:1.2.6] + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_322] + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_322] + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_322] + at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_322] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854) ~[spring-beans-5.3.9.jar:5.3.9] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-5.3.9.jar:5.3.9] + ... 127 common frames omitted + +2022-08-26 13:54:45.959 WARN 41219 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:54:49.338 WARN 41219 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server +2022-08-26 13:54:49.478 WARN 41219 --- [restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use +2022-08-26 13:54:49.495 ERROR 41219 --- [restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Web server failed to start. Port 8081 was already in use. + +Action: + +Identify and stop the process that's listening on port 8081 or configure this application to listen on another port. + +2022-08-26 13:55:03.328 WARN 41230 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:55:06.419 WARN 41230 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server +2022-08-26 13:55:06.879 WARN 41230 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:55:06.880 WARN 41230 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:55:06.882 WARN 41230 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:55:07.055 WARN 41230 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:56:05.357 WARN 41248 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:56:08.594 WARN 41248 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server +2022-08-26 13:56:09.054 WARN 41248 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:56:09.055 WARN 41248 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:56:09.056 WARN 41248 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:56:09.234 WARN 41248 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:57:04.740 WARN 41260 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:57:08.413 WARN 41260 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer : Unable to start LiveReload server +2022-08-26 13:57:08.903 WARN 41260 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:57:08.904 WARN 41260 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:57:08.906 WARN 41260 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:57:09.088 WARN 41260 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:59:51.792 WARN 41295 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 13:59:55.320 WARN 41295 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:59:55.321 WARN 41295 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:59:55.322 WARN 41295 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 13:59:55.497 WARN 41295 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:46.205 WARN 41321 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 14:01:49.198 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:49.198 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:49.199 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:49.369 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:49.609 WARN 41341 --- [main] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 14:01:50.863 WARN 41321 --- [restartedMain] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production. +2022-08-26 14:01:54.059 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.060 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.060 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.143 WARN 41341 --- [main] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.146 WARN 41341 --- [main] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.148 WARN 41341 --- [main] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.221 WARN 41321 --- [restartedMain] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void +2022-08-26 14:01:54.407 WARN 41341 --- [main] d.s.r.o.OperationImplicitParameterReader : Unable to interpret the implicit parameter configuration with dataType: string, dataTypeClass: class java.lang.Void diff --git a/pom.xml b/pom.xml index e7dfaee..8d068b0 100644 --- a/pom.xml +++ b/pom.xml @@ -181,6 +181,14 @@ 1.6.2 + + + org.apache.httpcomponents + httpclient + 4.5.2 + + + diff --git a/src/main/java/com/eleadmin/common/core/security/SecurityConfig.java b/src/main/java/com/eleadmin/common/core/security/SecurityConfig.java index 5ac12b2..12f4a6f 100644 --- a/src/main/java/com/eleadmin/common/core/security/SecurityConfig.java +++ b/src/main/java/com/eleadmin/common/core/security/SecurityConfig.java @@ -38,6 +38,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers(HttpMethod.GET, "/api/file/**", "/api/captcha", "/") .permitAll() .antMatchers( + "/api/auth/**", "/api/login", "/druid/**", "/swagger-ui.html", diff --git a/src/main/java/com/eleadmin/common/system/controller/AuthController.java b/src/main/java/com/eleadmin/common/system/controller/AuthController.java new file mode 100644 index 0000000..db28ac3 --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/controller/AuthController.java @@ -0,0 +1,93 @@ +package com.eleadmin.common.system.controller; + +import cn.hutool.http.HttpUtil; +import com.eleadmin.common.core.config.ConfigProperties; +import com.eleadmin.common.core.security.JwtSubject; +import com.eleadmin.common.core.security.JwtUtil; +import com.eleadmin.common.core.utils.CommonUtil; +import com.eleadmin.common.core.utils.JSONUtil; +import com.eleadmin.common.core.web.ApiResult; +import com.eleadmin.common.core.web.BaseController; +import com.eleadmin.common.system.entity.*; +import com.eleadmin.common.system.param.UserParam; +import com.eleadmin.common.system.result.LoginResult; +import com.eleadmin.common.system.service.UserRoleService; +import com.eleadmin.common.system.service.UserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * 第三方登录认证控制器 + * + * @author 科技小王子 + * @since 2018-12-24 16:10:11 + */ +@Api(tags = "第三方登录认证") +@RestController +@RequestMapping("/api/auth") +public class AuthController extends BaseController { + @Resource + private ConfigProperties configProperties; + @Resource + private UserService userService; + @Resource + private UserRoleService userRoleService; + + @ApiOperation("获取sessionId") + @GetMapping("getSessionId") + public String getSessionId(String code){ + return userService.getSessionId(code); + } + + @ApiOperation("第三方登录") + @PostMapping("/login") + public ApiResult login(@RequestBody UserParam param, HttpServletRequest request) { + Integer tenantId = param.getTenantId(); + String code = param.getCode(); + + // 获取openid + String url = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code"; + String replaceUrl = url.replace("{0}","wx2766b62be0ef0e6f").replace("{1}","205451097a44ef67b6684f50c93c23af").replace("{2}",code); + String res = HttpUtil.get(replaceUrl); + Map map = JSONUtil.parseObject(res, Map.class); + String openid = map.get("openid"); + + System.out.println(param); + + // 根据openid查询用户是否存在,不存在则创建,存在则登录成功并返回 + User user = userService.getByOpenid(openid, tenantId); + if (user == null) { + // 添加用户 + User u = new User(); + u.setOpenid(openid); + u.setTenantId(param.getTenantId()); + u.setUsername("wx_" + CommonUtil.randomUUID16()); + u.setNickname(param.getNickname()); + u.setAvatar(param.getAvatar()); + u.setSex(param.getSex()); + u.setPassword(userService.encodePassword(CommonUtil.randomUUID16())); + userService.saveUser(u); + + // 添加默认角色(普通用户) + UserRole userRole = new UserRole(); + userRole.setUserId(u.getUserId()); + userRole.setRoleId(5); + userRole.setTenantId(u.getTenantId()); + userRoleService.save(userRole); + + user = u; + } + // 移除敏感信息 + user.setPassword(null); + user.setOpenid(null); + // 签发token + String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), tenantId), + configProperties.getTokenExpireTime(), configProperties.getTokenKey()); + return success("登录成功", new LoginResult(access_token, user)); + } +} diff --git a/src/main/java/com/eleadmin/common/system/controller/UserController.java b/src/main/java/com/eleadmin/common/system/controller/UserController.java index b783433..b9d423b 100644 --- a/src/main/java/com/eleadmin/common/system/controller/UserController.java +++ b/src/main/java/com/eleadmin/common/system/controller/UserController.java @@ -240,7 +240,7 @@ public class UserController extends BaseController { if (CommonUtil.checkRepeat(list, UserImportParam::getUsername)) { return fail("账号存在重复", null); } - if (CommonUtil.checkRepeat(list, UserImportParam::getPhone)) { + if (CommonUtil.checkRepeat(list, UserImportParam::getMobile)) { return fail("手机号存在重复", null); } // 校验是否存在 @@ -250,11 +250,11 @@ public class UserController extends BaseController { return fail("账号已经存在", usernameExists.stream().map(User::getUsername).collect(Collectors.toList())); } - List phoneExists = userService.list(new LambdaQueryWrapper().in(User::getPhone, - list.stream().map(UserImportParam::getPhone).collect(Collectors.toList()))); + List phoneExists = userService.list(new LambdaQueryWrapper().in(User::getMobile, + list.stream().map(UserImportParam::getMobile).collect(Collectors.toList()))); if (phoneExists.size() > 0) { return fail("手机号已经存在", - phoneExists.stream().map(User::getPhone).collect(Collectors.toList())); + phoneExists.stream().map(User::getMobile).collect(Collectors.toList())); } // 添加 List users = new ArrayList<>(); @@ -264,7 +264,7 @@ public class UserController extends BaseController { u.setUsername(one.getUsername()); u.setPassword(userService.encodePassword(one.getPassword())); u.setNickname(one.getNickname()); - u.setPhone(one.getPhone()); + u.setMobile(one.getMobile()); Role role = roleService.getOne(new QueryWrapper() .eq("role_name", one.getRoleName()), false); if (role == null) { diff --git a/src/main/java/com/eleadmin/common/system/entity/User.java b/src/main/java/com/eleadmin/common/system/entity/User.java index 9de8b87..c4a0a75 100644 --- a/src/main/java/com/eleadmin/common/system/entity/User.java +++ b/src/main/java/com/eleadmin/common/system/entity/User.java @@ -26,6 +26,9 @@ public class User implements UserDetails { @TableId(type = IdType.AUTO) private Integer userId; + @ApiModelProperty("微信openid") + private String openid; + @ApiModelProperty("账号") private String username; @@ -42,7 +45,7 @@ public class User implements UserDetails { private String sex; @ApiModelProperty("手机号") - private String phone; + private String mobile; @ApiModelProperty("邮箱") private String email; @@ -69,6 +72,15 @@ public class User implements UserDetails { @ApiModelProperty("机构id") private Integer organizationId; + @ApiModelProperty(value = "国家") + private String country; + + @ApiModelProperty("省份") + private String province; + + @ApiModelProperty("城市") + private String city; + @ApiModelProperty("状态, 0正常, 1冻结") private Integer status; diff --git a/src/main/java/com/eleadmin/common/system/entity/UserOauth.java b/src/main/java/com/eleadmin/common/system/entity/UserOauth.java new file mode 100644 index 0000000..52363fb --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/entity/UserOauth.java @@ -0,0 +1,59 @@ +package com.eleadmin.common.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 第三方用户信息表 + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "UserOauth对象", description = "第三方用户信息表") +@TableName("sys_user_oauth") +public class UserOauth implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "第三方登陆类型(MP-WEIXIN)") + private String oauthType; + + @ApiModelProperty(value = "第三方用户唯一标识 (uid openid)") + private String oauthId; + + @ApiModelProperty(value = "微信unionID") + private String unionid; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/eleadmin/common/system/entity/UserRole.java b/src/main/java/com/eleadmin/common/system/entity/UserRole.java index c7b5551..fb90af0 100644 --- a/src/main/java/com/eleadmin/common/system/entity/UserRole.java +++ b/src/main/java/com/eleadmin/common/system/entity/UserRole.java @@ -43,4 +43,7 @@ public class UserRole implements Serializable { @TableField(exist = false) private String roleName; + @ApiModelProperty(value = "租户id") + private Integer tenantId; + } diff --git a/src/main/java/com/eleadmin/common/system/mapper/UserMapper.java b/src/main/java/com/eleadmin/common/system/mapper/UserMapper.java index 9d07ad2..0e0e541 100644 --- a/src/main/java/com/eleadmin/common/system/mapper/UserMapper.java +++ b/src/main/java/com/eleadmin/common/system/mapper/UserMapper.java @@ -45,4 +45,14 @@ public interface UserMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") User selectByUsername(@Param("username") String username, @Param("tenantId") Integer tenantId); + /** + * 根据openid查询 + * + * @param openid 微信openid + * @param tenantId 租户id + * @return User + */ + @InterceptorIgnore(tenantLine = "true") + User selectByOpenid(@Param("openid") String openid, @Param("tenantId") Integer tenantId); + } diff --git a/src/main/java/com/eleadmin/common/system/mapper/UserOauthMapper.java b/src/main/java/com/eleadmin/common/system/mapper/UserOauthMapper.java new file mode 100644 index 0000000..1a04a58 --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/mapper/UserOauthMapper.java @@ -0,0 +1,37 @@ +package com.eleadmin.common.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.eleadmin.common.system.entity.UserOauth; +import com.eleadmin.common.system.param.UserOauthParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 第三方用户信息表Mapper + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +public interface UserOauthMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserOauthParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserOauthParam param); + +} diff --git a/src/main/java/com/eleadmin/common/system/mapper/xml/UserMapper.xml b/src/main/java/com/eleadmin/common/system/mapper/xml/UserMapper.xml index 354bb87..836fb67 100644 --- a/src/main/java/com/eleadmin/common/system/mapper/xml/UserMapper.xml +++ b/src/main/java/com/eleadmin/common/system/mapper/xml/UserMapper.xml @@ -2,139 +2,161 @@ - - - SELECT ta.* - FROM sys_dictionary_data ta - LEFT JOIN sys_dictionary tb - ON ta.dict_id = tb.dict_id - AND tb.deleted = 0 - WHERE ta.deleted = 0 - AND tb.dict_code = 'sex' - + + + SELECT ta.* + FROM sys_dictionary_data ta + LEFT JOIN sys_dictionary tb + ON ta.dict_id = tb.dict_id + AND tb.deleted = 0 + WHERE ta.deleted = 0 + AND tb.dict_code = 'sex' + - - - SELECT a.user_id, - GROUP_CONCAT(b.role_name) role_name - FROM sys_user_role a - LEFT JOIN sys_role b ON a.role_id = b.role_id - GROUP BY a.user_id - + + + SELECT a.user_id, + GROUP_CONCAT(b.role_name) role_name + FROM sys_user_role a + LEFT JOIN sys_role b ON a.role_id = b.role_id + GROUP BY a.user_id + - - - SELECT a.*, - b.organization_name, - c.dict_data_name sex_name - FROM sys_user a - LEFT JOIN sys_organization b ON a.organization_id = b.organization_id - LEFT JOIN ( - - ) c ON a.sex = c.dict_data_code - LEFT JOIN( - - ) d ON a.user_id = d.user_id - - - AND a.user_id = #{param.userId} - - - AND a.username LIKE CONCAT('%', #{param.username}, '%') - - - AND a.nickname LIKE CONCAT('%', #{param.nickname}, '%') - - - AND a.sex = #{param.sex} - - - AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - - AND a.email LIKE CONCAT('%', #{param.email}, '%') - - - AND a.email_verified = #{param.emailVerified} - - - AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') - - - AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') - - - AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') - - - AND a.organization_id = #{param.organizationId} - - - AND a.`status` = #{param.status} - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_id=#{param.roleId}) - - - AND b.organization_name LIKE CONCAT('%', #{param.organizationName}, '%') - - - AND c.dict_data_name = #{param.sexName} - - - AND ( - a.username LIKE CONCAT('%', #{param.keywords}, '%') - OR a.nickname LIKE CONCAT('%', #{param.keywords}, '%') - OR b.organization_name LIKE CONCAT('%', #{param.keywords}, '%') - OR c.dict_data_name LIKE CONCAT('%', #{param.keywords}, '%') - OR d.role_name LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - + + + SELECT a.*, + b.organization_name, + c.dict_data_name sex_name + FROM sys_user a + LEFT JOIN sys_organization b ON a.organization_id = b.organization_id + LEFT JOIN ( + + ) c ON a.sex = c.dict_data_code + LEFT JOIN( + + ) d ON a.user_id = d.user_id + + + AND a.user_id = #{param.userId} + + + AND a.username LIKE CONCAT('%', #{param.username}, '%') + + + AND a.nickname LIKE CONCAT('%', #{param.nickname}, '%') + + + AND a.sex = #{param.sex} + + + AND a.mobile LIKE CONCAT('%', #{param.mobile}, '%') + + + AND a.email LIKE CONCAT('%', #{param.email}, '%') + + + AND a.email_verified = #{param.emailVerified} + + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') + + + AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') + + + AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') + + + AND a.organization_id = #{param.organizationId} + + + AND a.`status` = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.user_id IN (SELECT user_id FROM sys_user_role WHERE role_id=#{param.roleId}) + + + AND b.organization_name LIKE CONCAT('%', #{param.organizationName}, '%') + + + AND c.dict_data_name = #{param.sexName} + + + AND ( + a.username LIKE CONCAT('%', #{param.keywords}, '%') + OR a.nickname LIKE CONCAT('%', #{param.keywords}, '%') + OR b.organization_name LIKE CONCAT('%', #{param.keywords}, '%') + OR c.dict_data_name LIKE CONCAT('%', #{param.keywords}, '%') + OR d.role_name LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + - - + + - - + + - - + + + + + diff --git a/src/main/java/com/eleadmin/common/system/mapper/xml/UserOauthMapper.xml b/src/main/java/com/eleadmin/common/system/mapper/xml/UserOauthMapper.xml new file mode 100644 index 0000000..73b4661 --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/mapper/xml/UserOauthMapper.xml @@ -0,0 +1,53 @@ + + + + + + + SELECT a.* + FROM sys_user_oauth a + + + AND a.id = #{param.id} + + + AND a.user_id = #{param.userId} + + + AND a.oauth_type LIKE CONCAT('%', #{param.oauthType}, '%') + + + AND a.oauth_id LIKE CONCAT('%', #{param.oauthId}, '%') + + + AND a.unionid LIKE CONCAT('%', #{param.unionid}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/eleadmin/common/system/param/AuthParam.java b/src/main/java/com/eleadmin/common/system/param/AuthParam.java new file mode 100644 index 0000000..8399ecd --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/param/AuthParam.java @@ -0,0 +1,28 @@ +package com.eleadmin.common.system.param; + +import com.eleadmin.common.core.annotation.QueryField; +import com.eleadmin.common.core.annotation.QueryType; +import com.eleadmin.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 第三方用户信息表查询参数 + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "WxAuth对象", description = "第三方用户信息表查询参数") +public class AuthParam extends BaseParam { + private static final long serialVersionUID = 1L; + + private String encrypteDate; + private String iv; + private String sessionId; +} diff --git a/src/main/java/com/eleadmin/common/system/param/UserImportParam.java b/src/main/java/com/eleadmin/common/system/param/UserImportParam.java index 219fa27..769d4be 100644 --- a/src/main/java/com/eleadmin/common/system/param/UserImportParam.java +++ b/src/main/java/com/eleadmin/common/system/param/UserImportParam.java @@ -25,7 +25,7 @@ public class UserImportParam implements Serializable { private String nickname; @Excel(name = "手机号") - private String phone; + private String mobile; @Excel(name = "邮箱") private String email; diff --git a/src/main/java/com/eleadmin/common/system/param/UserOauthParam.java b/src/main/java/com/eleadmin/common/system/param/UserOauthParam.java new file mode 100644 index 0000000..4420650 --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/param/UserOauthParam.java @@ -0,0 +1,50 @@ +package com.eleadmin.common.system.param; + +import com.eleadmin.common.core.annotation.QueryField; +import com.eleadmin.common.core.annotation.QueryType; +import com.eleadmin.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 第三方用户信息表查询参数 + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "UserOauthParam对象", description = "第三方用户信息表查询参数") +public class UserOauthParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "微信code") + private String code; + + @ApiModelProperty(value = "第三方登陆类型(MP-WEIXIN)") + private String oauthType; + + @ApiModelProperty(value = "第三方用户唯一标识 (uid openid)") + private String oauthId; + + @ApiModelProperty(value = "微信unionID") + private String unionid; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "第三方用户信息") + private Object userInfo; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + +} diff --git a/src/main/java/com/eleadmin/common/system/param/UserParam.java b/src/main/java/com/eleadmin/common/system/param/UserParam.java index e684eed..476a840 100644 --- a/src/main/java/com/eleadmin/common/system/param/UserParam.java +++ b/src/main/java/com/eleadmin/common/system/param/UserParam.java @@ -28,6 +28,9 @@ public class UserParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer userId; + @ApiModelProperty("微信openid") + private String openid; + @ApiModelProperty("账号") private String username; @@ -39,7 +42,7 @@ public class UserParam extends BaseParam { private String sex; @ApiModelProperty("手机号") - private String phone; + private String mobile; @ApiModelProperty("邮箱") private String email; @@ -77,6 +80,15 @@ public class UserParam extends BaseParam { @TableField(exist = false) private String organizationName; + @ApiModelProperty("国家") + private String country; + + @ApiModelProperty("省份") + private String province; + + @ApiModelProperty("城市") + private String city; + @ApiModelProperty("性别名称") @TableField(exist = false) private String sexName; @@ -85,4 +97,14 @@ public class UserParam extends BaseParam { @TableField(exist = false) private String keywords; + @ApiModelProperty("微信登录凭证") + @TableField(exist = false) + private String code; + + @ApiModelProperty("微信头像") + private String avatar; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + } diff --git a/src/main/java/com/eleadmin/common/system/service/UserOauthService.java b/src/main/java/com/eleadmin/common/system/service/UserOauthService.java new file mode 100644 index 0000000..1c3c9a4 --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/service/UserOauthService.java @@ -0,0 +1,42 @@ +package com.eleadmin.common.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.eleadmin.common.core.web.PageResult; +import com.eleadmin.common.system.entity.UserOauth; +import com.eleadmin.common.system.param.UserOauthParam; + +import java.util.List; + +/** + * 第三方用户信息表Service + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +public interface UserOauthService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserOauthParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserOauthParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return UserOauth + */ + UserOauth getByIdRel(Integer id); + +} diff --git a/src/main/java/com/eleadmin/common/system/service/UserService.java b/src/main/java/com/eleadmin/common/system/service/UserService.java index 81eb179..1bd5d84 100644 --- a/src/main/java/com/eleadmin/common/system/service/UserService.java +++ b/src/main/java/com/eleadmin/common/system/service/UserService.java @@ -1,9 +1,11 @@ package com.eleadmin.common.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.eleadmin.common.core.web.ApiResult; import com.eleadmin.common.core.web.PageResult; import com.eleadmin.common.system.entity.User; import com.eleadmin.common.system.param.UserParam; +import com.eleadmin.common.system.result.LoginResult; import org.springframework.security.core.userdetails.UserDetailsService; import java.util.List; @@ -40,6 +42,22 @@ public interface UserService extends IService, UserDetailsService { */ User getByIdRel(Integer userId); + /** + * 根据openid查询用户 + * + * @param openid 账号 + * @return User + */ + User getByOpenid(String openid); + + /** + * 根据openid查询用户 + * + * @param tenantId 账号 + * @return User + */ + User getByOpenid(String openid, Integer tenantId); + /** * 根据账号查询用户 * @@ -90,4 +108,5 @@ public interface UserService extends IService, UserDetailsService { */ String encodePassword(String password); + String getSessionId(String code); } diff --git a/src/main/java/com/eleadmin/common/system/service/impl/UserOauthServiceImpl.java b/src/main/java/com/eleadmin/common/system/service/impl/UserOauthServiceImpl.java new file mode 100644 index 0000000..d639f6f --- /dev/null +++ b/src/main/java/com/eleadmin/common/system/service/impl/UserOauthServiceImpl.java @@ -0,0 +1,47 @@ +package com.eleadmin.common.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.eleadmin.common.system.mapper.UserOauthMapper; +import com.eleadmin.common.system.service.UserOauthService; +import com.eleadmin.common.system.entity.UserOauth; +import com.eleadmin.common.system.param.UserOauthParam; +import com.eleadmin.common.core.web.PageParam; +import com.eleadmin.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 第三方用户信息表Service实现 + * + * @author 科技小王子 + * @since 2022-09-01 16:17:28 + */ +@Service +public class UserOauthServiceImpl extends ServiceImpl implements UserOauthService { + + @Override + public PageResult pageRel(UserOauthParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserOauthParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public UserOauth getByIdRel(Integer id) { + UserOauthParam param = new UserOauthParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/eleadmin/common/system/service/impl/UserServiceImpl.java b/src/main/java/com/eleadmin/common/system/service/impl/UserServiceImpl.java index 5eaf7b5..1607e51 100644 --- a/src/main/java/com/eleadmin/common/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/eleadmin/common/system/service/impl/UserServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.eleadmin.common.core.web.ApiResult; import com.eleadmin.common.core.web.PageParam; import com.eleadmin.common.core.exception.BusinessException; import com.eleadmin.common.core.web.PageResult; @@ -34,148 +35,174 @@ import java.util.stream.Collectors; */ @Service public class UserServiceImpl extends ServiceImpl implements UserService { - @Resource - private UserRoleService userRoleService; - @Resource - private RoleMenuService roleMenuService; - @Resource - private BCryptPasswordEncoder bCryptPasswordEncoder; + @Resource + private UserRoleService userRoleService; + @Resource + private RoleMenuService roleMenuService; + @Resource + private BCryptPasswordEncoder bCryptPasswordEncoder; - @Override - public PageResult pageRel(UserParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - // 查询用户的角色 - selectUserRoles(list); - return new PageResult<>(list, page.getTotal()); - } + @Override + public PageResult pageRel(UserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + // 查询用户的角色 + selectUserRoles(list); + return new PageResult<>(list, page.getTotal()); + } - @Override - public List listRel(UserParam param) { - List list = baseMapper.selectListRel(param); - // 查询用户的角色 - selectUserRoles(list); - // 排序 - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } + @Override + public List listRel(UserParam param) { + List list = baseMapper.selectListRel(param); + // 查询用户的角色 + selectUserRoles(list); + // 排序 + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } - @Override - public User getByIdRel(Integer userId) { - UserParam param = new UserParam(); - param.setUserId(userId); - User user = param.getOne(baseMapper.selectListRel(param)); - if (user != null) { - user.setRoles(userRoleService.listByUserId(user.getUserId())); - user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); - } - return user; + @Override + public User getByIdRel(Integer userId) { + UserParam param = new UserParam(); + param.setUserId(userId); + User user = param.getOne(baseMapper.selectListRel(param)); + if (user != null) { + user.setRoles(userRoleService.listByUserId(user.getUserId())); + user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); } + return user; + } - @Override - public User getByUsername(String username) { - return getByUsername(username, null); - } + @Override + public User getByOpenid(String openid) { + return getByOpenid(openid, null); + } - @Override - public User getByUsername(String username, Integer tenantId) { - if (StrUtil.isBlank(username)) { - return null; - } - User user = baseMapper.selectByUsername(username, tenantId); - if (user != null) { - user.setRoles(userRoleService.listByUserId(user.getUserId())); - user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); - } - return user; + @Override + public User getByOpenid(String openid, Integer tenantId) { + if (StrUtil.isBlank(openid)) { + return null; } + User user = baseMapper.selectByOpenid(openid, tenantId); + if (user != null) { + user.setRoles(userRoleService.listByUserId(user.getUserId())); + user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); + } + return user; + } - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - return getByUsername(username); - } + @Override + public User getByUsername(String username) { + return getByUsername(username, null); + } - @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE) - @Override - public boolean saveUser(User user) { - if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getUsername, user.getUsername())) > 0) { - throw new BusinessException("账号已存在"); - } - if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getPhone, user.getPhone())) > 0) { - throw new BusinessException("手机号已存在"); - } - if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getEmail, user.getEmail())) > 0) { - throw new BusinessException("邮箱已存在"); - } - boolean result = baseMapper.insert(user) > 0; - if (result && user.getRoles() != null && user.getRoles().size() > 0) { - List roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList()); - if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) { - throw new BusinessException("用户角色添加失败"); - } - } - return result; + @Override + public User getByUsername(String username, Integer tenantId) { + if (StrUtil.isBlank(username)) { + return null; } + User user = baseMapper.selectByUsername(username, tenantId); + if (user != null) { + user.setRoles(userRoleService.listByUserId(user.getUserId())); + user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); + } + return user; + } - @Transactional(rollbackFor = {Exception.class}) - @Override - public boolean updateUser(User user) { - if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getUsername, user.getUsername()) - .ne(User::getUserId, user.getUserId())) > 0) { - throw new BusinessException("账号已存在"); - } - if (StrUtil.isNotEmpty(user.getPhone()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getPhone, user.getPhone()) - .ne(User::getUserId, user.getUserId())) > 0) { - throw new BusinessException("手机号已存在"); - } - if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper() - .eq(User::getEmail, user.getEmail()) - .ne(User::getUserId, user.getUserId())) > 0) { - throw new BusinessException("邮箱已存在"); - } - boolean result = baseMapper.updateById(user) > 0; - if (result && user.getRoles() != null && user.getRoles().size() > 0) { - userRoleService.remove(new LambdaUpdateWrapper().eq(UserRole::getUserId, user.getUserId())); - List roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList()); - if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) { - throw new BusinessException("用户角色添加失败"); - } - } - return result; - } + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + return getByUsername(username); + } - @Override - public boolean comparePassword(String dbPassword, String inputPassword) { - return bCryptPasswordEncoder.matches(inputPassword, dbPassword); + @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.SERIALIZABLE) + @Override + public boolean saveUser(User user) { + if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getUsername, user.getUsername())) > 0) { + throw new BusinessException("账号已存在"); } + if (StrUtil.isNotEmpty(user.getMobile()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getMobile, user.getMobile())) > 0) { + throw new BusinessException("手机号已存在"); + } + if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getEmail, user.getEmail())) > 0) { + throw new BusinessException("邮箱已存在"); + } + boolean result = baseMapper.insert(user) > 0; + if (result && user.getRoles() != null && user.getRoles().size() > 0) { + List roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList()); + if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) { + throw new BusinessException("用户角色添加失败"); + } + } + return result; + } - @Override - public String encodePassword(String password) { - return password == null ? null : bCryptPasswordEncoder.encode(password); + @Transactional(rollbackFor = {Exception.class}) + @Override + public boolean updateUser(User user) { + if (StrUtil.isNotEmpty(user.getUsername()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getUsername, user.getUsername()) + .ne(User::getUserId, user.getUserId())) > 0) { + throw new BusinessException("账号已存在"); } + if (StrUtil.isNotEmpty(user.getMobile()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getMobile, user.getMobile()) + .ne(User::getUserId, user.getUserId())) > 0) { + throw new BusinessException("手机号已存在"); + } + if (StrUtil.isNotEmpty(user.getEmail()) && baseMapper.selectCount(new LambdaQueryWrapper() + .eq(User::getEmail, user.getEmail()) + .ne(User::getUserId, user.getUserId())) > 0) { + throw new BusinessException("邮箱已存在"); + } + boolean result = baseMapper.updateById(user) > 0; + if (result && user.getRoles() != null && user.getRoles().size() > 0) { + userRoleService.remove(new LambdaUpdateWrapper().eq(UserRole::getUserId, user.getUserId())); + List roleIds = user.getRoles().stream().map(Role::getRoleId).collect(Collectors.toList()); + if (userRoleService.saveBatch(user.getUserId(), roleIds) < roleIds.size()) { + throw new BusinessException("用户角色添加失败"); + } + } + return result; + } - /** - * 批量查询用户的角色 - * - * @param users 用户集合 - */ - private void selectUserRoles(List users) { - if (users != null && users.size() > 0) { - List userIds = users.stream().map(User::getUserId).collect(Collectors.toList()); - List userRoles = userRoleService.listByUserIds(userIds); - for (User user : users) { - List roles = userRoles.stream().filter(d -> user.getUserId().equals(d.getUserId())) - .collect(Collectors.toList()); - user.setRoles(roles); - } - } + @Override + public boolean comparePassword(String dbPassword, String inputPassword) { + return bCryptPasswordEncoder.matches(inputPassword, dbPassword); + } + + @Override + public String encodePassword(String password) { + return password == null ? null : bCryptPasswordEncoder.encode(password); + } + + @Override + public String getSessionId(String code) { + String url = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code"; + System.out.println(code); + System.out.println(url); + return null; + } + + /** + * 批量查询用户的角色 + * + * @param users 用户集合 + */ + private void selectUserRoles(List users) { + if (users != null && users.size() > 0) { + List userIds = users.stream().map(User::getUserId).collect(Collectors.toList()); + List userRoles = userRoleService.listByUserIds(userIds); + for (User user : users) { + List roles = userRoles.stream().filter(d -> user.getUserId().equals(d.getUserId())) + .collect(Collectors.toList()); + user.setRoles(roles); + } } + } } diff --git a/src/main/java/com/eleadmin/site/entity/Cashier.java b/src/main/java/com/eleadmin/site/entity/Cashier.java index fa8b944..1d8d5ed 100644 --- a/src/main/java/com/eleadmin/site/entity/Cashier.java +++ b/src/main/java/com/eleadmin/site/entity/Cashier.java @@ -17,7 +17,7 @@ import java.util.Date; */ @Data @ApiModel(description = "收银台") -@TableName("apps_cashier") +@TableName("ws_cashier") public class Cashier implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/eleadmin/test/controller/TenantSettingController.java b/src/main/java/com/eleadmin/test/controller/TenantSettingController.java new file mode 100644 index 0000000..8621c54 --- /dev/null +++ b/src/main/java/com/eleadmin/test/controller/TenantSettingController.java @@ -0,0 +1,133 @@ +package com.eleadmin.test.controller; + +import com.eleadmin.common.core.web.BaseController; +import com.eleadmin.test.service.TenantSettingService; +import com.eleadmin.test.entity.TenantSetting; +import com.eleadmin.test.param.TenantSettingParam; +import com.eleadmin.common.core.web.ApiResult; +import com.eleadmin.common.core.web.PageResult; +import com.eleadmin.common.core.web.PageParam; +import com.eleadmin.common.core.web.BatchParam; +import com.eleadmin.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 系统设置表控制器 + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +@Api(tags = "系统设置表管理") +@RestController +@RequestMapping("/api/test/tenant-setting") +public class TenantSettingController extends BaseController { + @Resource + private TenantSettingService tenantSettingService; + + @PreAuthorize("hasAuthority('test:tenantSetting:list')") + @OperationLog + @ApiOperation("分页查询系统设置表") + @GetMapping("/page") + public ApiResult> page(TenantSettingParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + return success(tenantSettingService.page(page, page.getWrapper())); + // 使用关联查询 + //return success(tenantSettingService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:list')") + @OperationLog + @ApiOperation("查询全部系统设置表") + @GetMapping() + public ApiResult> list(TenantSettingParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + return success(tenantSettingService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(tenantSettingService.listRel(param)); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:list')") + @OperationLog + @ApiOperation("根据id查询系统设置表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(tenantSettingService.getById(id)); + // 使用关联查询 + //return success(tenantSettingService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:save')") + @OperationLog + @ApiOperation("添加系统设置表") + @PostMapping() + public ApiResult save(@RequestBody TenantSetting tenantSetting) { + if (tenantSettingService.save(tenantSetting)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:update')") + @OperationLog + @ApiOperation("修改系统设置表") + @PutMapping() + public ApiResult update(@RequestBody TenantSetting tenantSetting) { + if (tenantSettingService.updateById(tenantSetting)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:remove')") + @OperationLog + @ApiOperation("删除系统设置表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (tenantSettingService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:save')") + @OperationLog + @ApiOperation("批量添加系统设置表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (tenantSettingService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:update')") + @OperationLog + @ApiOperation("批量修改系统设置表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(tenantSettingService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('test:tenantSetting:remove')") + @OperationLog + @ApiOperation("批量删除系统设置表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (tenantSettingService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/eleadmin/test/entity/TenantSetting.java b/src/main/java/com/eleadmin/test/entity/TenantSetting.java new file mode 100644 index 0000000..b76b0b9 --- /dev/null +++ b/src/main/java/com/eleadmin/test/entity/TenantSetting.java @@ -0,0 +1,56 @@ +package com.eleadmin.test.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统设置表 + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "TenantSetting对象", description = "系统设置表") +@TableName("sys_tenant_setting") +public class TenantSetting implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "设置项标示") + private String key; + + @ApiModelProperty(value = "设置内容(json格式)") + private String values; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/eleadmin/test/mapper/TenantSettingMapper.java b/src/main/java/com/eleadmin/test/mapper/TenantSettingMapper.java new file mode 100644 index 0000000..4e5621b --- /dev/null +++ b/src/main/java/com/eleadmin/test/mapper/TenantSettingMapper.java @@ -0,0 +1,37 @@ +package com.eleadmin.test.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.eleadmin.test.entity.TenantSetting; +import com.eleadmin.test.param.TenantSettingParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 系统设置表Mapper + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +public interface TenantSettingMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TenantSettingParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TenantSettingParam param); + +} diff --git a/src/main/java/com/eleadmin/test/mapper/xml/TenantSettingMapper.xml b/src/main/java/com/eleadmin/test/mapper/xml/TenantSettingMapper.xml new file mode 100644 index 0000000..14896d7 --- /dev/null +++ b/src/main/java/com/eleadmin/test/mapper/xml/TenantSettingMapper.xml @@ -0,0 +1,50 @@ + + + + + + + SELECT a.* + FROM sys_tenant_setting a + + + AND a.id = #{param.id} + + + AND a.key LIKE CONCAT('%', #{param.key}, '%') + + + AND a.values LIKE CONCAT('%', #{param.values}, '%') + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/eleadmin/test/param/TenantSettingParam.java b/src/main/java/com/eleadmin/test/param/TenantSettingParam.java new file mode 100644 index 0000000..386ae23 --- /dev/null +++ b/src/main/java/com/eleadmin/test/param/TenantSettingParam.java @@ -0,0 +1,46 @@ +package com.eleadmin.test.param; + +import com.eleadmin.common.core.annotation.QueryField; +import com.eleadmin.common.core.annotation.QueryType; +import com.eleadmin.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统设置表查询参数 + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TenantSettingParam对象", description = "系统设置表查询参数") +public class TenantSettingParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "id") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "设置项标示") + private String key; + + @ApiModelProperty(value = "设置内容(json格式)") + private String values; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/eleadmin/test/service/TenantSettingService.java b/src/main/java/com/eleadmin/test/service/TenantSettingService.java new file mode 100644 index 0000000..89e7884 --- /dev/null +++ b/src/main/java/com/eleadmin/test/service/TenantSettingService.java @@ -0,0 +1,42 @@ +package com.eleadmin.test.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.eleadmin.common.core.web.PageResult; +import com.eleadmin.test.entity.TenantSetting; +import com.eleadmin.test.param.TenantSettingParam; + +import java.util.List; + +/** + * 系统设置表Service + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +public interface TenantSettingService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TenantSettingParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TenantSettingParam param); + + /** + * 根据id查询 + * + * @param id id + * @return TenantSetting + */ + TenantSetting getByIdRel(Integer id); + +} diff --git a/src/main/java/com/eleadmin/test/service/impl/TenantSettingServiceImpl.java b/src/main/java/com/eleadmin/test/service/impl/TenantSettingServiceImpl.java new file mode 100644 index 0000000..8b60a59 --- /dev/null +++ b/src/main/java/com/eleadmin/test/service/impl/TenantSettingServiceImpl.java @@ -0,0 +1,47 @@ +package com.eleadmin.test.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.eleadmin.test.mapper.TenantSettingMapper; +import com.eleadmin.test.service.TenantSettingService; +import com.eleadmin.test.entity.TenantSetting; +import com.eleadmin.test.param.TenantSettingParam; +import com.eleadmin.common.core.web.PageParam; +import com.eleadmin.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 系统设置表Service实现 + * + * @author 科技小王子 + * @since 2022-08-29 09:27:05 + */ +@Service +public class TenantSettingServiceImpl extends ServiceImpl implements TenantSettingService { + + @Override + public PageResult pageRel(TenantSettingParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(TenantSettingParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public TenantSetting getByIdRel(Integer id) { + TenantSettingParam param = new TenantSettingParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 5bb1155..570e970 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,9 +3,9 @@ # 数据源配置 spring: datasource: - url: jdbc:mysql://47.119.165.234:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 - username: com_gxwebsoft_oa - password: EZfW2R4YiWfbLHLw + url: jdbc:mysql://42.194.212.185:3308/yunxinwei_bms?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 + username: yunxinwei_bms + password: dxtfwGZN65bxeWZa driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 42c8290..fd52bbc 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -3,9 +3,9 @@ # 数据源配置 spring: datasource: - url: jdbc:mysql://47.119.165.234:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 - username: com_gxwebsoft_oa - password: EZfW2R4YiWfbLHLw + url: jdbc:mysql://localhost:3308/yunxinwei_bms?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 + username: yunxinwei_bms + password: dxtfwGZN65bxeWZa driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 651e72a..471b6a0 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,11 +1,11 @@ # 端口 server: - port: 8081 + port: 16801 # 多环境配置 spring: profiles: - active: prod + active: dev # 连接池配置 datasource: diff --git a/src/test/java/com/eleadmin/generator/CodeGenerator.java b/src/test/java/com/eleadmin/generator/CodeGenerator.java index 33698fa..a5e62af 100644 --- a/src/test/java/com/eleadmin/generator/CodeGenerator.java +++ b/src/test/java/com/eleadmin/generator/CodeGenerator.java @@ -27,27 +27,34 @@ public class CodeGenerator { // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; // 作者名称 - private static final String AUTHOR = "EleAdmin"; + private static final String AUTHOR = "科技小王子"; // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://localhost:3306/ele-admin-api?useUnicode=true&useSSL=false&characterEncoding=utf8"; + private static final String DB_URL = "jdbc:mysql://42.194.212.185:3308/yunxinwei_bms?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "root"; - private static final String DB_PASSWORD = "123456"; + private static final String DB_USERNAME = "yunxinwei_bms"; + private static final String DB_PASSWORD = "dxtfwGZN65bxeWZa"; // 包名 - private static final String PACKAGE_NAME = "com.eleadmin"; + private static final String PACKAGE_NAME = "com.eleadmin.common"; // 模块名 - private static final String MODULE_NAME = "test"; + private static final String MODULE_NAME = "system"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ - "sys_user", - "sys_role" + "ws_order", + "ws_order_address", + "ws_order_delivery", + "ws_order_delivery_goods", + "ws_order_export", + "ws_order_extract", + "ws_order_goods", + "ws_order_refund", + "ws_order_refund_address", + "ws_order_refund_image", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ - "sys_", - "tb_" + "sys_" }; // 不需要作为查询参数的字段 private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{