fix: mybatis plus and kotlinx LocalDateTime
This commit is contained in:
+3
@@ -13,5 +13,8 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="ShellCheck" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<shellcheck_settings value="SC2317" />
|
||||||
|
</inspection_tool>
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
package club.itstudio.itmanager.mapper.typehandler
|
||||||
|
|
||||||
|
import kotlinx.datetime.LocalDateTime
|
||||||
|
import kotlinx.datetime.toJavaLocalDateTime
|
||||||
|
import kotlinx.datetime.toKotlinLocalDateTime
|
||||||
|
import org.apache.ibatis.type.BaseTypeHandler
|
||||||
|
import org.apache.ibatis.type.JdbcType
|
||||||
|
import org.apache.ibatis.type.MappedJdbcTypes
|
||||||
|
import org.apache.ibatis.type.MappedTypes
|
||||||
|
import java.sql.CallableStatement
|
||||||
|
import java.sql.PreparedStatement
|
||||||
|
import java.sql.ResultSet
|
||||||
|
|
||||||
|
@MappedTypes(LocalDateTime::class)
|
||||||
|
@MappedJdbcTypes(JdbcType.TIMESTAMP)
|
||||||
|
class TimeTypeHandler : BaseTypeHandler<LocalDateTime>() {
|
||||||
|
override fun setNonNullParameter(
|
||||||
|
ps: PreparedStatement,
|
||||||
|
i: Int,
|
||||||
|
parameter: LocalDateTime,
|
||||||
|
jdbcType: JdbcType?
|
||||||
|
) {
|
||||||
|
ps.setObject(i, parameter.toJavaLocalDateTime())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getNullableResult(
|
||||||
|
rs: ResultSet,
|
||||||
|
columnName: String
|
||||||
|
): LocalDateTime? =
|
||||||
|
rs.getTimestamp(columnName)
|
||||||
|
?.toLocalDateTime()
|
||||||
|
?.toKotlinLocalDateTime()
|
||||||
|
|
||||||
|
override fun getNullableResult(
|
||||||
|
rs: ResultSet,
|
||||||
|
columnIndex: Int
|
||||||
|
): LocalDateTime? =
|
||||||
|
rs.getTimestamp(columnIndex)
|
||||||
|
?.toLocalDateTime()
|
||||||
|
?.toKotlinLocalDateTime()
|
||||||
|
|
||||||
|
override fun getNullableResult(
|
||||||
|
cs: CallableStatement,
|
||||||
|
columnIndex: Int
|
||||||
|
): LocalDateTime? =
|
||||||
|
cs.getTimestamp(columnIndex)
|
||||||
|
?.toLocalDateTime()
|
||||||
|
?.toKotlinLocalDateTime()
|
||||||
|
}
|
||||||
+2
-2
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
|
|||||||
import club.itstudio.itmanager.entity.dto.FinanceRecord
|
import club.itstudio.itmanager.entity.dto.FinanceRecord
|
||||||
import club.itstudio.itmanager.mapper.FinanceRecordMapper
|
import club.itstudio.itmanager.mapper.FinanceRecordMapper
|
||||||
import club.itstudio.itmanager.service.FinanceRecordService
|
import club.itstudio.itmanager.service.FinanceRecordService
|
||||||
|
import com.baomidou.mybatisplus.extension.kotlin.KtQueryWrapper
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
import reactor.core.publisher.Mono
|
import reactor.core.publisher.Mono
|
||||||
import reactor.core.scheduler.Schedulers
|
import reactor.core.scheduler.Schedulers
|
||||||
import java.util.NoSuchElementException
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>(), FinanceRecordService {
|
class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>(), FinanceRecordService {
|
||||||
@@ -36,7 +36,7 @@ class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>
|
|||||||
): Mono<Page<FinanceRecord>> =
|
): Mono<Page<FinanceRecord>> =
|
||||||
blockingCall {
|
blockingCall {
|
||||||
logger.info("Paging finance records")
|
logger.info("Paging finance records")
|
||||||
val wrapper = ktQuery()
|
val wrapper = KtQueryWrapper(FinanceRecord())
|
||||||
if (!keyword.isNullOrBlank()) {
|
if (!keyword.isNullOrBlank()) {
|
||||||
wrapper.and {
|
wrapper.and {
|
||||||
it.like(FinanceRecord::recordNo, keyword)
|
it.like(FinanceRecord::recordNo, keyword)
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
|
|||||||
import club.itstudio.itmanager.entity.dto.Item
|
import club.itstudio.itmanager.entity.dto.Item
|
||||||
import club.itstudio.itmanager.mapper.ItemMapper
|
import club.itstudio.itmanager.mapper.ItemMapper
|
||||||
import club.itstudio.itmanager.service.ItemService
|
import club.itstudio.itmanager.service.ItemService
|
||||||
|
import com.baomidou.mybatisplus.extension.kotlin.KtQueryWrapper
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
import reactor.core.publisher.Mono
|
import reactor.core.publisher.Mono
|
||||||
import reactor.core.scheduler.Schedulers
|
import reactor.core.scheduler.Schedulers
|
||||||
import java.util.NoSuchElementException
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
|
class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
|
||||||
@@ -22,7 +22,7 @@ class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
|
|||||||
override fun pageItems(page: Page<Item>, keyword: String?, status: String?): Mono<Page<Item>> =
|
override fun pageItems(page: Page<Item>, keyword: String?, status: String?): Mono<Page<Item>> =
|
||||||
blockingCall {
|
blockingCall {
|
||||||
logger.info("Paging items with keyword and status")
|
logger.info("Paging items with keyword and status")
|
||||||
val wrapper = ktQuery()
|
val wrapper = KtQueryWrapper(Item())
|
||||||
if (!keyword.isNullOrBlank()) {
|
if (!keyword.isNullOrBlank()) {
|
||||||
wrapper.and {
|
wrapper.and {
|
||||||
it.like(Item::name, keyword).or().like(Item::code, keyword)
|
it.like(Item::name, keyword).or().like(Item::code, keyword)
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ spring:
|
|||||||
#username: root
|
#username: root
|
||||||
#password: 123456
|
#password: 123456
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
type-handlers-package: club.itstudio.itmanager.mapper.typehandler
|
||||||
|
|
||||||
app:
|
app:
|
||||||
flow-limit:
|
flow-limit:
|
||||||
count: 1000
|
count: 1000
|
||||||
|
|||||||
Reference in New Issue
Block a user