query
This commit is contained in:
@@ -2,13 +2,16 @@ package org.nl.common.domain;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nl.modules.tools.MapOf;
|
import org.nl.modules.tools.MapOf;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author ZZQ
|
* @author ZZQ
|
||||||
@@ -17,7 +20,11 @@ import java.util.function.BiConsumer;
|
|||||||
@Data
|
@Data
|
||||||
public class BaseQuery<T> {
|
public class BaseQuery<T> {
|
||||||
|
|
||||||
public Map<String, QueryType> doP = MapOf.of("blurry", QueryType.LK);
|
public Map<String,QParam> doP = MapOf.of("blurry",QParam.builder().k(new String[]{"name"}).type(QueryType.LK)
|
||||||
|
,"startTime",QParam.builder().k(new String[]{"createTime"}).type(QueryType.LT)
|
||||||
|
,"endTime",QParam.builder().k(new String[]{"createTime"}).type(QueryType.LE)
|
||||||
|
,"sort",QParam.builder().k(new String[]{"sort"}).type(QueryType.BY)
|
||||||
|
);
|
||||||
|
|
||||||
private String blurry;
|
private String blurry;
|
||||||
|
|
||||||
@@ -30,20 +37,25 @@ public class BaseQuery<T> {
|
|||||||
private String sort;
|
private String sort;
|
||||||
|
|
||||||
public QueryWrapper<T> build(){
|
public QueryWrapper<T> build(){
|
||||||
|
List<String> collect = doP.keySet().stream().collect(Collectors.toList());
|
||||||
QueryWrapper<T> wrapper = new QueryWrapper<>();
|
QueryWrapper<T> wrapper = new QueryWrapper<>();
|
||||||
JSONObject json = (JSONObject)JSONObject.toJSON(this);
|
JSONObject json = (JSONObject)JSONObject.toJSON(this);
|
||||||
json.forEach(new BiConsumer<String, Object>() {
|
json.forEach((key, vel) -> {
|
||||||
@Override
|
if (vel != null){
|
||||||
public void accept(String s, Object o) {
|
QParam qParam = doP.get(key);
|
||||||
if (o instanceof Collection){
|
if (qParam != null){
|
||||||
wrapper.in(s,(Collection)o);
|
QueryType.build(qParam.type,wrapper,qParam.k,vel);
|
||||||
}else {
|
}else {
|
||||||
wrapper.eq(s,o);
|
wrapper.eq(key,vel);
|
||||||
}
|
}
|
||||||
wrapper.orderByAsc(true, String.valueOf(o));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Builder
|
||||||
|
@Data
|
||||||
|
class QParam{
|
||||||
|
public String[] k;
|
||||||
|
public QueryType type;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,18 +1,34 @@
|
|||||||
package org.nl.common.domain;
|
package org.nl.common.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author ZZQ
|
* @author ZZQ
|
||||||
* @Date 2022/12/14 8:26 下午
|
* @Date 2022/12/14 8:26 下午
|
||||||
*/
|
*/
|
||||||
|
@Getter
|
||||||
public enum QueryType {
|
public enum QueryType {
|
||||||
EQ((q, k, v) -> { q.eq(k,v); }),
|
//
|
||||||
IN((q, k, v) -> { q.in(k,v); }),
|
EQ((q, k, v) -> { q.eq(k[0],v); }),
|
||||||
LK((q, k, v) -> { q.eq(k,v); });
|
IN((q, key, o) -> { if (o instanceof Collection){ q.in(key[0],(Collection) o); } }),
|
||||||
private LConsumer<QueryWrapper,String, Object[]> doP;
|
LK((q, keys, o) -> { for (String key : keys) { q.like(key,o); } }),
|
||||||
|
LE((q, k, v) -> { q.le(k[0],v); }),
|
||||||
|
BY((q, k, v) -> { q.orderByDesc(k[0],v); }),
|
||||||
|
LT((q, k, v) -> { q.lt(k[0],v); });
|
||||||
|
|
||||||
QueryType(LConsumer<QueryWrapper,String, Object[]> doP) {
|
private LConsumer<QueryWrapper,String[], Object> doP;
|
||||||
|
|
||||||
|
QueryType(LConsumer<QueryWrapper,String[], Object> doP) {
|
||||||
this.doP = doP;
|
this.doP = doP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void build(QueryType type, QueryWrapper q,String[] k ,Object v){
|
||||||
|
type.getDoP().accept(q,k,v);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,7 @@ package org.nl.modules.common.utils.dto;
|
|||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nl.modules.system.service.dto.UserDto;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.nl.system.service.user.dao.User;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -26,7 +25,7 @@ public class CurrentUser implements Serializable {
|
|||||||
private String preson_name;
|
private String preson_name;
|
||||||
|
|
||||||
//用户详细信息
|
//用户详细信息
|
||||||
private User user;
|
private SysUser user;
|
||||||
|
|
||||||
private List<String> permissions = new ArrayList<>();
|
private List<String> permissions = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user