diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 44f93a1..bd5e86e 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -13,5 +13,8 @@
+
+
+
\ No newline at end of file
diff --git a/src/backend/src/main/kotlin/club/itstudio/itmanager/mapper/typehandler/TimeTypeHandler.kt b/src/backend/src/main/kotlin/club/itstudio/itmanager/mapper/typehandler/TimeTypeHandler.kt
new file mode 100644
index 0000000..8e96dea
--- /dev/null
+++ b/src/backend/src/main/kotlin/club/itstudio/itmanager/mapper/typehandler/TimeTypeHandler.kt
@@ -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() {
+ 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()
+}
\ No newline at end of file
diff --git a/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/FinanceRecordServiceImpl.kt b/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/FinanceRecordServiceImpl.kt
index 22863bd..a8dbb0f 100644
--- a/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/FinanceRecordServiceImpl.kt
+++ b/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/FinanceRecordServiceImpl.kt
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
import club.itstudio.itmanager.entity.dto.FinanceRecord
import club.itstudio.itmanager.mapper.FinanceRecordMapper
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.service.impl.ServiceImpl
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
import reactor.core.publisher.Mono
import reactor.core.scheduler.Schedulers
-import java.util.NoSuchElementException
@Service
class FinanceRecordServiceImpl : ServiceImpl(), FinanceRecordService {
@@ -36,7 +36,7 @@ class FinanceRecordServiceImpl : ServiceImpl
): Mono> =
blockingCall {
logger.info("Paging finance records")
- val wrapper = ktQuery()
+ val wrapper = KtQueryWrapper(FinanceRecord())
if (!keyword.isNullOrBlank()) {
wrapper.and {
it.like(FinanceRecord::recordNo, keyword)
diff --git a/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/ItemServiceImpl.kt b/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/ItemServiceImpl.kt
index 7d73c58..181114c 100644
--- a/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/ItemServiceImpl.kt
+++ b/src/backend/src/main/kotlin/club/itstudio/itmanager/service/impl/ItemServiceImpl.kt
@@ -3,13 +3,13 @@ package club.itstudio.itmanager.service.impl
import club.itstudio.itmanager.entity.dto.Item
import club.itstudio.itmanager.mapper.ItemMapper
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.service.impl.ServiceImpl
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
import reactor.core.publisher.Mono
import reactor.core.scheduler.Schedulers
-import java.util.NoSuchElementException
@Service
class ItemServiceImpl : ServiceImpl(), ItemService {
@@ -22,7 +22,7 @@ class ItemServiceImpl : ServiceImpl(), ItemService {
override fun pageItems(page: Page- , keyword: String?, status: String?): Mono> =
blockingCall {
logger.info("Paging items with keyword and status")
- val wrapper = ktQuery()
+ val wrapper = KtQueryWrapper(Item())
if (!keyword.isNullOrBlank()) {
wrapper.and {
it.like(Item::name, keyword).or().like(Item::code, keyword)
diff --git a/src/backend/src/main/resources/application.yaml b/src/backend/src/main/resources/application.yaml
index 59787a9..588bb68 100644
--- a/src/backend/src/main/resources/application.yaml
+++ b/src/backend/src/main/resources/application.yaml
@@ -1,7 +1,7 @@
spring:
profiles:
active: private
-
+
webflux:
base-path: /
@@ -37,6 +37,9 @@ spring:
#username: root
#password: 123456
+mybatis-plus:
+ type-handlers-package: club.itstudio.itmanager.mapper.typehandler
+
app:
flow-limit:
count: 1000