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