refactor(webmvc-dto):优化页面查询扩展和响应对象- 在 PageQueryExtensions 中添加对字段不存在的容错处理

- 在 R 类中添加 success 方法,简化成功响应对象的创建
This commit is contained in:
gewuyou 2025-06-09 19:31:15 +08:00
parent 8a449467ab
commit 6fcf5d6d40
2 changed files with 46 additions and 8 deletions

View File

@ -117,6 +117,27 @@ data class R<T>(
val extra = buildExtraMap(extenders) val extra = buildExtraMap(extenders)
return R(code, true, message, data, reqId, extra) return R(code, true, message, data, reqId, extra)
} }
/**
* 创建成功响应对象
*
* @param code 响应码
* @param message 消息
* @param data 响应数据
* @param requestIdProvider 请求ID提供者
* @param extenders 扩展信息提供者列表
* @return 成功响应对象
*/
fun <T> success(
data: T? = null,
code: Int = 200,
message: String = "success",
requestIdProvider: RequestIdProvider? = null,
extenders: List<ResultExtender> = emptyList(),
): R<T> {
val reqId = (requestIdProvider ?: DefaultRequestIdProvider).getRequestId()
val extra = buildExtraMap(extenders)
return R(code, true, message, data, reqId, extra)
}
/** /**
* 创建失败响应对象 * 创建失败响应对象

View File

@ -99,25 +99,42 @@ fun <T, S> PageQueryReq<T>.getPredicates(
): MutableList<Predicate> { ): MutableList<Predicate> {
val predicates = mutableListOf<Predicate>() val predicates = mutableListOf<Predicate>()
// 添加开始日期条件 // 添加开始日期条件(容错)
startDate?.let { startDate?.let {
try {
predicates.add(builder.greaterThanOrEqualTo(root.get(createAtName), it)) predicates.add(builder.greaterThanOrEqualTo(root.get(createAtName), it))
} catch (_: IllegalArgumentException) {
// 字段不存在,忽略
}
} }
// 添加结束日期条件 // 添加结束日期条件(容错)
endDate?.let { endDate?.let {
try {
predicates.add(builder.lessThanOrEqualTo(root.get(createAtName), it)) predicates.add(builder.lessThanOrEqualTo(root.get(createAtName), it))
} catch (_: IllegalArgumentException) {
// 字段不存在,忽略
}
} }
// 添加是否启用条件 // 添加是否启用条件(通常字段存在,可不做容错)
enabled?.let { enabled?.let {
try {
predicates.add(builder.equal(root.get<Boolean>(enabledName), it)) predicates.add(builder.equal(root.get<Boolean>(enabledName), it))
} catch (_: IllegalArgumentException) {
// 可选容错
}
} }
// 添加是否删除条件 // 添加是否删除条件(通常字段存在,可不做容错)
deleted.let { deleted.let {
try {
predicates.add(builder.equal(root.get<Boolean>(deletedName), it)) predicates.add(builder.equal(root.get<Boolean>(deletedName), it))
} catch (_: IllegalArgumentException) {
// 可选容错
} }
}
return predicates return predicates
} }