You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.2 KiB

3 years ago
package com.qs.serve.common.util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qs.serve.common.framework.mybatis.query.AnnotationQueryStorage;
import com.qs.serve.common.framework.mybatis.query.model.QueryFieldDataValue;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* 生成SQL条件包装对象
* @author YenHex
* @date 2022/2/28
**/
@UtilityClass
@Slf4j
public class WarpUtil extends AnnotationQueryStorage {
private static final String ORDER_PROP_NAME = "prop";
private static final String ORDER_TYPE_NAME = "order";
private static final String ORDER_DESC = "desc";
private static final String CREATE_TIME = "create_time";
private static final String START_TIME = "startTime";
private static final String END_TIME = "endTime";
public static <T> QueryWrapper<T> build(T query){
return build(query,false);
}
public static <T> QueryWrapper<T> build(T query,Boolean orderAble){
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
List<QueryFieldDataValue> dataValues = loadQueryFieldDataValues(query);
assert dataValues != null;
initWrap(dataValues,queryWrapper);
initBetweenTime(queryWrapper);
if(orderAble){
String columnsString = ServletUtils.getParameter(ORDER_PROP_NAME);
String orderType = ServletUtils.getParameter(ORDER_TYPE_NAME);
if(StringUtils.isNotEmpty(columnsString)){
String[] columns = columnsString.split(",");
3 years ago
// if(orderType.equals(ORDER_DESC)){
// queryWrapper.orderByDesc(columns);
// }else {
// queryWrapper.orderByAsc(columns);
// }
3 years ago
}
}
return queryWrapper;
}
public static void initBetweenTime(QueryWrapper<?> queryWrapper){
String startTime = ServletUtils.getParameter(START_TIME);
String endTime = ServletUtils.getParameter(END_TIME);
if(!StringUtils.hasEmpty(startTime,endTime)){
queryWrapper.ge(CREATE_TIME,startTime);
queryWrapper.le(CREATE_TIME,endTime);
}
}
}