From 4021de5136327bf5d628efab65eadf6969006943 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 14 Jan 2019 18:18:57 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E5=BC=80=E6=94=BE=E5=B9=B3=E5=8F=B0][=E6=95=B4=E7=90=86]:?= =?UTF-8?q?=E6=95=B4=E7=90=86=E7=AC=AC=E4=B8=89=E6=96=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=88=B0=E6=96=B0=E7=9A=84module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkAdmin/pom.xml | 16 --- .../src/main/resources/application-dev.yml | 21 ---- .../src/main/resources/application-prod.yml | 23 ---- .../src/main/resources/application-test.yml | 21 ---- mallinkWechatOpen/pom.xml | 55 +++++++++ .../com/iformall/WechatOpenApplication.java | 33 ++++++ .../java/com/iformall/config/AwsProperty.java | 52 ++++++++ .../java/com/iformall/config/PayProperty.java | 24 ++++ .../java/com/iformall/config/RedisConfig.java | 112 ++++++++++++++++++ .../com/iformall/config/RedisProperies.java | 0 .../java/com/iformall/config/RestFilter.java | 58 +++++++++ .../iformall/config/RestTemplateConfig.java | 24 ++++ .../java/com/iformall/config/WebConfig.java | 79 ++++++++++++ .../iformall/config/WechatOpenProperties.java | 0 .../iformall/controller/BaseController.java | 45 +++++++ .../iformall/controller/HomeController.java | 27 +++++ .../controller/WechatAuthController.java | 8 -- .../controller/WechatCalllbackController.java | 0 .../controller/WechatWeappCodeController.java | 0 .../WechatWeappDraftTemplateController.java | 11 -- .../WechatWeappMsgTemplateController.java | 0 .../controller/WechatWeappSetController.java | 0 .../wechat/WxOpenInRedisDBConfigStorage.java | 2 - .../service/wechat/WxOpenService.java | 0 .../src/main/resources/application-dev.yml | 90 ++++++++++++++ .../src/main/resources/application-prod.yml | 84 +++++++++++++ .../src/main/resources/application-test.yml | 84 +++++++++++++ .../src/main/resources/application.yml | 58 +++++++++ .../src/main/resources/logback-spring.xml | 100 ++++++++++++++++ pom.xml | 1 + 30 files changed, 926 insertions(+), 102 deletions(-) create mode 100644 mallinkWechatOpen/pom.xml create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/WechatOpenApplication.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/AwsProperty.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/PayProperty.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/config/RedisProperies.java (100%) create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/RestFilter.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/RestTemplateConfig.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/config/WebConfig.java rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/config/WechatOpenProperties.java (100%) create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/controller/BaseController.java create mode 100644 mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatAuthController.java (91%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatCalllbackController.java (100%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatWeappCodeController.java (100%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java (80%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatWeappMsgTemplateController.java (100%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/controller/WechatWeappSetController.java (100%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java (98%) rename {mallinkAdmin => mallinkWechatOpen}/src/main/java/com/iformall/service/wechat/WxOpenService.java (100%) create mode 100644 mallinkWechatOpen/src/main/resources/application-dev.yml create mode 100644 mallinkWechatOpen/src/main/resources/application-prod.yml create mode 100644 mallinkWechatOpen/src/main/resources/application-test.yml create mode 100644 mallinkWechatOpen/src/main/resources/application.yml create mode 100644 mallinkWechatOpen/src/main/resources/logback-spring.xml diff --git a/mallinkAdmin/pom.xml b/mallinkAdmin/pom.xml index e692e554e..43afbdba7 100644 --- a/mallinkAdmin/pom.xml +++ b/mallinkAdmin/pom.xml @@ -28,28 +28,12 @@ mybatis-multi-tenancy 1.0 - - com.github.binarywang - weixin-java-mp - ${weixin-java-mp.version} - - - com.github.binarywang - weixin-java-open - ${weixin-java-open.version} - commons-fileupload commons-fileupload 1.3.3 - - com.google.zxing - core - 3.3.3 - - diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index 445a98188..2a40736d2 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -57,27 +57,6 @@ aws: access: ENC(3gx5ghDFBqGrEhO3Wf8aYmXsnwHO7Cj3HNKJGOeUj0o=) secret: ENC(HVKIJwCJKVXLlUpGlQPwNqJOlnpxn4xYuy91SH0seTSm2uAttIQHvA49fXWWax90v5wloIk0QuU=) -wechat: - open: - componentAppId: "wx897e4673286c915d" - componentSecret: "cdfdfda65c45689beb6766c4c427eed2" - componentToken: "formall2018" - componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" - redis: - host: 202.165.179.86 - port: 6379 - password: ENC(aYJ3Wr2UWtkORRQjjrWWpz2ZeTISsHOA) - timeout: 3600 - expire: 1800 #30分钟 - database: 1 - defaultExpiration: 2592000 # 默认生命周期30天 - jedis: - pool: - max-active: 100 - max-idle: 500 - max-wait: -1 - min-idle: 10 - jasypt: encryptor: password: oRqdnDbK5pj3eMmB diff --git a/mallinkAdmin/src/main/resources/application-prod.yml b/mallinkAdmin/src/main/resources/application-prod.yml index 65e4a613e..ea4b08fe5 100644 --- a/mallinkAdmin/src/main/resources/application-prod.yml +++ b/mallinkAdmin/src/main/resources/application-prod.yml @@ -53,29 +53,6 @@ aws: access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) - -wechat: - open: - componentAppId: "wx897e4673286c915d" - componentSecret: "cdfdfda65c45689beb6766c4c427eed2" - componentToken: "formall2018" - componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" - redis: - host: 127.0.0.1 - port: 6379 - password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) - timeout: 3600 - expire: 1800 #30分钟 - database: 1 - defaultExpiration: 2592000 # 默认生命周期30天 - jedis: - pool: - max-active: 100 - max-idle: 100 - max-wait: -1 - min-idle: 10 - - fm: exception: true diff --git a/mallinkAdmin/src/main/resources/application-test.yml b/mallinkAdmin/src/main/resources/application-test.yml index 62dca6087..ff190301e 100644 --- a/mallinkAdmin/src/main/resources/application-test.yml +++ b/mallinkAdmin/src/main/resources/application-test.yml @@ -53,27 +53,6 @@ aws: access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) -wechat: - open: - componentAppId: "wx897e4673286c915d" - componentSecret: "cdfdfda65c45689beb6766c4c427eed2" - componentToken: "formall2018" - componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" - redis: - host: 127.0.0.1 - port: 6379 - password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) - timeout: 3600 - expire: 1800 #30分钟 - database: 1 - defaultExpiration: 2592000 # 默认生命周期30天 - jedis: - pool: - max-active: 100 - max-idle: 100 - max-wait: -1 - min-idle: 10 - fm: exception: true diff --git a/mallinkWechatOpen/pom.xml b/mallinkWechatOpen/pom.xml new file mode 100644 index 000000000..49d563723 --- /dev/null +++ b/mallinkWechatOpen/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + + mallink + com.iformall + 1.0 + + + mallinkWechatOpen + + + 3.3.0 + 3.3.0 + + + + + com.iformall + mallinkService + 1.0 + + + com.github.binarywang + weixin-java-open + ${weixin-java-open.version} + + + com.github.binarywang + weixin-java-mp + ${weixin-java-mp.version} + + + com.google.zxing + core + 3.3.3 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + + \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/java/com/iformall/WechatOpenApplication.java b/mallinkWechatOpen/src/main/java/com/iformall/WechatOpenApplication.java new file mode 100644 index 000000000..65f505c8a --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/WechatOpenApplication.java @@ -0,0 +1,33 @@ +package com.iformall; + +import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import springfox.documentation.swagger2.annotations.EnableSwagger2; +import tk.mybatis.spring.annotation.MapperScan; + +/** + * @author stormeye + * @date 2019-01-14 + */ +@SpringBootApplication +@MapperScan(basePackages = {"com.iformall.mapper"}) +@EnableSwagger2 +@EnableEncryptableProperties +public class WechatOpenApplication { + + @Value("${fm.exception}") + private boolean fmException; + + @Bean + public boolean isFmException() { + return fmException; + } + + + public static void main(String[] args) { + SpringApplication.run(WechatOpenApplication.class, args); + } +} diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/AwsProperty.java b/mallinkWechatOpen/src/main/java/com/iformall/config/AwsProperty.java new file mode 100644 index 000000000..0329f1d6d --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/AwsProperty.java @@ -0,0 +1,52 @@ +package com.iformall.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author Stormeye + */ +@Component +@ConfigurationProperties(prefix = "aws") +public class AwsProperty { + // AWS ACCESS KEY + private String access; + + private String secret; + + private String clientRegion; + + private String bucketName; + + public String getAccess() { + return access; + } + + public void setAccess(String access) { + this.access = access; + } + + public String getSecret() { + return secret; + } + + public void setSecret(String secret) { + this.secret = secret; + } + + public String getClientRegion() { + return clientRegion; + } + + public void setClientRegion(String clientRegion) { + this.clientRegion = clientRegion; + } + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } +} diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/PayProperty.java b/mallinkWechatOpen/src/main/java/com/iformall/config/PayProperty.java new file mode 100644 index 000000000..5cb7f4915 --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/PayProperty.java @@ -0,0 +1,24 @@ +package com.iformall.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * @author Stormeye + */ +@Component +@ConfigurationProperties(prefix = "pay") +public class PayProperty { + /** + * 真实支付 + */ + private boolean real; + + public boolean isReal() { + return real; + } + + public void setReal(boolean real) { + this.real = real; + } +} diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java b/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java new file mode 100644 index 000000000..2e6e9bc63 --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java @@ -0,0 +1,112 @@ +package com.iformall.config; + +import com.iformall.domain.po.PushLimit; +import com.iformall.domain.po.WxScoreRules; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.CachingConfigurerSupport; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.cache.RedisCacheWriter; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.Duration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * Created by Stormeye on 2018/10/1. + */ +@Configuration +@EnableCaching +public class RedisConfig extends CachingConfigurerSupport { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + //缓存管理器 + @Bean + public CacheManager cacheManager(RedisConnectionFactory connectionFactory) { + /* + //user信息缓存配置 + RedisCacheConfiguration userCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(10)).disableCachingNullValues().prefixKeysWith("user"); + Map redisCacheConfigurationMap = new HashMap<>(); + redisCacheConfigurationMap.put("user", userCacheConfiguration); + //初始化一个RedisCacheWriter + RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory); + // 设置CacheManager的值序列化方式为JdkSerializationRedisSerializer,但其实RedisCacheConfiguration默认就是使用StringRedisSerializer序列化key,JdkSerializationRedisSerializer序列化value,所以以下注释代码为默认实现 + // ClassLoader loader = this.getClass().getClassLoader(); + // JdkSerializationRedisSerializer jdkSerializer = new JdkSerializationRedisSerializer(loader); + // RedisSerializationContext.SerializationPair pair = RedisSerializationContext.SerializationPair.fromSerializer(jdkSerializer); + // RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig().serializeValuesWith(pair); + RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig(); + //设置默认超过期时间是30秒 + defaultCacheConfig.entryTtl(Duration.ofSeconds(30)); + //初始化RedisCacheManager + RedisCacheManager cacheManager = new RedisCacheManager(redisCacheWriter, defaultCacheConfig, redisCacheConfigurationMap); + return cacheManager; + */ + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); // 生成一个默认配置,通过config对象即可对缓存进行自定义配置 + config = config.entryTtl(Duration.ofMinutes(1)) // 设置缓存的默认过期时间,也是使用Duration设置 + .disableCachingNullValues(); // 不缓存空值 + + // 设置一个初始化的缓存空间set集合 + Set cacheNames = new HashSet<>(); + cacheNames.add("my-redis-cache1"); + cacheNames.add("my-redis-cache2"); + + // 对每个缓存空间应用不同的配置 + Map configMap = new HashMap<>(); + configMap.put("my-redis-cache1", config); + configMap.put("my-redis-cache2", config.entryTtl(Duration.ofSeconds(120))); + + RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFactory) // 使用自定义的缓存配置初始化一个cacheManager + .initialCacheNames(cacheNames) // 注意这两句的调用顺序,一定要先调用该方法设置初始化的缓存名,再初始化相关的配置 + .withInitialCacheConfigurations(configMap) + .build(); + return cacheManager; + } + + @Bean("pushLimitRedisTemplate") + public RedisTemplate getPushLimitRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(PushLimit.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + + @Bean("scoreRuleRedisTemplate") + public RedisTemplate getScoreRuleRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxScoreRules.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/config/RedisProperies.java b/mallinkWechatOpen/src/main/java/com/iformall/config/RedisProperies.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/config/RedisProperies.java rename to mallinkWechatOpen/src/main/java/com/iformall/config/RedisProperies.java diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/RestFilter.java b/mallinkWechatOpen/src/main/java/com/iformall/config/RestFilter.java new file mode 100644 index 000000000..4f9298433 --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/RestFilter.java @@ -0,0 +1,58 @@ +package com.iformall.config; + +import java.io.IOException; +import java.util.Optional; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * 前后端分离RESTful接口过滤器 + * + * @author xuguoqin + * + */ +public class RestFilter implements Filter { + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + HttpServletRequest req = null; + if (request instanceof HttpServletRequest) { + req = (HttpServletRequest) request; + } + HttpServletResponse res = null; + if (response instanceof HttpServletResponse) { + res = (HttpServletResponse) response; + } + if (req != null && res != null) { + //设置允许传递的参数 + res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); + //设置允许带上cookie + res.setHeader("Access-Control-Allow-Credentials", "true"); + String origin = Optional.ofNullable(req.getHeader("Origin")).orElse(req.getHeader("Referer")); + //设置允许的请求来源 + res.setHeader("Access-Control-Allow-Origin", origin); + //设置允许的请求方法 + res.setHeader("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS"); + } + chain.doFilter(request, response); + } + + @Override + public void destroy() { + + } + +} \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/RestTemplateConfig.java b/mallinkWechatOpen/src/main/java/com/iformall/config/RestTemplateConfig.java new file mode 100644 index 000000000..560a77cb5 --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/RestTemplateConfig.java @@ -0,0 +1,24 @@ +package com.iformall.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory factory) { + return new RestTemplate(factory); + } + + @Bean + public ClientHttpRequestFactory simpleClientHttpRequestFactory() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setReadTimeout(5000);//ms + factory.setConnectTimeout(10000);//ms + return factory; + } +} \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/WebConfig.java b/mallinkWechatOpen/src/main/java/com/iformall/config/WebConfig.java new file mode 100644 index 000000000..48708f36e --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/WebConfig.java @@ -0,0 +1,79 @@ +package com.iformall.config; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationConfig; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.text.SimpleDateFormat; +import java.util.List; + +@Configuration +@EnableWebMvc +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("swagger-ui.html") + .addResourceLocations("classpath:/META-INF/resources/"); + registry.addResourceHandler("/webjars/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/"); + //registry.addResourceHandler("/app/**").addResourceLocations("classpath:/app/"); + + } + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins("*") + .allowCredentials(true) + .allowedMethods("GET", "POST", "DELETE", "PUT") + .maxAge(3600); + } + + @Override + public void configureMessageConverters(List> converters) { + MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); + //ObjectMapper 是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然 + ObjectMapper objectMapper = new ObjectMapper(); + SimpleModule simpleModule = new SimpleModule(); + + //不显示为null的字段 + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + DeserializationConfig dc = objectMapper.getDeserializationConfig(); + // 设置反序列化日期格式、忽略不存在get、set的属性 + objectMapper.setConfig( + dc.with(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")) + .without(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) + ); + + //序列化将Long转String类型 + simpleModule.addSerializer(Long.class, ToStringSerializer.instance); + simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); + SimpleModule bigIntegerModule = new SimpleModule(); + //序列化将BigInteger转String类型 + bigIntegerModule.addSerializer(BigInteger.class, ToStringSerializer.instance); + SimpleModule bigDecimalModule = new SimpleModule(); + //序列化将BigDecimal转String类型 + bigDecimalModule.addSerializer(BigDecimal.class, ToStringSerializer.instance); + objectMapper.registerModule(simpleModule); + objectMapper.registerModule(bigDecimalModule); + objectMapper.registerModule(bigIntegerModule); + jackson2HttpMessageConverter.setObjectMapper(objectMapper); + converters.add(jackson2HttpMessageConverter); + } + + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/config/WechatOpenProperties.java b/mallinkWechatOpen/src/main/java/com/iformall/config/WechatOpenProperties.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/config/WechatOpenProperties.java rename to mallinkWechatOpen/src/main/java/com/iformall/config/WechatOpenProperties.java diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/BaseController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/BaseController.java new file mode 100644 index 000000000..c77080fde --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/BaseController.java @@ -0,0 +1,45 @@ +package com.iformall.controller; + +import com.iformall.utils.IPUtil; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.beans.PropertyEditorSupport; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +@RestController +public class BaseController { + @InitBinder + public void InitBinder(WebDataBinder dataBinder) { + dataBinder.registerCustomEditor(Date.class, new PropertyEditorSupport() { + public void setAsText(String value) { + try { + setValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(value)); + } catch(ParseException e) { + try { + setValue(new SimpleDateFormat("yyyy-MM-dd ").parse(value)); + } catch (ParseException e1) { + setValue(null); + } + } + } + + public String getAsText() { + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((Date) getValue()); + } + + }); + } + + public String getIpAddr() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String ipaddress = IPUtil.getIpAddr(request); + return ipaddress; + } +} diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java new file mode 100644 index 000000000..6ace453ad --- /dev/null +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java @@ -0,0 +1,27 @@ +package com.iformall.controller; + +import com.iformall.common.ResultData; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +@Api(description = "登录相关接口") +public class HomeController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Value("${version}") + private String version; + + + @ApiOperation("获取后端版本号") + @GetMapping("/version") + public ResultData version() { + return new ResultData(version); + } +} \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatAuthController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatAuthController.java similarity index 91% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatAuthController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatAuthController.java index 8fa59c846..d190d1cbd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatAuthController.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatAuthController.java @@ -1,18 +1,11 @@ package com.iformall.controller; -import com.iformall.common.ErrorCode; -import com.iformall.common.Result; -import com.iformall.common.ResultData; import com.iformall.domain.po.WxAuthorizerInfo; -import com.iformall.enums.EnumWxAuthorizationInfoType; import com.iformall.enums.EnumWxAuthorizationStatus; import com.iformall.service.WxAuthorizerInfoService; import com.iformall.service.wechat.WxOpenService; import io.swagger.annotations.Api; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.open.api.WxOpenMaService; -import me.chanjar.weixin.open.bean.WxOpenMaCodeTemplate; -import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo; import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult; import org.slf4j.Logger; @@ -24,7 +17,6 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.List; /** * Stormeye Wu diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappCodeController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappCodeController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java similarity index 80% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java index d4f793554..fde7f7b08 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappDraftTemplateController.java @@ -2,26 +2,15 @@ package com.iformall.controller; import com.iformall.common.Result; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxAuthorizerInfo; -import com.iformall.enums.EnumWxAuthorizationStatus; -import com.iformall.service.WxAuthorizerInfoService; import com.iformall.service.wechat.WxOpenService; import io.swagger.annotations.Api; import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.open.api.WxOpenMaService; import me.chanjar.weixin.open.bean.WxOpenMaCodeTemplate; -import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo; -import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult; -import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.List; /** diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappMsgTemplateController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappMsgTemplateController.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappMsgTemplateController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappMsgTemplateController.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappSetController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappSetController.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/controller/WechatWeappSetController.java rename to mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappSetController.java diff --git a/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java b/mallinkWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java similarity index 98% rename from mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java rename to mallinkWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java index 37a301c9a..2a0639377 100644 --- a/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenInRedisDBConfigStorage.java @@ -1,7 +1,5 @@ package com.iformall.service.wechat; -import com.iformall.common.IdWorker; -import com.iformall.domain.po.WxComponentVerifyTicket; import com.iformall.mapper.WxComponentVerifyTicketMapper; import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage; import org.apache.commons.lang3.StringUtils; diff --git a/mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java b/mallinkWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenService.java similarity index 100% rename from mallinkAdmin/src/main/java/com/iformall/service/wechat/WxOpenService.java rename to mallinkWechatOpen/src/main/java/com/iformall/service/wechat/WxOpenService.java diff --git a/mallinkWechatOpen/src/main/resources/application-dev.yml b/mallinkWechatOpen/src/main/resources/application-dev.yml new file mode 100644 index 000000000..f9a23e431 --- /dev/null +++ b/mallinkWechatOpen/src/main/resources/application-dev.yml @@ -0,0 +1,90 @@ +spring: + # JDBC + datasource: + url: jdbc:mysql://202.165.179.86:3306/mallinkDev?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false + username: ENC(dZ8fmrtuBMQYaRytKQgTqg==) + password: ENC(WGu0+1DPIHrqorDhrbq1+7wr7xNG53mN) + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + filters: stat + maxActive: 20 + initialSize: 1 + maxWait: 60000 + minIdle: 1 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxOpenPreparedStatements: 20 + connectionProperties: "druid.stat.mergeSql=true;druid.stat.slowSqlMillis=6000" + #jackson: + #date-format: yyyy-MM-dd HH:mm:ss + + # REDIS + redis: + host: 202.165.179.86 + port: 6379 + password: ENC(aYJ3Wr2UWtkORRQjjrWWpz2ZeTISsHOA) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 50 + max-idle: 50 + max-wait: -1 + min-idle: 10 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(R0bER9E9OB9/YQcpNXMyYDwofNVb8/pFl4nrApS8mi0=) + password: ENC(50YqJd0iK/2r2YnmEd5RKaki3ktU73UDapBJrVYfqmc=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(3gx5ghDFBqGrEhO3Wf8aYmXsnwHO7Cj3HNKJGOeUj0o=) + secret: ENC(HVKIJwCJKVXLlUpGlQPwNqJOlnpxn4xYuy91SH0seTSm2uAttIQHvA49fXWWax90v5wloIk0QuU=) + +wechat: + open: + componentAppId: "wx897e4673286c915d" + componentSecret: "cdfdfda65c45689beb6766c4c427eed2" + componentToken: "formall2018" + componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" + redis: + host: 202.165.179.86 + port: 6379 + password: ENC(aYJ3Wr2UWtkORRQjjrWWpz2ZeTISsHOA) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 100 + max-idle: 500 + max-wait: -1 + min-idle: 10 + +jasypt: + encryptor: + password: oRqdnDbK5pj3eMmB + +fm: + exception: false + +logging: + level: + tk.mybatis: debug + com.iformall.mapper: debug + path: ./logs/s diff --git a/mallinkWechatOpen/src/main/resources/application-prod.yml b/mallinkWechatOpen/src/main/resources/application-prod.yml new file mode 100644 index 000000000..dc8b46f5a --- /dev/null +++ b/mallinkWechatOpen/src/main/resources/application-prod.yml @@ -0,0 +1,84 @@ +spring: + # JDBC + datasource: + url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallink?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false + username: ENC(NUzgQOdJnCbVLKT6BaX0aw==) + password: ENC(mvuoDRiu0jqYaKNRwwTuXZ6U7aoIaqsjdiPqTLgi/nY=) + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + filters: stat + maxActive: 20 + initialSize: 1 + maxWait: 60000 + minIdle: 1 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxOpenPreparedStatements: 20 + connectionProperties: "druid.stat.mergeSql=true;druid.stat.slowSqlMillis=6000" + # REDIS + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 8 + max-idle: 8 + max-wait: -1 + min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(I2YKxnRVPY7J1r/bwzwHOhQCjj3nVqCWEbVTJvBq7y0=) + password: ENC(APQMO9XQRzMKd0eap+oSSOYH9MQe/r5K0YFF9A9mizU=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) + secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) + +wechat: + open: + componentAppId: "wx897e4673286c915d" + componentSecret: "cdfdfda65c45689beb6766c4c427eed2" + componentToken: "formall2018" + componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 100 + max-idle: 100 + max-wait: -1 + min-idle: 10 + +fm: + exception: true + +logging: + level: + tk.mybatis: debug + com.iformall: debug + path: ./logs/s \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/resources/application-test.yml b/mallinkWechatOpen/src/main/resources/application-test.yml new file mode 100644 index 000000000..abc43c508 --- /dev/null +++ b/mallinkWechatOpen/src/main/resources/application-test.yml @@ -0,0 +1,84 @@ +spring: + # JDBC + datasource: + url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false + username: ENC(Uc0AjgkytxHHCwZrmDASWg==) + password: ENC(nV4Mi3bEbBx0Fj7uUyYH55eTaqsFMjKvmNzagicH4pc=) + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + filters: stat + maxActive: 20 + initialSize: 1 + maxWait: 60000 + minIdle: 1 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxOpenPreparedStatements: 20 + connectionProperties: "druid.stat.mergeSql=true;druid.stat.slowSqlMillis=6000" + # REDIS + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 8 + max-idle: 8 + max-wait: -1 + min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(HFbRXtAFVxU36Hk0yT3reyvRuLrw3RhMlbxFj9Ev/VY=) + password: ENC(pk4+/3C5n2hMYmgi+VTqI4P1m77DllW8y4KElMXXmIo=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) + secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) + +wechat: + open: + componentAppId: "wx897e4673286c915d" + componentSecret: "cdfdfda65c45689beb6766c4c427eed2" + componentToken: "formall2018" + componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 100 + max-idle: 100 + max-wait: -1 + min-idle: 10 + +fm: + exception: true + +logging: + level: + tk.mybatis: debug + com.iformall: debug + path: ./logs/s \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/resources/application.yml b/mallinkWechatOpen/src/main/resources/application.yml new file mode 100644 index 000000000..b0669d88a --- /dev/null +++ b/mallinkWechatOpen/src/main/resources/application.yml @@ -0,0 +1,58 @@ +server: + port: 6000 + servlet: + context-path: /O + +spring: + application: + name: mallink + profiles: + active: dev + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + default-property-inclusion: non_null + servlet: + multipart: + max-file-size: 2MB + max-request-size: 2MB + cache: + type: REDIS + cache-names: redis_cache #缓存的名字(可以不指定) + redis: + time-to-live: 60000ms #很重要,缓存的有效时间,以便缓存的过期(单位为毫秒) + + + +# @{link} https://github.com/abel533 +#Mybatis +mybatis: + type-aliases-package: com.iformall.domain.po + mapper-locations: classpath:mapper/*Mapper.xml + configuration: + map-underscore-to-camel-case: true + cache-enabled: true + lazy-loading-enabled: true + use-generated-keys: true + default-fetch-size: 100 + default-statement-timeout: 10 + +#PageHelper +pagehelper: + helperDialect: mysql + reasonable: false + supportMethodsArguments: true + params: count=countSql + offset-as-page-num: true + page-size-zero: true + row-bounds-with-count: true + +mapper: + mappers: + - com.iformall.common.CommonMapper + +pay: + real: true + + +version: @project.version@ \ No newline at end of file diff --git a/mallinkWechatOpen/src/main/resources/logback-spring.xml b/mallinkWechatOpen/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..0499e2c57 --- /dev/null +++ b/mallinkWechatOpen/src/main/resources/logback-spring.xml @@ -0,0 +1,100 @@ + + + + + + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client}%msg%n + + + + + ${logPath}/trace.log + + ${logPath}/daily/trace.%d{yyyy-MM-dd}.log + 180 + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + + + ${logPath}/info.log + + ${logPath}/daily/info.%d{yyyy-MM-dd}.log + 180 + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + INFO + ACCEPT + DENY + + + + + ${logPath}/debug.log + + ${logPath}/daily/debug.%d{yyyy-MM-dd}.log + 180 + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + DEBUG + ACCEPT + DENY + + + + + + ${logPath}/warn.log + + ${logPath}/daily/warn.%d{yyyy-MM-dd}.log + 180 + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + WARN + ACCEPT + DENY + + + + + + + ${logPath}/error.log + + ${logPath}/daily/error.%d{yyyy-MM-dd}.log + 180 + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 706ac09fd..41d6f03dd 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ mallinkCApi mallinkBApi mallinkSchedule + mallinkWechatOpen