Compare commits

...

2 Commits

Author SHA1 Message Date
server_main 1bacf534b9 refactor: better SerializersModule structure 2026-08-18 10:40:18 +00:00
server_main 77cf75a2be V1.0.0
All backend function is available
2026-08-18 09:20:39 +00:00
6 changed files with 27 additions and 27 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ plugins {
} }
group = "club.itstudio" group = "club.itstudio"
version = "0.1.1" version = "1.0.0"
description = "itmanager" description = "itmanager"
java { java {
@@ -1,7 +1,9 @@
package club.itstudio.itmanager.config package club.itstudio.itmanager.config
import club.itstudio.itmanager.utils.customSerializersModule import club.itstudio.itmanager.utils.BigDecimalSerializer
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.modules.contextual
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Configuration
@@ -10,7 +12,9 @@ class SerializationConfig {
@Bean @Bean
fun kotlinxSerializationJson(): Json = Json { fun kotlinxSerializationJson(): Json = Json {
serializersModule = customSerializersModule serializersModule = SerializersModule {
contextual(BigDecimalSerializer)
}
ignoreUnknownKeys = true ignoreUnknownKeys = true
isLenient = true isLenient = true
encodeDefaults = false encodeDefaults = false
@@ -3,8 +3,8 @@ package club.itstudio.itmanager.service.impl
import club.itstudio.itmanager.entity.dto.BorrowRecord import club.itstudio.itmanager.entity.dto.BorrowRecord
import club.itstudio.itmanager.mapper.BorrowRecordMapper import club.itstudio.itmanager.mapper.BorrowRecordMapper
import club.itstudio.itmanager.service.BorrowRecordService import club.itstudio.itmanager.service.BorrowRecordService
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
import com.baomidou.mybatisplus.core.metadata.OrderItem import com.baomidou.mybatisplus.core.metadata.OrderItem
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
@@ -39,14 +39,14 @@ class BorrowRecordServiceImpl : ServiceImpl<BorrowRecordMapper, BorrowRecord>(),
page.addOrder(OrderItem.desc("created_at")) page.addOrder(OrderItem.desc("created_at"))
page(page) page(page)
} else { } else {
val wrapper = KtQueryWrapper(BorrowRecord()) val wrapper = QueryWrapper<BorrowRecord>()
if (!keyword.isNullOrBlank()) { if (!keyword.isNullOrBlank()) {
wrapper.like(BorrowRecord::borrower, keyword) wrapper.like("borrower", keyword)
} }
if (!status.isNullOrBlank()) { if (!status.isNullOrBlank()) {
wrapper.eq(BorrowRecord::status, status) wrapper.eq("status", status)
} }
wrapper.orderByDesc(BorrowRecord::createdAt) wrapper.orderByDesc("created_at")
page(page, wrapper) page(page, wrapper)
} }
} }
@@ -3,6 +3,7 @@ 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.core.conditions.query.QueryWrapper
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
@@ -42,29 +43,29 @@ class FinanceRecordServiceImpl : ServiceImpl<FinanceRecordMapper, FinanceRecord>
) { ) {
page(page) page(page)
} else { } else {
val wrapper = ktQuery() val wrapper = QueryWrapper<FinanceRecord>()
if (!keyword.isNullOrBlank()) { if (!keyword.isNullOrBlank()) {
wrapper.and { wrapper.and {
it.like(FinanceRecord::recordNo, keyword) it.like("record_no", keyword)
.or().like(FinanceRecord::vendor, keyword) .or().like("vendor", keyword)
.or().like(FinanceRecord::note, keyword) .or().like("note", keyword)
} }
} }
if (!type.isNullOrBlank()) { if (!type.isNullOrBlank()) {
wrapper.eq(FinanceRecord::type, type) wrapper.eq("type", type)
} }
if (!start.isNullOrBlank() && !end.isNullOrBlank()) { if (!start.isNullOrBlank() && !end.isNullOrBlank()) {
wrapper.apply("occurred_at BETWEEN {0} AND {1}", start, end) wrapper.apply("occurred_at BETWEEN {0} AND {1}", start, end)
} else if (!start.isNullOrBlank()) { } else if (!start.isNullOrBlank()) {
wrapper.ge(FinanceRecord::occurredAt, start) wrapper.ge("occurred_at", start)
} else if (!end.isNullOrBlank()) { } else if (!end.isNullOrBlank()) {
wrapper.le(FinanceRecord::occurredAt, end) wrapper.le("occurred_at", end)
} }
if (!vendor.isNullOrBlank()) { if (!vendor.isNullOrBlank()) {
wrapper.eq(FinanceRecord::vendor, vendor) wrapper.eq("vendor", vendor)
} }
if (itemId != null) { if (itemId != null) {
wrapper.eq(FinanceRecord::relatedItemId, itemId) wrapper.eq("related_item_id", itemId)
} }
page(page, wrapper) page(page, wrapper)
} }
@@ -3,6 +3,7 @@ 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.core.conditions.query.QueryWrapper
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
@@ -25,15 +26,15 @@ class ItemServiceImpl : ServiceImpl<ItemMapper, Item>(), ItemService {
if (keyword.isNullOrBlank() && status.isNullOrBlank()) { if (keyword.isNullOrBlank() && status.isNullOrBlank()) {
page(page) page(page)
} else { } else {
val wrapper = ktQuery() val wrapper = QueryWrapper<Item>()
if (!keyword.isNullOrBlank()) { if (!keyword.isNullOrBlank()) {
wrapper.and { wrapper.and {
it.like(Item::name, keyword) it.like("name", keyword)
.or().like(Item::code, keyword) .or().like("code", keyword)
} }
} }
if (!status.isNullOrBlank()) { if (!status.isNullOrBlank()) {
wrapper.eq(Item::status, status) wrapper.eq("status", status)
} }
page(page, wrapper) page(page, wrapper)
} }
@@ -9,8 +9,6 @@ import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.json.JsonDecoder import kotlinx.serialization.json.JsonDecoder
import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.modules.contextual
import java.math.BigDecimal import java.math.BigDecimal
object BigDecimalSerializer : KSerializer<BigDecimal> { object BigDecimalSerializer : KSerializer<BigDecimal> {
@@ -28,8 +26,4 @@ object BigDecimalSerializer : KSerializer<BigDecimal> {
} }
return element.content.toBigDecimal() return element.content.toBigDecimal()
} }
}
val customSerializersModule = SerializersModule {
contextual(BigDecimalSerializer)
} }