自动化立体仓库 - WMS系统
luxiaotao1123
2020-07-24 00b9c782322ad546dd6bd37e6ee27f357557a676
src/main/java/com/zy/common/web/BaseController.java
@@ -22,6 +22,8 @@
 */
public class BaseController extends AbstractBaseController {
    protected static final String RANGE_TIME_LINK = " - ";
    @Autowired
    protected HttpServletRequest request;
    @Autowired
@@ -49,13 +51,46 @@
        return "";
    }
    protected <T> Page<T> toPage(Integer pageNumber, Integer pageSize, Map<String, Object> param){
    /**
     * 分页组装
     * @param pageNumber
     * @param pageSize
     * @param map
     * @param cls
     * @param <T>
     * @return
     */
    protected <T> Page<T> toPage(Integer pageNumber, Integer pageSize, Map<String, Object> map, Class<T> cls){
        // 分页索引和单页数量组装
        pageNumber = Optional.ofNullable(pageNumber).orElse(1);
        pageSize = Optional.ofNullable(pageSize).orElse(10);
        Page<T> page = new Page<>(pageNumber, pageSize);
        param.put("pageNumber", pageNumber);
        param.put("pageSize", pageSize);
        page.setCondition(param);
        map.put("pageNumber", pageNumber);
        map.put("pageSize", pageSize);
        // 全字段模糊搜索 todo
        if (!Cools.isEmpty(map.get("condition"))) {
            Set<String> columns = new HashSet<>();
            for (Field field : Cools.getAllFields(cls)){
                if (Modifier.isFinal(field.getModifiers())
                        || Modifier.isStatic(field.getModifiers())
                        || Modifier.isTransient(field.getModifiers())){
                    continue;
                }
                String column = null;
                if (field.isAnnotationPresent(TableField.class)) {
                    column = field.getAnnotation(TableField.class).value();
                }
                if (Cools.isEmpty(column)) {
                    column = field.getName();
                }
                if (!map.keySet().contains(column)) {
                    columns.add(column);
                }
            }
            columns.forEach(col->map.put(col, map.get("condition")));
        }
        page.setCondition(map);
        return page;
    }