This commit is contained in:
zhangzhiqiang
2022-12-15 11:33:30 +08:00
parent 03d061d320
commit 2545e92dde
4 changed files with 44 additions and 17 deletions

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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<>();
}