update ts-database

This commit is contained in:
tursom 2021-11-17 14:49:29 +08:00
parent 49a6df2e55
commit 7654e4b7fa
9 changed files with 47 additions and 47 deletions

View File

@ -1,13 +0,0 @@
package cn.tursom.database.mybatisplus
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
class DdbesUpdateWrapper<T>(
override val enhanceEntityClass: Class<T>,
) : UpdateWrapper<T>(),
UpdateEnhance<T, DdbesUpdateWrapper<T>>,
DdbesWrapperEnhance<T, UpdateWrapper<T>, DdbesUpdateWrapper<T>> {
companion object {
inline operator fun <reified T> invoke() = DdbesUpdateWrapper(T::class.java)
}
}

View File

@ -12,7 +12,7 @@ import kotlin.reflect.jvm.isAccessible
@Suppress("unused")
@MybatisPlusEnhanceDslMaker
interface CompareEnhance<T, out W : AbstractWrapper<T, String, out W>, Children : Wrapper<T>> :
interface EnhanceCompare<T, out W : AbstractWrapper<T, String, out W>, Children : Wrapper<T>> :
EnhanceEntityClassEnhance<T>,
RegexAbstractWrapperEnhance<T, W, Children> {
val compare: Compare<Children, String> get() = uncheckedCast()

View File

@ -3,8 +3,8 @@ package cn.tursom.database.mybatisplus
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper
import com.baomidou.mybatisplus.core.conditions.Wrapper
inline fun <C : CompareEnhance<T, W, Children>, T, W : AbstractWrapper<T, String, W>, Children : Wrapper<T>> C.compare(
compare: CompareEnhance<T, W, Children>.() -> Unit
inline fun <C : EnhanceCompare<T, W, Children>, T, W : AbstractWrapper<T, String, W>, Children : Wrapper<T>> C.compare(
compare: EnhanceCompare<T, W, Children>.() -> Unit
): C {
compare()
return this
@ -24,24 +24,24 @@ inline fun <C : JoinEnhance<Children>, Children> C.join(
return this
}
inline fun <C : QueryEnhance<T, Children>, T, Children : Wrapper<T>> C.query(
query: QueryEnhance<T, Children>.() -> Unit
inline fun <C : EnhanceQuery<T, Children>, T, Children : Wrapper<T>> C.query(
query: EnhanceQuery<T, Children>.() -> Unit
): C {
query()
return this
}
inline fun <C : UpdateEnhance<T, Children>, T, Children : Wrapper<T>> C.update(
update: UpdateEnhance<T, Children>.() -> Unit
inline fun <C : EnhanceUpdate<T, Children>, T, Children : Wrapper<T>> C.update(
update: EnhanceUpdate<T, Children>.() -> Unit
): C {
update()
return this
}
inline fun <C : DdbesWrapperEnhance<T, W, EnhanceWrapper>,
inline fun <C : KtEnhanceWrapper<T, W, EnhanceWrapper>,
T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>>
C.query(
query: DdbesWrapperEnhance<T, W, EnhanceWrapper>.() -> Unit
query: KtEnhanceWrapper<T, W, EnhanceWrapper>.() -> Unit
): C {
query()
return this

View File

@ -8,7 +8,7 @@ import kotlin.reflect.KProperty1
@Suppress("unused")
@MybatisPlusEnhanceDslMaker
interface QueryEnhance<T, out Children : Wrapper<T>> : EnhanceEntityClassEnhance<T> {
interface EnhanceQuery<T, out Children : Wrapper<T>> : EnhanceEntityClassEnhance<T> {
val query: Query<out Children, T, out Any> get() = uncheckedCast()
fun select(

View File

@ -9,7 +9,7 @@ import kotlin.reflect.KProperty1
import kotlin.reflect.jvm.javaField
@MybatisPlusEnhanceDslMaker
interface UpdateEnhance<T, out Children : Wrapper<T>> {
interface EnhanceUpdate<T, out Children : Wrapper<T>> {
val update: Update<out Children, String> get() = uncheckedCast()
infix fun KProperty1<T, *>.set(

View File

@ -6,70 +6,70 @@ import com.baomidou.mybatisplus.extension.service.IService
inline fun <reified T> IService<T>.update(
wrapperBuilder: DdbesUpdateWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceUpdateWrapper<T>.() -> Unit
): Boolean {
val wrapper = DdbesUpdateWrapper<T>()
val wrapper = KtEnhanceUpdateWrapper<T>()
wrapper.wrapperBuilder()
return update(wrapper)
}
inline fun <reified T> IService<T>.update(
queryBuilder: DdbesWrapperEnhance<T, UpdateWrapper<T>, DdbesUpdateWrapper<T>>.() -> Unit,
updateBuilder: UpdateEnhance<T, DdbesUpdateWrapper<T>>.() -> Unit
queryBuilder: KtEnhanceWrapper<T, UpdateWrapper<T>, KtEnhanceUpdateWrapper<T>>.() -> Unit,
updateBuilder: EnhanceUpdate<T, KtEnhanceUpdateWrapper<T>>.() -> Unit
): Boolean {
val wrapper = DdbesUpdateWrapper<T>()
val wrapper = KtEnhanceUpdateWrapper<T>()
wrapper.queryBuilder()
wrapper.updateBuilder()
return update(wrapper)
}
inline fun <reified T> IService<T>.remove(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): Boolean {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return remove(wrapper)
}
inline fun <reified T> IService<T>.getOne(
throwEx: Boolean = true,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): T {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return getOne(wrapper, throwEx)
}
inline fun <reified T> IService<T>.count(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): Long {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return count(wrapper)
}
inline fun <reified T> IService<T>.list(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): List<T> {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return list(wrapper)
}
inline fun <reified T, E : IPage<T>> IService<T>.page(
page: E,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): E {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return page(page, wrapper)
}
inline fun <reified T, E : IPage<Map<String, Any>>> IService<T>.pageMaps(
page: E,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit
wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): E {
val wrapper = DdbesQueryWrapper<T>()
val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder()
return pageMaps(page, wrapper)
}

View File

@ -2,17 +2,17 @@ package cn.tursom.database.mybatisplus
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
class DdbesQueryWrapper<T>(
class KtEnhanceQueryWrapper<T>(
override var enhanceEntityClass: Class<T>
) : QueryWrapper<T>(),
QueryEnhance<T, DdbesQueryWrapper<T>>,
DdbesWrapperEnhance<T, QueryWrapper<T>, DdbesQueryWrapper<T>> {
EnhanceQuery<T, KtEnhanceQueryWrapper<T>>,
KtEnhanceWrapper<T, QueryWrapper<T>, KtEnhanceQueryWrapper<T>> {
init {
this.entityClass = enhanceEntityClass
}
companion object {
inline operator fun <reified T> invoke() = DdbesQueryWrapper(T::class.java)
inline operator fun <reified T> invoke() = KtEnhanceQueryWrapper(T::class.java)
}
}

View File

@ -0,0 +1,13 @@
package cn.tursom.database.mybatisplus
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
class KtEnhanceUpdateWrapper<T>(
override val enhanceEntityClass: Class<T>,
) : UpdateWrapper<T>(),
EnhanceUpdate<T, KtEnhanceUpdateWrapper<T>>,
KtEnhanceWrapper<T, UpdateWrapper<T>, KtEnhanceUpdateWrapper<T>> {
companion object {
inline operator fun <reified T> invoke() = KtEnhanceUpdateWrapper(T::class.java)
}
}

View File

@ -8,8 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.interfaces.Join
import com.baomidou.mybatisplus.core.conditions.interfaces.Nested
@MybatisPlusEnhanceDslMaker
interface DdbesWrapperEnhance<T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>> :
CompareEnhance<T, W, EnhanceWrapper>,
interface KtEnhanceWrapper<T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>> :
EnhanceCompare<T, W, EnhanceWrapper>,
JoinEnhance<EnhanceWrapper>,
FuncEnhance<T, EnhanceWrapper>,
Compare<W, String>,