This commit is contained in:
zhangchenbiao
2023-05-19 15:17:45 +08:00
parent 1764cfbca3
commit e9b35b41f7
88 changed files with 7326 additions and 3 deletions

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="coolstore-partner-common" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.6" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.60" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.8.0" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.8.0" level="project" />
<orderEntry type="module" module-name="coolstore-partner-dao" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.7.11" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.7.11" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.7.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.12" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.36" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.30" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.27" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.18" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.20" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.20" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.36" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.7.11" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.4.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.2.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.9" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.7" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.4.6" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.3.2" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.5" level="project" />
<orderEntry type="module" module-name="coolstore-partner-model" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-starter:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.4" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.13.5" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.12.23" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.4" level="project" />
</component>
</module>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>coolstore-partner-manage</artifactId>
<groupId>com.coolstore</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>coolstore-partner-service</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.coolstore</groupId>
<artifactId>coolstore-partner-common</artifactId>
</dependency>
<dependency>
<groupId>com.coolstore</groupId>
<artifactId>coolstore-partner-dao</artifactId>
</dependency>
<dependency>
<groupId>com.coolstore</groupId>
<artifactId>coolstore-partner-model</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,26 @@
package com.cool.store.service;
import com.cool.store.model.entity.EnterpriseConfigDO;
import java.util.List;
public interface EnterpriseConfigService {
EnterpriseConfigDO selectByEnterpriseId(String enterpriseId);
/**
* 根据dbName获取dbServer
* @param dbName
* @return
*/
EnterpriseConfigDO getDbInfoByDbName(String dbName);
/**
* 获取dbServer
* @return
*/
List<EnterpriseConfigDO> getDistinctDbServer();
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.service.config.redis;
import com.cool.store.model.utils.RedisUtilPool;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedisPool;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName RedisUtilConfig
* @Description 用一句话描述什么
*/
@Component
public class RedisUtilConfig {
@Value("${redis.host.uri}")
private String REDIS_HOST_URI;
@Bean
public RedisUtilPool redisUtilPool() {
RedisUtilPool redisUtil = new RedisUtilPool();
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(1024);
jedisPoolConfig.setMaxIdle(200);
jedisPoolConfig.setMaxWaitMillis(1000);
jedisPoolConfig.setTestOnBorrow(false);
List<JedisShardInfo> shards = new ArrayList<>();
JedisShardInfo jedisShardInfo = new JedisShardInfo(REDIS_HOST_URI);
shards.add(jedisShardInfo);
redisUtil.setShardedJedisPool(new ShardedJedisPool(jedisPoolConfig, shards));
return redisUtil;
}
}

View File

@@ -0,0 +1,37 @@
package com.cool.store.service.context;
import lombok.Data;
@Data
public class CurrentUser {
private String userId;
private String enterpriseId;
private String dingCorpId;
private String appType;
private String accessToken;
/**
* 员工角色
*/
private String roleIds;
private String dbName;
/**
* 钉钉管理员和数智门店无关
*/
private Boolean isAdmin;
/**
* 角色权限
*/
private String roleAuth;
private String mainCorpId;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.service.context;
import java.util.ArrayList;
import java.util.List;
public class DataSourceContext {
private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
private static List<String> dataSourceIds = new ArrayList<>();
public static void setDataSourceType(String dataSourceType) {
CONTEXT_HOLDER.set(dataSourceType);
}
public static String getDataSourceType() {
return CONTEXT_HOLDER.get();
}
public static void clearDataSourceType() {
CONTEXT_HOLDER.remove();
}
public static boolean containsDataSource(String dsId) {
return dataSourceIds.contains(dsId);
}
public static void setDataSourceIds(List<String> dids){
dataSourceIds = dids;
}
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.service.context;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;
/**
*
*/
public class UserContext {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static CurrentUser getUser() {
String userStr = contextHolder.get();
if (StringUtils.isNotBlank(userStr)) {
return JSON.parseObject(userStr, CurrentUser.class);
}
return new CurrentUser();
}
public static void setUser(String user) {
contextHolder.set(user);
}
public static void removeUser(){
contextHolder.remove();
}
}

View File

@@ -0,0 +1,39 @@
package com.cool.store.service.impl;
import com.cool.store.dao.EnterpriseConfigDAO;
import com.cool.store.model.entity.EnterpriseConfigDO;
import com.cool.store.service.EnterpriseConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @ClassName EnterpriseConfigServiceImpl
* @Description 用一句话描述什么
*/
@Service(value = "enterpriseConfigService")
@Slf4j
public class EnterpriseConfigServiceImpl implements EnterpriseConfigService {
@Resource
private EnterpriseConfigDAO enterpriseConfigDAO;
@Override
public EnterpriseConfigDO selectByEnterpriseId(String enterpriseId) {
return enterpriseConfigDAO.selectByEnterpriseId(enterpriseId);
}
@Override
public EnterpriseConfigDO getDbInfoByDbName(String dbName) {
return enterpriseConfigDAO.getDbInfoByDbName(dbName);
}
@Override
public List<EnterpriseConfigDO> getDistinctDbServer() {
return enterpriseConfigDAO.getDistinctDbServer();
}
}

View File

@@ -0,0 +1,50 @@
package com.cool.store.service.utils;
import com.cool.store.service.context.DataSourceContext;
import com.cool.store.service.context.UserContext;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
public class DataSourceHelper {
private static final Logger logger = LoggerFactory.getLogger(DataSourceHelper.class);
/**
* @param
* @return void
* @throws
* @Title changeToMy
* @Description 切换到自己的数据库
*/
public static void changeToMy() {
DataSourceContext.clearDataSourceType();
String dbName = UserContext.getUser().getDbName();
DataSourceContext.setDataSourceType(dbName);
}
/**
* @param datasource
* @return void
* @throws
* @Title changeToSpecificDataSource
* @Description 切换到指定的数据库
*/
public static void changeToSpecificDataSource(String datasource) {
DataSourceContext.clearDataSourceType();
String dbName = datasource;
DataSourceContext.setDataSourceType(dbName);
}
/**
* @param
* @return void
* @throws
* @Title reset
* @Description 重置链接到主库
*/
public static void reset() {
DataSourceContext.clearDataSourceType();
}
}