|
@@ -17,6 +17,12 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+/**
|
|
|
+ * 扩展mbp ServiceImpl
|
|
|
+ * @param <M>
|
|
|
+ * @param <T>
|
|
|
+ * @author 忠畅
|
|
|
+ */
|
|
|
public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T> implements IService<T> {
|
|
|
private ApplicationContext applicationContext;
|
|
|
|
|
@@ -24,6 +30,11 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
this.applicationContext = applicationContext;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 一对一字典查询处理
|
|
|
+ * @param queryWrapper
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public T getOneLink(QueryWrapper<T> queryWrapper) {
|
|
|
T one = super.getOne(queryWrapper);
|
|
|
if (one == null) {
|
|
@@ -33,6 +44,11 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
return one;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 一对多字典查询处理
|
|
|
+ * @param queryWrapper
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public List<T> getListLink(QueryWrapper<T> queryWrapper) {
|
|
|
List<T> list = super.list(queryWrapper);
|
|
|
if (list == null || list.isEmpty()) {
|
|
@@ -42,6 +58,12 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 分页查询处理
|
|
|
+ * @param queryWrapper
|
|
|
+ * @param page
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public IPage<T> getPageLink(QueryWrapper<T> queryWrapper,IPage<T> page) {
|
|
|
IPage<T> iPage = super.page(page, queryWrapper);
|
|
|
if (iPage == null ) {
|
|
@@ -53,12 +75,20 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
return iPage;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 多对多查询字典处理
|
|
|
+ * @param list
|
|
|
+ */
|
|
|
private void doManyLink(List<T> list) {
|
|
|
for (T many : list) {
|
|
|
doOneLink(many);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 单个字典处理
|
|
|
+ * @param one
|
|
|
+ */
|
|
|
private void doOneLink(T one) {
|
|
|
Class<?> clazz = one.getClass();
|
|
|
Field[] declaredFields = clazz.getDeclaredFields();
|
|
@@ -69,6 +99,12 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
doConst(one,field);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 常量字典处理
|
|
|
+ * @param one
|
|
|
+ * @param field
|
|
|
+ */
|
|
|
private void doConst(T one,Field field) {
|
|
|
try {
|
|
|
LinkConst linkConst = field.getAnnotation(LinkConst.class);
|
|
@@ -92,6 +128,12 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理一对多字典情况
|
|
|
+ * @param one
|
|
|
+ * @param field
|
|
|
+ */
|
|
|
private void doLinkOneToMany(T one, Field field) {
|
|
|
try {
|
|
|
LinkMany linkMany = field.getAnnotation(LinkMany.class);
|
|
@@ -122,6 +164,11 @@ public class SysServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,T>
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理一对一字典情况
|
|
|
+ * @param one
|
|
|
+ * @param field
|
|
|
+ */
|
|
|
private void doLinkOneToOne(T one,Field field) {
|
|
|
try {
|
|
|
LinkOne linkOne = field.getAnnotation(LinkOne.class);
|