service-vip/src/main/java/com/ks/vip/config/RedisConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/main/resources/application-pro.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/main/resources/application-test.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/main/resources/logback.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/main/resources/wx/apiclient_key.pem | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/test/java/com/ks/LogTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/test/java/com/ks/OrderTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/test/java/com/ks/RedisTest.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
service-vip/src/main/java/com/ks/vip/config/RedisConfig.java
New file @@ -0,0 +1,73 @@ package com.ks.vip.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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 redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; @Configuration public class RedisConfig { Logger log = LoggerFactory.getLogger(RedisConfig.class); @Value("${spring.redis.jedis.pool.max-total}") private int maxTotal; @Value("${spring.redis.jedis.pool.max-idle}") private int maxIdle; private boolean testOnBorrow = true; @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private String timeout; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.database}") private int database; @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } @Bean public JedisPool jedisPool() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(maxTotal); config.setMaxIdle(maxIdle); config.setTestOnBorrow(testOnBorrow); JedisPool jedisPool = new JedisPool(config, host, port, Integer.parseInt(timeout.replace("ms", "")), password, database); return jedisPool; } } service-vip/src/main/resources/application-pro.yml
New file @@ -0,0 +1,107 @@ server: port: 80 tomcat: uri-encoding: UTF-8 spring: main: allow-bean-definition-overriding: true http: encoding: force: true charset: UTF-8 enabled: true data: mongodb: username: yeshi password: Yeshi2016@ host: 172.16.16.44 port: 27017 database: tejia-vip authentication-database: admin datasource: #gz-cdb-r13d0yi9.sql.tencentcdb.com:62929 #172.16.16.17:3306 url: jdbc:mysql://172.16.16.17:3306/ec_tejia_vip?&useTimezone=true&serverTimezone=GMT%2B8 username: root password: Yeshi2016@ driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 8 min-idle: 1 max-active: 20 max-wait: 60000 time-between-eviction-runsMillis: 60000 min-evictable-idle-timeMillis: 300000 validation-query: select 'x' FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-open-prepared-statements: 20 max-pool-prepared-statement-per-connection-size: 20 filters: stat connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 use-global-data-source-stat: true redis: host: 172.16.16.15 port: 6379 password: crs-43yhgz0i:Yeshi2016@ timeout: 5000ms database: 9 lettuce: pool: max-active: 1024 max-wait: 3000ms max-idle: 200 time-between-eviction-runs: 300000ms min-idle: 2 jedis: pool: max-total: 1024 max-wait: 3000 max-idle: 20 time-between-eviction-runs: 300000 min-idle: 2 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.ks.vip.pojo.DO configuration: log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl dubbo: application: name: tejia-vip-provider registry: protocol: zookeeper address: zookeeper://172.16.16.26:2181 client: curator protocol: name: dubbo port: 20902 scan: base-packages: com.ks.vip.service.remote provider: timeout: 10000 # host: 193.112.35.168 xxl: job: accessToken: executor: appname: demo ip: logpath: /data/applogs/xxl-job/jobhandler logretentiondays: -1 port: 9993 admin: addresses: http://111.231.250.166:9000/xxl-job-admin logging: level: com: ks: vip: mapper: debug org.springframework.data.mongodb.core: DEBUG service-vip/src/main/resources/application-test.yml
New file @@ -0,0 +1,102 @@ server: port: 8089 tomcat: uri-encoding: UTF-8 spring: main: allow-bean-definition-overriding: true http: encoding: force: true charset: UTF-8 enabled: true data: mongodb: username: admin password: admin #172.16.16.44 #193.112.35.168 host: 118.195.138.153 port: 27017 database: lijin authentication-database: admin datasource: #gz-cdb-r13d0yi9.sql.tencentcdb.com:62929 #172.16.16.17:3306 url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ec_tejia_vip?&useTimezone=true&serverTimezone=GMT%2B8 username: root password: Yeshi2016@ driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 8 min-idle: 1 max-active: 20 max-wait: 60000 time-between-eviction-runsMillis: 60000 min-evictable-idle-timeMillis: 300000 validation-query: select 'x' FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-open-prepared-statements: 20 max-pool-prepared-statement-per-connection-size: 20 filters: stat connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 use-global-data-source-stat: true redis: #172.16.16.3 #193.112.34.40 host: 193.112.34.40 port: 6379 password: weikou2014 timeout: 5000ms jedis: pool: max-wait: 10000 max-idle: 200 max-total: 1024 database: 9 mybatis: mapper-locations : classpath:mapper/*.xml type-aliases-package: com.ks.vip.pojo.DO configuration: log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl dubbo: application: name: lijin-provider registry: protocol: zookeeper address: zookeeper://193.112.35.168:2181 client: curator protocol: name: dubbo port: 20903 scan: base-packages: com.ks.vip.service.remote provider: timeout: 10000 host: 127.0.0.1 xxl: job: accessToken: executor: appname: demo ip: logpath: /data/applogs/xxl-job/jobhandler logretentiondays: -1 port: 9999 admin: addresses: http://localhost:8081/xxl-job-admin logging: level: com: ks: vip: mapper: debug org.springframework.data.mongodb.core: DEBUG service-vip/src/main/resources/logback.xml
@@ -14,8 +14,8 @@ <!--日志存储的根路径 ${catalina.base}指向每个Tomcat目录私有信息的位置, 就是conf、logs、temp、webapps和work的父目录--> <!-- E:/logback --> <property name="log.filePath" value="/tmp/logs/lucky"/> <property name="log.filePath" value="/tmp/logs"/> <!--<property name="log.filePath" value="D:/logs"/>--> <!--日志展示的格式--> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/> @@ -25,6 +25,18 @@ <!--encoder作用是既把日志信息转换为字符串,也输出到指定的位置 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--pattern为配置输出的格式--> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- INFO --> <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.filePath}/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.filePath}/info/info.log.gz.%d{yyyy-MM-dd}</fileNamePattern> <maxHistory>${log.maxHistory}</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${log.pattern}</pattern> </encoder> </appender> @@ -95,6 +107,7 @@ <root level="INFO"> <!--在控制台中输出所在层级对应level(以及大于level)的日志信息,因为这里并没有设置LevelFilter--> <appender-ref ref="STDOUT"></appender-ref> <appender-ref ref="infoAppender"></appender-ref> <appender-ref ref="errorAppender"></appender-ref> </root> </configuration> service-vip/src/main/resources/wx/apiclient_key.pem
New file @@ -0,0 +1,28 @@ -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMD+LQJ3LJJZAR +ix+XEO6GjClzau5unLZQNNF6KwqISV/x2oyIFwV7rNvmVNByfA3OcxZKTsW4iXT 1DI5v7cUr4dwRgOLxya7IBaziJEQ70IHqmPVjf2aR381HvF4t4ILS1PDhlHEqNXY onCDhqDbjCGcboV21wd7+borEWst6Kx8qud59Duv8bwcmwshSQFX7k/nyqmn8DWQ JXB8GwZUQy7i9xtnAvhjgzsaUcSj5GH8NRmuW8bb2uPOlYZ5BwuEd25zq7cy1Y94 Ji3ZX3QCl3KXk1QluxRM/hMJAnBgRok+BdTR62xmsDDpdfXgjYMzxDarB2keCnZa A9AM7wvZAgMBAAECggEARd4+k3SeSZ6x2GXm7BDdI5AqDesAnCPphNc8P1ht8jLN KxX1F1qbDOtgxpohtonU1KPWgsSqNaiSuReTZtBseAmtftSKDEbQzQssmqXsvXae Dg/aBNmL9lH6jQ6eMO3r+b/92xlXT9Va+sSLb40d8G3naC8zRUBUkK8tfeeF4f6G jcdZOvDLEb3CzULxT+l9gVhJ4fUvolPZqGFHsW0j+j73YMviatKUN21s0vnJt/xp z3kcyIAKa7f7fy+WsDUudbkq1aVTU4Aq11Wv5AcMRx1PT5rF7XXafW27hbf09Mal oMd3E9YS5dOo/7dIcEjZqi1nPA/iUzGLrFU1rFvPcQKBgQD0HTcf7BVdolp45RaZ BRv2Bg/m+KPT5pzHIrfme/0ccrel2td9lNHXrjMiUWngBMWN+gB6hUeeyXcnB7Tv c+NmnPGPC/cIO/zRF0sj/6Sv1T6I7pqF6OqeBlL1DWPxdKJCdBx4x/b0G+Mi42pB n+rX1MMFKny8/+Re/O9Q/LOUxQKBgQDV/3AMe3fS5pM0zrJzVRuPsmlgdGeVhK7f UGHMdaPNNN/5tPN2XJdK1EHj3dtNI6pQN22VHSLFoPuBR03dLK7s6tAaT3Xg+2Si ItT0fyUmJzyo8H38G/uHy+5WeUH8fN4gHqeFgY/nuOCTurji9Ai4jEA12tzykM7L GQdI9PLUBQKBgDB7fO9CHBw0mnNYTFynvx3lplLhHuh+7LRAGPYVufdkcUTnadTv MZ38Yvt13+k2CWZhOKccwVSv/pIp3a2Q/qDqmq8mWTGxeEyuq6XCqBqj53+ao+Xk lHQ+HUu+FRNnbrJ0DROP42QoBbxwHjJaaHHlN7ZW8d83k0uqQH19Ms1hAoGBAJpk n7+xuMKlbmF0G1WQesES9GoNscozH0Oop9aurU5ZLprnDZxAszrepucy4ozmBXO4 ecxSaArz2WDtQ+Ul3tK5mwjQeXinh3Re8wuvS+sZ9e7hC9Q/kBrqa/thotT6dfvw geaVknCZdxW+arP7Yuta7NyuGii7hycK2LGvYB7NAoGAYTdxBkLw0jIseDPYbMsA TRo7HVfleduhUZdNfrjQokJbsbEeLbHb1DFM/BH99xAQ/Kv6L/tXXoExLHbU4xQq nwT6DLzn9pTbAhbSqVQE8H0oelJQLxjyk/d8fNutIiSmhXaHpc++LycHgfBDgOpf 00bxvSPu1/7qJ1dN0jwxPxA= -----END PRIVATE KEY----- service-vip/src/test/java/com/ks/LogTest.java
New file @@ -0,0 +1,16 @@ package com.ks; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LogTest { Logger logger = LoggerFactory.getLogger(LogTest.class); @Test public void test1() { logger.info("123123"); } } service-vip/src/test/java/com/ks/OrderTest.java
New file @@ -0,0 +1,39 @@ package com.ks; import com.ks.vip.VIPApplication; import com.ks.vip.exception.VipOrderException; import com.ks.vip.pojo.DTO.VipOrderDTO; import com.ks.vip.pojo.Enums.PayWayEnum; import com.ks.vip.service.VipOrederPayService; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.math.BigDecimal; @SpringBootTest(classes = VIPApplication.class) public class OrderTest { @Resource private VipOrederPayService vipOrederPayService; @Test public void addAlipayOrder() { String notifuUrl = "http://api.tejia.yeshitv.com/fanli/client/v1/callback/alipay"; String resturnUrl = "http://192.168.3.122:8848/tejia-web/vip/index.html"; VipOrderDTO dto = new VipOrderDTO(); dto.setUid("tejia-6845887"); dto.setComboId(1l); dto.setPayAccount(null); dto.setPayMoney(new BigDecimal("19.9")); dto.setPayWay(PayWayEnum.weChat); dto.setThreeOrderId("tejia-vip-" + System.currentTimeMillis()); try { vipOrederPayService.addOrderWithPay(dto, notifuUrl, resturnUrl,"192.168.3.122"); } catch (VipOrderException e) { e.printStackTrace(); } } } service-vip/src/test/java/com/ks/RedisTest.java
New file @@ -0,0 +1,50 @@ package com.ks; import com.ks.vip.VIPApplication; import com.ks.vip.exception.VipOrderException; import com.ks.vip.pojo.DTO.VipOrderDTO; import com.ks.vip.pojo.Enums.PayWayEnum; import com.ks.vip.service.VipOrederPayService; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import javax.annotation.Resource; import java.math.BigDecimal; @SpringBootTest(classes = VIPApplication.class) public class RedisTest { @Resource private JedisPool jedisPool; @Test public void test() { Jedis jedis = jedisPool.getResource(); try { String key = "test123123"; jedis.set(key, 1312 + ""); jedis.expire(key, 120); } finally { jedis.close(); } try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } jedis = jedisPool.getResource(); try { String key = "test123123"; System.out.println(jedis.get(key)); } finally { jedis.close(); } } }