123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package org.example.join.sql;
- import cn.hutool.core.util.ObjectUtil;
- import com.baomidou.mybatisplus.core.toolkit.StringPool;
- import org.example.join.domain.QueryColumn;
- import org.example.join.domain.QueryConditionOrder;
- import org.example.join.util.SqlConstant;
- import java.util.Arrays;
- import java.util.Objects;
- public class Where<R> extends SqlExecute<R> {
- private final Sql<R> sql;
- protected Where(Sql<R> sql) {
- super(sql);
- this.sql = sql;
- }
- public Where<R> groupBy(QueryColumn... queryColumns) {
- if (ObjectUtil.isEmpty(queryColumns)) {
- return this;
- }
- sql.groupByList.addAll(Arrays.stream(queryColumns).filter(Objects::nonNull).toList());
- return this;
- }
- public Where<R> orderBy(QueryConditionOrder... queryConditionOrderBIES) {
- if (ObjectUtil.isEmpty(queryConditionOrderBIES)) {
- return this;
- }
- sql.orderByList.addAll(Arrays.stream(queryConditionOrderBIES).filter(Objects::nonNull).toList());
- return this;
- }
- public Where<R> orderByAsc(QueryColumn... queryColumns) {
- if (ObjectUtil.isEmpty(queryColumns)) {
- return this;
- }
- sql.orderByList.addAll(Arrays.stream(queryColumns).filter(Objects::nonNull).map(QueryColumn::asc).toList());
- return this;
- }
- public Where<R> orderByDesc(QueryColumn... queryColumns) {
- if (ObjectUtil.isEmpty(queryColumns)) {
- return this;
- }
- sql.orderByList.addAll(Arrays.stream(queryColumns).filter(Objects::nonNull).map(QueryColumn::desc).toList());
- return this;
- }
- public Where<R> limit(Number offset) {
- sql.limit = SqlConstant.LIMIT + offset.longValue();
- return this;
- }
- public Where<R> limit(Number offset, Number rows) {
- sql.limit = SqlConstant.LIMIT + offset.longValue() + StringPool.COMMA + rows.longValue();
- return this;
- }
- }
|