¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill åºéª (smallchill@163.com) |
| | | */ |
| | | package org.springblade.core.mp.support; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.metadata.OrderItem; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.springblade.core.launch.constant.TokenConstant; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * å页工å
· |
| | | * |
| | | * @author Chill |
| | | */ |
| | | public class Condition { |
| | | |
| | | /** |
| | | * 转åæmybatis plusä¸çPage |
| | | * |
| | | * @param query æ¥è¯¢æ¡ä»¶ |
| | | * @return IPage |
| | | */ |
| | | public static <T> IPage<T> getPage(Query query) { |
| | | Page<T> page = new Page<>(Func.toInt(query.getCurrent(), 1), Func.toInt(query.getSize(), 10)); |
| | | String[] ascArr = Func.toStrArray(query.getAscs()); |
| | | for (String asc : ascArr) { |
| | | page.addOrder(OrderItem.asc(StringUtil.cleanIdentifier(asc))); |
| | | } |
| | | String[] descArr = Func.toStrArray(query.getDescs()); |
| | | for (String desc : descArr) { |
| | | page.addOrder(OrderItem.desc(StringUtil.cleanIdentifier(desc))); |
| | | } |
| | | return page; |
| | | } |
| | | |
| | | /** |
| | | * è·åmybatis plusä¸çQueryWrapper |
| | | * |
| | | * @param entity å®ä½ |
| | | * @param <T> ç±»å |
| | | * @return QueryWrapper |
| | | */ |
| | | public static <T> QueryWrapper<T> getQueryWrapper(T entity) { |
| | | return new QueryWrapper<>(entity); |
| | | } |
| | | |
| | | /** |
| | | * è·åmybatis plusä¸çQueryWrapper |
| | | * |
| | | * @param query æ¥è¯¢æ¡ä»¶ |
| | | * @param clazz å®ä½ç±» |
| | | * @param <T> ç±»å |
| | | * @return QueryWrapper |
| | | */ |
| | | public static <T> QueryWrapper<T> getQueryWrapper(Map<String, Object> query, Class<T> clazz) { |
| | | Kv exclude = Kv.create().set(TokenConstant.HEADER, TokenConstant.HEADER) |
| | | .set("current", "current").set("size", "size").set("ascs", "ascs").set("descs", "descs"); |
| | | return getQueryWrapper(query, exclude, clazz); |
| | | } |
| | | |
| | | /** |
| | | * è·åmybatis plusä¸çQueryWrapper |
| | | * |
| | | * @param query æ¥è¯¢æ¡ä»¶ |
| | | * @param exclude æé¤çæ¥è¯¢æ¡ä»¶ |
| | | * @param clazz å®ä½ç±» |
| | | * @param <T> ç±»å |
| | | * @return QueryWrapper |
| | | */ |
| | | public static <T> QueryWrapper<T> getQueryWrapper(Map<String, Object> query, Map<String, Object> exclude, Class<T> clazz) { |
| | | exclude.forEach((k, v) -> query.remove(k)); |
| | | QueryWrapper<T> qw = new QueryWrapper<>(); |
| | | qw.setEntity(BeanUtil.newInstance(clazz)); |
| | | SqlKeyword.buildCondition(query, qw); |
| | | return qw; |
| | | } |
| | | |
| | | } |