Fix1; Refactor:2; Style:1; Docs:1 #20

Merged
FatttSnake merged 5 commits from FatttSnake into dev 2024-04-22 13:51:33 +08:00
9 changed files with 41 additions and 52 deletions
Showing only changes of commit cebe809504 - Show all commits

View File

@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer
import org.springframework.boot.jackson.JsonComponent import org.springframework.boot.jackson.JsonComponent
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
import java.text.DateFormat
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.time.LocalDateTime import java.time.LocalDateTime
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@@ -41,11 +40,10 @@ class DateFormatConfig {
@Bean @Bean
fun jackson2ObjectMapperBuilder() = Jackson2ObjectMapperBuilderCustomizer { fun jackson2ObjectMapperBuilder() = Jackson2ObjectMapperBuilderCustomizer {
val tz = timeZone val dateFormat = SimpleDateFormat(dateFormat)
val df: DateFormat = SimpleDateFormat(dateFormat) dateFormat.timeZone = timeZone
df.timeZone = tz
it.failOnEmptyBeans(false).failOnUnknownProperties(false) it.failOnEmptyBeans(false).failOnUnknownProperties(false)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).dateFormat(df) .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).dateFormat(dateFormat)
} }
@Bean @Bean
@@ -55,5 +53,4 @@ class DateFormatConfig {
LocalDateTime::class.java, LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateFormat)) LocalDateTime::class.java, LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateFormat))
) )
} }
} }

View File

@@ -14,11 +14,9 @@ import top.fatweb.oxygen.api.filter.ExceptionFilter
@Configuration @Configuration
class FilterConfig { class FilterConfig {
@Bean @Bean
fun exceptionFilterRegistrationBean(exceptionFilter: ExceptionFilter): FilterRegistrationBean<ExceptionFilter> { fun exceptionFilterRegistrationBean(exceptionFilter: ExceptionFilter): FilterRegistrationBean<ExceptionFilter> =
val registrationBean = FilterRegistrationBean(exceptionFilter) FilterRegistrationBean(exceptionFilter).apply {
registrationBean.setBeanName("exceptionFilter") setBeanName("exceptionFilter")
registrationBean.order = -100 order = -100
}
return registrationBean
}
} }

View File

@@ -16,13 +16,12 @@ import retrofit2.converter.jackson.JacksonConverterFactory
@Configuration @Configuration
class JacksonConfig { class JacksonConfig {
@Bean @Bean
fun jacksonConverterFactory(): JacksonConverterFactory { fun jacksonConverterFactory(): JacksonConverterFactory =
val mapper = JsonMapper.builder() JacksonConverterFactory.create(
.findAndAddModules() JsonMapper.builder()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .findAndAddModules()
.serializationInclusion(JsonInclude.Include.NON_NULL) .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.build() .serializationInclusion(JsonInclude.Include.NON_NULL)
.build()
return JacksonConverterFactory.create(mapper) )
}
} }

View File

@@ -15,11 +15,9 @@ import org.springframework.context.annotation.Configuration
@Configuration @Configuration
class MybatisPlusConfig { class MybatisPlusConfig {
@Bean @Bean
fun mybatisPlusInterceptor(): MybatisPlusInterceptor { fun mybatisPlusInterceptor(): MybatisPlusInterceptor =
val mybatisPlusInterceptor = MybatisPlusInterceptor() MybatisPlusInterceptor().apply {
mybatisPlusInterceptor.addInnerInterceptor(OptimisticLockerInnerInterceptor()) addInnerInterceptor(OptimisticLockerInnerInterceptor())
mybatisPlusInterceptor.addInnerInterceptor(PaginationInnerInterceptor()) addInnerInterceptor(PaginationInnerInterceptor())
}
return mybatisPlusInterceptor
}
} }

View File

@@ -33,11 +33,11 @@ class RedisConfig {
} }
val anyJackson2JsonRedisSerializer = Jackson2JsonRedisSerializer(objectMapper, Any::class.java) val anyJackson2JsonRedisSerializer = Jackson2JsonRedisSerializer(objectMapper, Any::class.java)
// 使用StringRedisSerializer来序列化和反序列化rediskey // Use String Redis Serializer to serialize and deserialize redis key values
redisTemplate.keySerializer = stringRedisSerializer redisTemplate.keySerializer = stringRedisSerializer
redisTemplate.valueSerializer = anyJackson2JsonRedisSerializer redisTemplate.valueSerializer = anyJackson2JsonRedisSerializer
// Hashkey也采用StringRedisSerializer的序列化方式 // The Hash key also uses the String Redis Serializer serialization method.
redisTemplate.hashKeySerializer = stringRedisSerializer redisTemplate.hashKeySerializer = stringRedisSerializer
redisTemplate.hashValueSerializer = anyJackson2JsonRedisSerializer redisTemplate.hashValueSerializer = anyJackson2JsonRedisSerializer

View File

@@ -56,12 +56,12 @@ class AvatarServiceImpl : IAvatarService {
override fun triangle(avatarBaseParam: AvatarBaseParam?): ByteArray { override fun triangle(avatarBaseParam: AvatarBaseParam?): ByteArray {
val avatar = ( val avatar = (
if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty())
TriangleAvatar.newAvatarBuilder() TriangleAvatar.newAvatarBuilder()
else TriangleAvatar.newAvatarBuilder( else TriangleAvatar.newAvatarBuilder(
*avatarBaseParam.colors!!.map(::decodeColor).toTypedArray() *avatarBaseParam.colors!!.map(::decodeColor).toTypedArray()
) )
).apply { ).apply {
avatarBaseParam?.size?.let(::size) avatarBaseParam?.size?.let(::size)
avatarBaseParam?.margin?.let(::margin) avatarBaseParam?.margin?.let(::margin)
avatarBaseParam?.padding?.let(::padding) avatarBaseParam?.padding?.let(::padding)
@@ -76,12 +76,12 @@ class AvatarServiceImpl : IAvatarService {
override fun square(avatarBaseParam: AvatarBaseParam?): ByteArray { override fun square(avatarBaseParam: AvatarBaseParam?): ByteArray {
val avatar = ( val avatar = (
if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty()) if (avatarBaseParam == null || avatarBaseParam.colors.isNullOrEmpty())
SquareAvatar.newAvatarBuilder() SquareAvatar.newAvatarBuilder()
else SquareAvatar.newAvatarBuilder( else SquareAvatar.newAvatarBuilder(
*avatarBaseParam.colors!!.map(::decodeColor).toTypedArray() *avatarBaseParam.colors!!.map(::decodeColor).toTypedArray()
) )
).apply { ).apply {
avatarBaseParam?.size?.let(::size) avatarBaseParam?.size?.let(::size)
avatarBaseParam?.margin?.let(::margin) avatarBaseParam?.margin?.let(::margin)
avatarBaseParam?.padding?.let(::padding) avatarBaseParam?.padding?.let(::padding)

View File

@@ -35,7 +35,7 @@ class SettingsServiceImpl : ISettingsService {
), ),
retrieveUrl = SettingsOperator.getAppValue( retrieveUrl = SettingsOperator.getAppValue(
BaseSettings::retrieveUrl, BaseSettings::retrieveUrl,
"http://localhost/retrieve?code=\${retrieveCode}" "http://localhost/forget?code=\${retrieveCode}"
) )
) )

View File

@@ -13,12 +13,8 @@ import java.lang.reflect.Method
*/ */
class ApiResponseMappingHandlerMapping : RequestMappingHandlerMapping() { class ApiResponseMappingHandlerMapping : RequestMappingHandlerMapping() {
private fun createCondition(clazz: Class<*>): RequestCondition<ApiVersionCondition>? { private fun createCondition(clazz: Class<*>): RequestCondition<ApiVersionCondition>? =
val apiController = clazz.getAnnotation(ApiController::class.java) clazz.getAnnotation(ApiController::class.java)?.version?.let { ApiVersionCondition(it) }
apiController ?: return null
return ApiVersionCondition(apiController.version)
}
override fun getCustomMethodCondition(method: Method): RequestCondition<*>? = createCondition(method.javaClass) override fun getCustomMethodCondition(method: Method): RequestCondition<*>? = createCondition(method.javaClass)

View File

@@ -20,8 +20,9 @@ object WebUtil {
* @since 1.0.0 * @since 1.0.0
* @see LoginUser * @see LoginUser
*/ */
fun getLoginUser(): LoginUser? = if (SecurityContextHolder.getContext().authentication.principal is String) null fun getLoginUser(): LoginUser? =
else SecurityContextHolder.getContext().authentication.principal as LoginUser if (SecurityContextHolder.getContext().authentication.principal is String) null
else SecurityContextHolder.getContext().authentication.principal as LoginUser
/** /**
* Get ID of the user currently calling api * Get ID of the user currently calling api