@ -1,6 +1,12 @@
package com.ibeetl.admin.core.service ;
package com.ibeetl.admin.core.service ;
import cn.hutool.core.exceptions.UtilException ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.ReflectUtil ;
import cn.hutool.core.util.StrUtil ;
import com.ibeetl.admin.core.annotation.Dict ;
import com.ibeetl.admin.core.annotation.Dict ;
import com.ibeetl.admin.core.annotation.DictDeep ;
import com.ibeetl.admin.core.annotation.DictEnum ;
import com.ibeetl.admin.core.entity.CoreDict ;
import com.ibeetl.admin.core.entity.CoreDict ;
import com.ibeetl.admin.core.util.PlatformException ;
import com.ibeetl.admin.core.util.PlatformException ;
import com.ibeetl.admin.core.util.enums.DelFlagEnum ;
import com.ibeetl.admin.core.util.enums.DelFlagEnum ;
@ -9,6 +15,7 @@ import org.beetl.sql.core.TailBean;
import javax.annotation.Resource ;
import javax.annotation.Resource ;
import java.lang.reflect.Field ;
import java.lang.reflect.Field ;
import java.lang.reflect.Method ;
import java.lang.reflect.ParameterizedType ;
import java.lang.reflect.ParameterizedType ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.HashMap ;
@ -28,9 +35,9 @@ public class CoreBaseService<T> {
protected SQLManager sqlManager ;
protected SQLManager sqlManager ;
/ * *
/ * *
* 根 据 id 查 询 对 象 , 如 果 主 键 ID 不 存 在
* 根 据 id 查 询 对 象 , 如 果 主 键 ID 不 存 在
*
* @param id
* @param id
* @return
* @return
* /
* /
@ -42,6 +49,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 实 体 查 询 实 体 对 象 List
* 根 据 实 体 查 询 实 体 对 象 List
*
* @param paras
* @param paras
* @return
* @return
* /
* /
@ -54,6 +62,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 实 体 查 询 实 体 对 象 List
* 根 据 实 体 查 询 实 体 对 象 List
*
* @param paras
* @param paras
* @return
* @return
* /
* /
@ -68,6 +77,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 实 体 查 询 实 体 对 象 List
* 根 据 实 体 查 询 实 体 对 象 List
*
* @param paras
* @param paras
* @return
* @return
* /
* /
@ -85,6 +95,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 实 体 或 map 查 询 List
* 根 据 实 体 或 map 查 询 List
*
* @param paras
* @param paras
* @return
* @return
* /
* /
@ -95,6 +106,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 id 查 询
* 根 据 id 查 询
*
* @param classz 返 回 的 对 象 类 型
* @param classz 返 回 的 对 象 类 型
* @param id 主 键 id
* @param id 主 键 id
* @return
* @return
@ -107,6 +119,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 新 增 一 条 数 据
* 新 增 一 条 数 据
*
* @param model 实 体 类
* @param model 实 体 类
* @return
* @return
* /
* /
@ -116,6 +129,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 新 增 一 条 数 据 后 将 ID 存 入 实 体
* 新 增 一 条 数 据 后 将 ID 存 入 实 体
*
* @param model 实 体 类
* @param model 实 体 类
* @return
* @return
* /
* /
@ -125,6 +139,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 批 量 新 增 数 据
* 批 量 新 增 数 据
*
* @param list 实 体 集 合
* @param list 实 体 集 合
* @return
* @return
* /
* /
@ -138,14 +153,17 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 批 量 新 增 数 据 后 将 ID 存 入 实 体
* 批 量 新 增 数 据 后 将 ID 存 入 实 体
*
* @param list 实 体 集 合
* @param list 实 体 集 合
* @return
* @return
* /
* /
public boolean insertBatch ( List < T > list ) {
public boolean insertBatch ( List < T > list ) {
return insertBatch ( list , true ) ;
return insertBatch ( list , true ) ;
}
}
/ * *
/ * *
* 批 量 新 增 数 据 后 将 ID 存 入 实 体
* 批 量 新 增 数 据 后 将 ID 存 入 实 体
*
* @param list 实 体 集 合
* @param list 实 体 集 合
* @return
* @return
* /
* /
@ -159,6 +177,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 删 除 数 据 ( 一 般 为 逻 辑 删 除 , 更 新 del_flag 字 段 为 1 )
* 删 除 数 据 ( 一 般 为 逻 辑 删 除 , 更 新 del_flag 字 段 为 1 )
*
* @param ids
* @param ids
* @return
* @return
* /
* /
@ -200,8 +219,10 @@ public class CoreBaseService<T> {
int ret = sqlManager . updateTemplateById ( getCurrentEntityClassz ( ) , map ) ;
int ret = sqlManager . updateTemplateById ( getCurrentEntityClassz ( ) , map ) ;
return ret = = 1 ;
return ret = = 1 ;
}
}
/ * *
/ * *
* 根 据 id 删 除 数 据
* 根 据 id 删 除 数 据
*
* @param id 主 键 值
* @param id 主 键 值
* @return
* @return
* /
* /
@ -211,6 +232,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 根 据 id 删 除 数 据
* 根 据 id 删 除 数 据
*
* @param id 主 键 值
* @param id 主 键 值
* @return
* @return
* /
* /
@ -220,6 +242,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 更 新 , 只 更 新 不 为 空 的 字 段
* 更 新 , 只 更 新 不 为 空 的 字 段
*
* @param model
* @param model
* @return
* @return
* /
* /
@ -229,6 +252,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 更 新 所 有 字 段
* 更 新 所 有 字 段
*
* @param model
* @param model
* @return
* @return
* /
* /
@ -238,6 +262,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 批 量 更 新 所 有 字 段
* 批 量 更 新 所 有 字 段
*
* @param list
* @param list
* @return
* @return
* /
* /
@ -251,6 +276,7 @@ public class CoreBaseService<T> {
/ * *
/ * *
* 批 量 更 新 , 只 更 新 不 为 空 的 字 段
* 批 量 更 新 , 只 更 新 不 为 空 的 字 段
*
* @param list
* @param list
* @return
* @return
* /
* /
@ -263,9 +289,9 @@ public class CoreBaseService<T> {
}
}
/ * *
/ * *
* 获 取 当 前 注 入 泛 型 T 的 类 型
* 获 取 当 前 注 入 泛 型 T 的 类 型
*
* @return 具 体 类 型
* @return 具 体 类 型
* /
* /
@SuppressWarnings ( "unchecked" )
@SuppressWarnings ( "unchecked" )
@ -308,15 +334,54 @@ public class CoreBaseService<T> {
ext . set ( field . getName ( ) + dict . suffix ( ) , display ) ;
ext . set ( field . getName ( ) + dict . suffix ( ) , display ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
e . printStackTrace ( ) ;
e . printStackTrace ( ) ;
} finally {
field . setAccessible ( false ) ;
}
}
}
// 深度解析注解
if ( field . isAnnotationPresent ( DictDeep . class ) ) {
field . setAccessible ( true ) ;
try {
Object res = field . get ( ext ) ;
if ( res instanceof List ) {
queryListAfter ( ( List ) res ) ;
} else {
queryEntityAfter ( res ) ;
}
}
} catch ( Exception e ) {
e . printStackTrace ( ) ;
} finally {
field . setAccessible ( false ) ;
}
}
c = c . getSuperclass ( ) ;
} while ( c ! = TailBean . class ) ;
}
}
// 枚举自动转换中文
if ( field . isAnnotationPresent ( DictEnum . class ) ) {
field . setAccessible ( true ) ;
DictEnum dict = field . getAnnotation ( DictEnum . class ) ;
try {
String display = "" ;
Method methodByName = ReflectUtil . getMethodByName ( field . getType ( ) , "get" + StrUtil . upperFirst ( dict . value ( ) ) ) ;
Object enumValue = ReflectUtil . invoke ( field . get ( ext ) , methodByName ) ;
if ( ObjectUtil . isNotEmpty ( enumValue ) ) {
display = String . valueOf ( enumValue ) ;
}
ext . set ( field . getName ( ) + dict . suffix ( ) , display ) ;
} catch ( UtilException e ) {
throw new RuntimeException ( field . getName ( ) + " 缺少getter方法" ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
} finally {
field . setAccessible ( false ) ;
}
}
}
c = c . getSuperclass ( ) ;
} while ( c ! = TailBean . class ) ;
}
}
}