|
|
@@ -1,14 +1,23 @@
|
|
|
package com.kym.service.miniapp.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ClassUtil;
|
|
|
+import cn.hutool.core.util.ReflectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.kym.common.IQuery;
|
|
|
+import com.kym.common.utils.CommUtil;
|
|
|
import com.kym.entity.miniapp.DataDict;
|
|
|
import com.kym.mapper.miniapp.DataDictMapper;
|
|
|
import com.kym.service.miniapp.DataDictService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.lang.reflect.Modifier;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -24,6 +33,32 @@ public class DataDictServiceImpl extends ServiceImpl<DataDictMapper, DataDict> i
|
|
|
@Override
|
|
|
public Object list(IQuery<DataDict> query) {
|
|
|
PageHelper.startPage(query.pageNum, query.pageSize);
|
|
|
- return new PageInfo<>(list());
|
|
|
+ Wrapper wrapper = getWrapper(query);
|
|
|
+ return new PageInfo<>(list(wrapper));
|
|
|
+ }
|
|
|
+
|
|
|
+ public Wrapper<?> getWrapper(IQuery<?> query) {
|
|
|
+ Object queryObject = query.query;
|
|
|
+ if (null == queryObject) {
|
|
|
+ return new QueryWrapper<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryChainWrapper<?> wrapper = new QueryChainWrapper<>(queryObject.getClass());
|
|
|
+
|
|
|
+ Field[] fields = ClassUtil.getDeclaredFields(queryObject.getClass());
|
|
|
+ if(!CommUtil.isEmptyOrNull(fields)){
|
|
|
+ for (Field field : fields) {
|
|
|
+ int modifiers = field.getModifiers();
|
|
|
+ if(Modifier.isFinal(modifiers)||Modifier.isStatic(modifiers)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Object fieldValue = ReflectUtil.getFieldValue(queryObject, field);
|
|
|
+ if(!CommUtil.isEmptyOrNull(fieldValue)){
|
|
|
+ wrapper.eq(CommUtil.toDbColumn(field.getName()),fieldValue);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return wrapper;
|
|
|
}
|
|
|
}
|