From 3204c89d6e02f3bb9dcc304518b57893c18d4169 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=94=B0=E8=89=BA=E9=B9=8F?= <18382071280@163.com>
Date: Wed, 23 Aug 2023 16:42:26 +0800
Subject: [PATCH] =?UTF-8?q?fix(*)=20=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4Ge?=
=?UTF-8?q?neral=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 4 +
General/pom.xml | 129 ++++++++++
.../cloud/general/GeneralApplication.java | 17 ++
.../annotation/DataSourceAnnotation.java | 17 ++
.../cloud/general/config/DataSource.java | 10 +
.../general/config/DataSourceAspect.java | 46 ++++
.../general/config/DataSourceConfig.java | 71 +++++
.../general/config/DataSourceConstants.java | 6 +
.../config/DataSourceContextHolder.java | 30 +++
.../cloud/general/config/RedisConfig.java | 80 ++++++
.../general/config/RedisRepositoryConfig.java | 30 +++
.../general/controller/UserController.java | 51 ++++
.../general/controller/WxUserController.java | 33 +++
.../crtech/cloud/general/dto/MisAppDto.java | 51 ++++
.../general/dto/MisComRolePopedomDto.java | 32 +++
.../cloud/general/dto/MisComUserDto.java | 56 ++++
.../general/dto/MisPopedomAuthorityDto.java | 35 +++
.../cloud/general/dto/MisPopedomDto.java | 62 +++++
.../cloud/general/dto/MisUserInfoDto.java | 61 +++++
.../cn/crtech/cloud/general/dto/UserDto.java | 30 +++
.../cloud/general/dto/WxAppleUserInfo.java | 61 +++++
.../cloud/general/holder/LoginUserHolder.java | 43 ++++
.../cloud/general/launcher/NacosConfig.java | 51 ++++
.../cloud/general/mapper/GlobalMapper.java | 229 +++++++++++++++++
.../cloud/general/mapper/WxUserMapper.java | 112 ++++++++
.../cn/crtech/cloud/general/pojo/MisApp.java | 111 ++++++++
.../cloud/general/pojo/MisComRoleUser.java | 35 +++
.../cn/crtech/cloud/general/pojo/Staff.java | 112 ++++++++
.../cn/crtech/cloud/general/pojo/User.java | 92 +++++++
.../cloud/general/pojo/WxAppletUser.java | 90 +++++++
.../cloud/general/service/UserService.java | 243 ++++++++++++++++++
.../cloud/general/service/WxUserService.java | 99 +++++++
.../src/main/resources/application-dev.yml | 21 ++
General/src/main/resources/bootstrap-dev.yml | 24 ++
General/src/main/resources/bootstrap.yml | 6 +
General/src/main/resources/logback.xml | 56 ++++
36 files changed, 2236 insertions(+)
create mode 100644 General/pom.xml
create mode 100644 General/src/main/java/cn/crtech/cloud/general/GeneralApplication.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/annotation/DataSourceAnnotation.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/DataSource.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/DataSourceAspect.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/DataSourceConfig.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/DataSourceConstants.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/DataSourceContextHolder.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/RedisConfig.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/config/RedisRepositoryConfig.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/controller/UserController.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/controller/WxUserController.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisAppDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisComRolePopedomDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisComUserDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisPopedomAuthorityDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisPopedomDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/MisUserInfoDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/UserDto.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/dto/WxAppleUserInfo.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/holder/LoginUserHolder.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/launcher/NacosConfig.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/mapper/GlobalMapper.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/mapper/WxUserMapper.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/pojo/MisApp.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/pojo/MisComRoleUser.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/pojo/Staff.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/pojo/User.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/pojo/WxAppletUser.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/service/UserService.java
create mode 100644 General/src/main/java/cn/crtech/cloud/general/service/WxUserService.java
create mode 100644 General/src/main/resources/application-dev.yml
create mode 100644 General/src/main/resources/bootstrap-dev.yml
create mode 100644 General/src/main/resources/bootstrap.yml
create mode 100644 General/src/main/resources/logback.xml
diff --git a/.gitignore b/.gitignore
index f41242f..836f5fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,7 @@
/ResourceManager/src/main/resources/bootstrap-test.yml
/WXEngine/src/main/resources/bootstrap-test.yml
/WXEngine/src/main/resources/application-test.yml
+/General/src/main/resources/application-test.yml
+/General/src/main/resources/bootstrap-test.yml
+/General/General.iml
+/General/target/
diff --git a/General/pom.xml b/General/pom.xml
new file mode 100644
index 0000000..fde595c
--- /dev/null
+++ b/General/pom.xml
@@ -0,0 +1,129 @@
+
+
+ 4.0.0
+
+ cn.crtech.cloud.general
+ General
+ 1.0.1
+
+
+
+ cn.crtech.cloud.dependencies
+ Dependencies
+ 1.0.1
+
+
+
+
+
+ 8
+ 8
+ 1.8
+ UTF-8
+
+ 1.0.1
+ 2.3.31
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-test
+
+
+
+ org.springframework
+ spring-test
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+
+ redis.clients
+ jedis
+
+
+
+ org.springframework
+ spring-context
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+
+
+ cn.crtech.cloud.common
+ Common
+ ${common.version}
+
+
+
+
+ org.freemarker
+ freemarker
+ ${freemarker.version}
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+ -Dfile.encoding=UTF-8
+
+
+
+
+
diff --git a/General/src/main/java/cn/crtech/cloud/general/GeneralApplication.java b/General/src/main/java/cn/crtech/cloud/general/GeneralApplication.java
new file mode 100644
index 0000000..ed9a512
--- /dev/null
+++ b/General/src/main/java/cn/crtech/cloud/general/GeneralApplication.java
@@ -0,0 +1,17 @@
+package cn.crtech.cloud.general;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import tk.mybatis.spring.annotation.MapperScan;
+
+@EnableDiscoveryClient
+@SpringBootApplication
+@EnableTransactionManagement
+@MapperScan("cn.crtech.cloud.general.mapper")
+public class GeneralApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(GeneralApplication.class, args);
+ }
+}
diff --git a/General/src/main/java/cn/crtech/cloud/general/annotation/DataSourceAnnotation.java b/General/src/main/java/cn/crtech/cloud/general/annotation/DataSourceAnnotation.java
new file mode 100644
index 0000000..680c4ce
--- /dev/null
+++ b/General/src/main/java/cn/crtech/cloud/general/annotation/DataSourceAnnotation.java
@@ -0,0 +1,17 @@
+package cn.crtech.cloud.general.annotation;
+
+import cn.crtech.cloud.general.config.DataSourceConstants;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface DataSourceAnnotation {
+ /**
+ * 数据源名称
+ */
+ String value() default DataSourceConstants.MIS_DATASOURCE;
+}
diff --git a/General/src/main/java/cn/crtech/cloud/general/config/DataSource.java b/General/src/main/java/cn/crtech/cloud/general/config/DataSource.java
new file mode 100644
index 0000000..dc9ed6f
--- /dev/null
+++ b/General/src/main/java/cn/crtech/cloud/general/config/DataSource.java
@@ -0,0 +1,10 @@
+package cn.crtech.cloud.general.config;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+public class DataSource extends AbstractRoutingDataSource {
+ @Override
+ protected Object determineCurrentLookupKey() {
+ return DataSourceContextHolder.getContextKey();
+ }
+}
diff --git a/General/src/main/java/cn/crtech/cloud/general/config/DataSourceAspect.java b/General/src/main/java/cn/crtech/cloud/general/config/DataSourceAspect.java
new file mode 100644
index 0000000..b6126ac
--- /dev/null
+++ b/General/src/main/java/cn/crtech/cloud/general/config/DataSourceAspect.java
@@ -0,0 +1,46 @@
+package cn.crtech.cloud.general.config;
+
+import cn.crtech.cloud.general.annotation.DataSourceAnnotation;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+
+@Aspect
+@Component
+public class DataSourceAspect {
+ @Pointcut("@annotation(cn.crtech.cloud.general.annotation.DataSourceAnnotation)")
+ public void dataSourcePointCut() {
+ }
+
+ @Around("dataSourcePointCut()")
+ public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
+ String dsKey = getDSAnnotation(joinPoint).value();
+ DataSourceContextHolder.setContextKey(dsKey);
+ try {
+ return joinPoint.proceed();
+ } finally {
+ DataSourceContextHolder.removeContextKey();
+ }
+ }
+
+ /**
+ * 根据类或方法获取数据源注解
+ */
+ private DataSourceAnnotation getDSAnnotation(ProceedingJoinPoint joinPoint) {
+ Class> targetClass = joinPoint.getTarget().getClass();
+ DataSourceAnnotation dataSourceAnnotation = targetClass.getAnnotation(DataSourceAnnotation.class);
+ // 先判断类的注解,再判断方法注解
+ if (Objects.nonNull(dataSourceAnnotation)) {
+ return dataSourceAnnotation;
+ } else {
+ MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
+ return methodSignature.getMethod().getAnnotation(DataSourceAnnotation.class);
+ }
+ }
+}
+
diff --git a/General/src/main/java/cn/crtech/cloud/general/config/DataSourceConfig.java b/General/src/main/java/cn/crtech/cloud/general/config/DataSourceConfig.java
new file mode 100644
index 0000000..93e3097
--- /dev/null
+++ b/General/src/main/java/cn/crtech/cloud/general/config/DataSourceConfig.java
@@ -0,0 +1,71 @@
+package cn.crtech.cloud.general.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import tk.mybatis.spring.annotation.MapperScan;
+
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@MapperScan(basePackages = "cn.crtech.cloud.general.mapper")
+@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
+public class DataSourceConfig {
+ @Value("${service.datasource.MIS.url}")
+ private String misUrl;
+ @Value("${service.datasource.MIS.username}")
+ private String misUserName;
+ @Value("${service.datasource.MIS.password}")
+ private String misPassWord;
+ @Value("${service.datasource.MIS.driver}")
+ private String misDriver;
+
+ @Bean(DataSourceConstants.MIS_DATASOURCE)
+ public DataSource misDataSource() {
+ DriverManagerDataSource dataSource = new DriverManagerDataSource();
+ dataSource.setDriverClassName(misDriver);
+ dataSource.setUrl(misUrl);
+ dataSource.setUsername(misUserName);
+ dataSource.setPassword(misPassWord);
+ return dataSource;
+ }
+
+ @Value("${service.datasource.TM.url}")
+ private String tmUrl;
+ @Value("${service.datasource.TM.username}")
+ private String tmUserName;
+ @Value("${service.datasource.TM.password}")
+ private String tmPassWord;
+ @Value("${service.datasource.TM.driver}")
+ private String tmDriver;
+
+ @Bean(DataSourceConstants.TM_DATASOURCE)
+ public DataSource tmDataSource() {
+ DriverManagerDataSource dataSource = new DriverManagerDataSource();
+ dataSource.setDriverClassName(tmDriver);
+ dataSource.setUrl(tmUrl);
+ dataSource.setUsername(tmUserName);
+ dataSource.setPassword(tmPassWord);
+ return dataSource;
+ }
+
+ @Bean
+ @Primary
+ public DataSource dataSource() {
+ Map