From 021822139aa5ef602bba380b7e31ceefad3757c5 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Wed, 24 Apr 2019 14:00:16 +0800 Subject: [PATCH] =?utf8?q?=E6=95=B4=E5=90=88=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- config/application-devel-oracle.properties | 1 + config/application-devel-pg-local.properties | 1 + config/application-devel-pg.properties | 2 +- .../dlpay/framework/core/DatabaseConfig.java | 12 ++-- .../service/impl/SystemUtilServiceImpl.java | 3 +- .../dlpay/framework/util/DateUtil.java | 60 +++++++++++-------- .../controller/security_controller.kt | 26 ++++---- src/main/resources/application.properties | 2 + .../main/resources/data.sql | 4 +- 9 files changed, 59 insertions(+), 52 deletions(-) rename sql/init_test.sql => src/main/resources/data.sql (96%) diff --git a/config/application-devel-oracle.properties b/config/application-devel-oracle.properties index 50ff5981..1357d12c 100644 --- a/config/application-devel-oracle.properties +++ b/config/application-devel-oracle.properties @@ -4,6 +4,7 @@ spring.main.banner-mode=off spring.jpa.hibernate.ddl-auto=update # Oracle settings +spring.datasource.platform=oracle spring.datasource.url=jdbc:oracle:thin:@172.28.201.101:47922:orcl spring.datasource.username=dlpay spring.datasource.password=kingstar diff --git a/config/application-devel-pg-local.properties b/config/application-devel-pg-local.properties index ad1ccb2a..b6561aa8 100644 --- a/config/application-devel-pg-local.properties +++ b/config/application-devel-pg-local.properties @@ -4,6 +4,7 @@ spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false # Postgresql settings +spring.datasource.platform=postgresql spring.datasource.url=jdbc:postgresql://localhost:5432/payapi spring.datasource.username=payapi spring.datasource.password=123456 diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties index d21bd66d..594779e2 100644 --- a/config/application-devel-pg.properties +++ b/config/application-devel-pg.properties @@ -3,8 +3,8 @@ spring.main.banner-mode=off spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false -database.dbtype=postgresql # Postgresql settings +spring.datasource.platform=postgresql spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/payapi spring.datasource.username=payapi spring.datasource.password=123456 diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java b/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java index 16f454ad..99bb0144 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java +++ b/src/main/java/com/supwisdom/dlpay/framework/core/DatabaseConfig.java @@ -5,14 +5,10 @@ import org.springframework.context.annotation.Configuration; @Configuration public class DatabaseConfig { - @Value("${database.dbtype:oracle}") - private String dbType; + @Value("${spring.datasource.platform}") + private String platform; - public String getDbType() { - return dbType; - } - - public void setDbType(String dbType) { - this.dbType = dbType; + public String getPlatform() { + return platform; } } diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java index 07d5e63e..53ebf4cb 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java @@ -13,6 +13,7 @@ import com.supwisdom.dlpay.framework.util.DateUtil; import com.supwisdom.dlpay.framework.util.StringUtil; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; @@ -74,7 +75,7 @@ public class SystemUtilServiceImpl implements SystemUtilService { @Override public SystemDateTime getSysdatetime() { - switch (databaseConfig.getDbType()) { + switch (databaseConfig.getPlatform()) { case "postgresql": return getPGDatetime(); default: diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java index a17a6eeb..ee65ddb9 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java +++ b/src/main/java/com/supwisdom/dlpay/framework/util/DateUtil.java @@ -1,13 +1,13 @@ package com.supwisdom.dlpay.framework.util; import org.apache.log4j.Logger; -import org.springframework.util.Assert; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; public class DateUtil { private static final Logger logger = Logger.getLogger(DateUtil.class); @@ -96,8 +96,8 @@ public class DateUtil { * Description: 比较两个时间字符串的前后关系 @param firstTime String 格式:yyyyMMddHHmmss * * @param secondTime String 格式: yyyyMMddHHmmss @return int | - * firstTime=second int=0 | firstTime>secondTime int>0 | - * firstTimesecondTime int>0 | + * firstTimesecondTime int>0 | - * firstTimesecondTime int>0 | + * firstTimesecondTime - * int>0 | firstTime+secondssecondTime + * int>0 | firstTime+seconds 2014-04-01 * 中格式:201404011200 -> 2014-04-01 12:00 * 长格式:20140401123025 -> 2014-04-01 12:30:25 - * **/ - public static String parseToDateFormat(String str){ - switch(str.length()){ + **/ + public static String parseToDateFormat(String str) { + switch (str.length()) { case 8: - str = str.substring(0, 4)+"-"+str.substring(4, 6)+"-"+str.substring(6, 8); + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8); break; case 12: - str = str.substring(0, 4)+"-"+str.substring(4, 6)+"-"+str.substring(6, 8)+" "+str.substring(8, 10)+":"+str.substring(10, 12); + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12); break; case 14: - str = str.substring(0, 4)+"-"+str.substring(4, 6)+"-"+str.substring(6, 8)+" "+str.substring(8, 10)+":"+str.substring(10, 12)+":"+str.substring(12, 14); + str = str.substring(0, 4) + "-" + str.substring(4, 6) + "-" + str.substring(6, 8) + " " + str.substring(8, 10) + ":" + str.substring(10, 12) + ":" + str.substring(12, 14); break; default: break; @@ -219,14 +220,14 @@ public class DateUtil { * 短格式:2014-04-01 -> 20140401 * 中格式:2014-04-01 12:00 -> 201404011200 * 长格式:2014-04-01 12:30:25 -> 20140401123025 - * **/ - public static String unParseToDateFormat(String str){ + **/ + public static String unParseToDateFormat(String str) { return str.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", ""); } /** * 检验时间格式 - * */ + */ public static boolean checkDatetimeValid(String datetime, String pattern) { if (null == datetime) return false; try { @@ -241,8 +242,8 @@ public class DateUtil { /** * 获取指定日期是星期几 格式 yyyyMMdd * MON|TUE|WED|THU|FRI|SAT|SUN - * 1 2 3 4 5 6 7 - * */ + * 1 2 3 4 5 6 7 + */ public static int getWeekday(String datestr) { try { Calendar calendar = Calendar.getInstance(); @@ -275,13 +276,13 @@ public class DateUtil { } } - public static Integer getLastDayOfMonth(Integer year,Integer month){ + public static Integer getLastDayOfMonth(Integer year, Integer month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); - cal.set(Calendar.MONTH, month-1); - cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE)); - String str = new SimpleDateFormat( "yyyyMMdd ").format(cal.getTime()).toString(); - Integer result = Integer.parseInt(str.substring(0,4) + str.substring(4,6) + str.substring(6,8)); + cal.set(Calendar.MONTH, month - 1); + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE)); + String str = new SimpleDateFormat("yyyyMMdd ").format(cal.getTime()).toString(); + Integer result = Integer.parseInt(str.substring(0, 4) + str.substring(4, 6) + str.substring(6, 8)); return result; } @@ -305,4 +306,15 @@ public class DateUtil { } + public static String getUTCTime(Long timeInMillisSecond) { + Calendar time = Calendar.getInstance(); + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); + fmt.setTimeZone(TimeZone.getTimeZone("UTC")); + time.setTimeInMillis(timeInMillisSecond); + return fmt.format(time.getTime()); + } + + public static String getUTCTime() { + return getUTCTime(System.currentTimeMillis()); + } } diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt index 2ee98f60..e2ba3abc 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt @@ -4,21 +4,21 @@ import com.supwisdom.dlpay.framework.ResponseBodyBuilder import com.supwisdom.dlpay.framework.core.JwtConfig import com.supwisdom.dlpay.framework.core.JwtTokenUtil import com.supwisdom.dlpay.framework.dao.ApiClientDao -import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil -import com.supwisdom.dlpay.framework.security.validate.VerifyCode import com.supwisdom.dlpay.framework.domain.ApiClientRedis import com.supwisdom.dlpay.framework.domain.JwtRedis import com.supwisdom.dlpay.framework.domain.TOperator import com.supwisdom.dlpay.framework.redisrepo.ApiClientRepository import com.supwisdom.dlpay.framework.redisrepo.ApiJwtRepository +import com.supwisdom.dlpay.framework.security.validate.ImageCodeUtil +import com.supwisdom.dlpay.framework.security.validate.VerifyCode import com.supwisdom.dlpay.framework.service.SystemUtilService +import com.supwisdom.dlpay.framework.util.DateUtil import com.supwisdom.dlpay.framework.util.HmacUtil import com.supwisdom.dlpay.framework.util.TradeDict import com.supwisdom.dlpay.system.service.CommonService import com.supwisdom.dlpay.system.service.FunctionService import mu.KotlinLogging import org.springframework.beans.factory.annotation.Autowired -import org.springframework.http.HttpRequest import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.security.core.annotation.AuthenticationPrincipal @@ -28,9 +28,11 @@ import org.springframework.security.web.authentication.logout.SecurityContextLog import org.springframework.social.connect.web.HttpSessionSessionStrategy import org.springframework.stereotype.Controller import org.springframework.ui.Model -import org.springframework.web.bind.annotation.* +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController import org.springframework.web.context.request.ServletWebRequest -import java.text.SimpleDateFormat import java.util.* import javax.imageio.ImageIO import javax.servlet.http.HttpServletRequest @@ -112,14 +114,11 @@ class ApiAuthController { }.apply { apiJwtRepository.save(this) } - val exp = Calendar.getInstance() - val fmt = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z") - fmt.timeZone = TimeZone.getTimeZone("UTC") - exp.timeInMillis = token.expiration.valueInMillis + ResponseEntity.ok(ResponseBodyBuilder.create() .data("jwt", token.jwtToken) .data("appid", appid) - .data("expiredAt", fmt.format(exp.time)) + .data("expiredAt", DateUtil.getUTCTime(token.expiration.valueInMillis)) .success()) } else { ResponseEntity.status(HttpStatus.UNAUTHORIZED).build() @@ -150,14 +149,11 @@ class ApiAuthController { }.apply { apiJwtRepository.save(this) } - val exp = Calendar.getInstance() - val fmt = SimpleDateFormat("yyyy-MM-dd HH:mm:ss z") - fmt.timeZone = TimeZone.getTimeZone("UTC") - exp.timeInMillis = token.expiration.valueInMillis + ResponseEntity.ok(ResponseBodyBuilder.create() .data("jwt", token.jwtToken) .data("appid", appid) - .data("expiredAt", fmt.format(exp.time)) + .data("expiredAt", DateUtil.getUTCTime(token.expiration.valueInMillis)) .success()) } else { ResponseEntity.status(HttpStatus.UNAUTHORIZED).build() diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b54e7279..41f55329 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,6 +3,8 @@ spring.jpa.show-sql=true spring.datasource.hikari.connection-timeout=60000 spring.datasource.hikari.maximum-pool-size=5 +spring.datasource.initialization-mode=always +spring.datasource.continue-on-error=true spring.jpa.hibernate.ddl-auto=update # logging logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n diff --git a/sql/init_test.sql b/src/main/resources/data.sql similarity index 96% rename from sql/init_test.sql rename to src/main/resources/data.sql index ebdfa8e1..0b14207b 100644 --- a/sql/init_test.sql +++ b/src/main/resources/data.sql @@ -19,6 +19,4 @@ Insert into TB_FUNCTION (ID,PARENT_ID,NAME,ORDER_NUM,MENU_URL,MENU_ICON,IS_LEAF) values ('2','1','管理员维护',1,'#','layui-icon-set',1); Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('1','1','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs'); -Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('2','2','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs'); - -commit; \ No newline at end of file +Insert into TB_ROLE_FUNCTION (ID,FUNCTION_ID,ROLE_ID) values ('2','2','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs'); \ No newline at end of file -- 2.17.1