Skip to content

Commit cc680a6

Browse files
committed
add SearchRequest
1 parent 00aa586 commit cc680a6

File tree

4 files changed

+30
-15
lines changed

4 files changed

+30
-15
lines changed
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,32 @@
33
import com.codingapi.springboot.framework.dto.request.Filter;
44
import com.codingapi.springboot.framework.dto.request.PageRequest;
55
import com.codingapi.springboot.framework.dto.request.RequestFilter;
6+
import lombok.extern.slf4j.Slf4j;
67
import org.springframework.data.domain.Sort;
78

89
import java.util.ArrayList;
910
import java.util.Arrays;
1011
import java.util.List;
1112

12-
public class DynamicRequest {
13+
/**
14+
* 动态条件查询组装
15+
*/
16+
@Slf4j
17+
class DynamicSQLBuilder {
1318

1419
private final PageRequest request;
1520
private final Class<?> clazz;
1621

1722
private final List<Object> params = new ArrayList<>();
1823
private int paramIndex = 1;
1924

20-
public DynamicRequest(PageRequest request, Class<?> clazz) {
25+
public DynamicSQLBuilder(PageRequest request, Class<?> clazz) {
2126
this.request = request;
2227
this.clazz = clazz;
2328
}
2429

2530

26-
public String getHql() {
31+
public String getHQL() {
2732
StringBuilder hql = new StringBuilder("FROM " + clazz.getSimpleName() + " WHERE ");
2833
RequestFilter requestFilter = request.getRequestFilter();
2934
if (requestFilter.hasFilter()) {
@@ -50,8 +55,8 @@ public String getHql() {
5055
}
5156
}
5257

53-
System.out.println(hql);
54-
System.out.println(params);
58+
log.debug("hql:{}", hql);
59+
log.debug("params:{}", params);
5560
return hql.toString();
5661
}
5762

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88

99
import java.beans.PropertyDescriptor;
1010

11-
public class ExampleRequest {
11+
/**
12+
* Example组装
13+
*/
14+
class ExampleBuilder {
1215

1316
private final PageRequest request;
1417
private final Class<?> clazz;
1518

16-
public ExampleRequest(PageRequest request, Class<?> clazz) {
19+
public ExampleBuilder(PageRequest request, Class<?> clazz) {
1720
this.request = request;
1821
this.clazz = clazz;
1922
}

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/repository/FastRepository.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,19 @@
77
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
88
import org.springframework.data.repository.NoRepositoryBean;
99

10+
/**
11+
* 更强大的Repository对象
12+
* @param <T>
13+
* @param <ID>
14+
*/
1015
@NoRepositoryBean
1116
public interface FastRepository<T, ID> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T>, DynamicRepository<T, ID> {
1217

1318
default Page<T> findAll(PageRequest request) {
1419
if (request.hasFilter()) {
1520
Class<T> clazz = getDomainClass();
16-
ExampleRequest exampleRequest = new ExampleRequest(request, clazz);
17-
return findAll(exampleRequest.getExample(), request);
21+
ExampleBuilder exampleBuilder = new ExampleBuilder(request, clazz);
22+
return findAll(exampleBuilder.getExample(), request);
1823
}
1924
return findAll((org.springframework.data.domain.PageRequest) request);
2025
}
@@ -30,8 +35,8 @@ default Class<T> getDomainClass() {
3035
default Page<T> pageRequest(PageRequest request) {
3136
if (request.hasFilter()) {
3237
Class<T> clazz = getDomainClass();
33-
DynamicRequest dynamicRequest = new DynamicRequest(request, clazz);
34-
return dynamicPageQuery(dynamicRequest.getHql(), request, dynamicRequest.getParams());
38+
DynamicSQLBuilder dynamicSQLBuilder = new DynamicSQLBuilder(request, clazz);
39+
return dynamicPageQuery(dynamicSQLBuilder.getHQL(), request, dynamicSQLBuilder.getParams());
3540
}
3641
return findAll((org.springframework.data.domain.PageRequest) request);
3742
}

springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/repository/SearchRequest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import java.util.Base64;
1717
import java.util.List;
1818

19-
19+
/**
20+
* HttpServletRequest 请求参数解析成 PageRequest对象
21+
*/
2022
public class SearchRequest {
2123

2224
private int current;
@@ -60,21 +62,21 @@ public ClassContent(Class<?> clazz, PageRequest pageRequest) {
6062
}
6163

6264
public void addFilter(String key, String value) {
63-
Class<?> keyClass = getKeyClass(key);
65+
Class<?> keyClass = getKeyType(key);
6466
Object v = JSON.parseObject(value, keyClass);
6567
pageRequest.addFilter(key, Relation.EQUAL, v);
6668
}
6769

6870
public void addFilter(String key, List<String> value) {
69-
Class<?> keyClass = getKeyClass(key);
71+
Class<?> keyClass = getKeyType(key);
7072
pageRequest.addFilter(key, Relation.IN, value.stream()
7173
.map(v -> JSON.parseObject(v, keyClass))
7274
.toArray()
7375
);
7476
}
7577

7678

77-
private Class<?> getKeyClass(String key) {
79+
private Class<?> getKeyType(String key) {
7880
String[] keys = key.split("\\.");
7981
Class<?> keyClass = clazz;
8082
for (String k : keys) {

0 commit comments

Comments
 (0)