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") @Suppress("unused")
@MybatisPlusEnhanceDslMaker @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>, EnhanceEntityClassEnhance<T>,
RegexAbstractWrapperEnhance<T, W, Children> { RegexAbstractWrapperEnhance<T, W, Children> {
val compare: Compare<Children, String> get() = uncheckedCast() 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.AbstractWrapper
import com.baomidou.mybatisplus.core.conditions.Wrapper 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( inline fun <C : EnhanceCompare<T, W, Children>, T, W : AbstractWrapper<T, String, W>, Children : Wrapper<T>> C.compare(
compare: CompareEnhance<T, W, Children>.() -> Unit compare: EnhanceCompare<T, W, Children>.() -> Unit
): C { ): C {
compare() compare()
return this return this
@ -24,24 +24,24 @@ inline fun <C : JoinEnhance<Children>, Children> C.join(
return this return this
} }
inline fun <C : QueryEnhance<T, Children>, T, Children : Wrapper<T>> C.query( inline fun <C : EnhanceQuery<T, Children>, T, Children : Wrapper<T>> C.query(
query: QueryEnhance<T, Children>.() -> Unit query: EnhanceQuery<T, Children>.() -> Unit
): C { ): C {
query() query()
return this return this
} }
inline fun <C : UpdateEnhance<T, Children>, T, Children : Wrapper<T>> C.update( inline fun <C : EnhanceUpdate<T, Children>, T, Children : Wrapper<T>> C.update(
update: UpdateEnhance<T, Children>.() -> Unit update: EnhanceUpdate<T, Children>.() -> Unit
): C { ): C {
update() update()
return this 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>> T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>>
C.query( C.query(
query: DdbesWrapperEnhance<T, W, EnhanceWrapper>.() -> Unit query: KtEnhanceWrapper<T, W, EnhanceWrapper>.() -> Unit
): C { ): C {
query() query()
return this return this

View File

@ -8,7 +8,7 @@ import kotlin.reflect.KProperty1
@Suppress("unused") @Suppress("unused")
@MybatisPlusEnhanceDslMaker @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() val query: Query<out Children, T, out Any> get() = uncheckedCast()
fun select( fun select(

View File

@ -9,7 +9,7 @@ import kotlin.reflect.KProperty1
import kotlin.reflect.jvm.javaField import kotlin.reflect.jvm.javaField
@MybatisPlusEnhanceDslMaker @MybatisPlusEnhanceDslMaker
interface UpdateEnhance<T, out Children : Wrapper<T>> { interface EnhanceUpdate<T, out Children : Wrapper<T>> {
val update: Update<out Children, String> get() = uncheckedCast() val update: Update<out Children, String> get() = uncheckedCast()
infix fun KProperty1<T, *>.set( 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( inline fun <reified T> IService<T>.update(
wrapperBuilder: DdbesUpdateWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceUpdateWrapper<T>.() -> Unit
): Boolean { ): Boolean {
val wrapper = DdbesUpdateWrapper<T>() val wrapper = KtEnhanceUpdateWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return update(wrapper) return update(wrapper)
} }
inline fun <reified T> IService<T>.update( inline fun <reified T> IService<T>.update(
queryBuilder: DdbesWrapperEnhance<T, UpdateWrapper<T>, DdbesUpdateWrapper<T>>.() -> Unit, queryBuilder: KtEnhanceWrapper<T, UpdateWrapper<T>, KtEnhanceUpdateWrapper<T>>.() -> Unit,
updateBuilder: UpdateEnhance<T, DdbesUpdateWrapper<T>>.() -> Unit updateBuilder: EnhanceUpdate<T, KtEnhanceUpdateWrapper<T>>.() -> Unit
): Boolean { ): Boolean {
val wrapper = DdbesUpdateWrapper<T>() val wrapper = KtEnhanceUpdateWrapper<T>()
wrapper.queryBuilder() wrapper.queryBuilder()
wrapper.updateBuilder() wrapper.updateBuilder()
return update(wrapper) return update(wrapper)
} }
inline fun <reified T> IService<T>.remove( inline fun <reified T> IService<T>.remove(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): Boolean { ): Boolean {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return remove(wrapper) return remove(wrapper)
} }
inline fun <reified T> IService<T>.getOne( inline fun <reified T> IService<T>.getOne(
throwEx: Boolean = true, throwEx: Boolean = true,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): T { ): T {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return getOne(wrapper, throwEx) return getOne(wrapper, throwEx)
} }
inline fun <reified T> IService<T>.count( inline fun <reified T> IService<T>.count(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): Long { ): Long {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return count(wrapper) return count(wrapper)
} }
inline fun <reified T> IService<T>.list( inline fun <reified T> IService<T>.list(
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): List<T> { ): List<T> {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return list(wrapper) return list(wrapper)
} }
inline fun <reified T, E : IPage<T>> IService<T>.page( inline fun <reified T, E : IPage<T>> IService<T>.page(
page: E, page: E,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): E { ): E {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return page(page, wrapper) return page(page, wrapper)
} }
inline fun <reified T, E : IPage<Map<String, Any>>> IService<T>.pageMaps( inline fun <reified T, E : IPage<Map<String, Any>>> IService<T>.pageMaps(
page: E, page: E,
wrapperBuilder: DdbesQueryWrapper<T>.() -> Unit wrapperBuilder: KtEnhanceQueryWrapper<T>.() -> Unit
): E { ): E {
val wrapper = DdbesQueryWrapper<T>() val wrapper = KtEnhanceQueryWrapper<T>()
wrapper.wrapperBuilder() wrapper.wrapperBuilder()
return pageMaps(page, wrapper) return pageMaps(page, wrapper)
} }

View File

@ -2,17 +2,17 @@ package cn.tursom.database.mybatisplus
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
class DdbesQueryWrapper<T>( class KtEnhanceQueryWrapper<T>(
override var enhanceEntityClass: Class<T> override var enhanceEntityClass: Class<T>
) : QueryWrapper<T>(), ) : QueryWrapper<T>(),
QueryEnhance<T, DdbesQueryWrapper<T>>, EnhanceQuery<T, KtEnhanceQueryWrapper<T>>,
DdbesWrapperEnhance<T, QueryWrapper<T>, DdbesQueryWrapper<T>> { KtEnhanceWrapper<T, QueryWrapper<T>, KtEnhanceQueryWrapper<T>> {
init { init {
this.entityClass = enhanceEntityClass this.entityClass = enhanceEntityClass
} }
companion object { 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 import com.baomidou.mybatisplus.core.conditions.interfaces.Nested
@MybatisPlusEnhanceDslMaker @MybatisPlusEnhanceDslMaker
interface DdbesWrapperEnhance<T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>> : interface KtEnhanceWrapper<T, W : AbstractWrapper<T, String, out W>, EnhanceWrapper : Wrapper<T>> :
CompareEnhance<T, W, EnhanceWrapper>, EnhanceCompare<T, W, EnhanceWrapper>,
JoinEnhance<EnhanceWrapper>, JoinEnhance<EnhanceWrapper>,
FuncEnhance<T, EnhanceWrapper>, FuncEnhance<T, EnhanceWrapper>,
Compare<W, String>, Compare<W, String>,