| | |
| | | import com.baomidou.mybatisplus.core.metadata.OrderItem; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.vci.ubcs.starter.web.constant.QueryOptionConstant; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | * @date 2023/6/6 15:26 |
| | | */ |
| | | public class UBCSCondition { |
| | | |
| | | /** |
| | | * 空格 |
| | | */ |
| | | public static final String SPACE = " "; |
| | | |
| | | public UBCSCondition() { |
| | | } |
| | |
| | | return qw; |
| | | } |
| | | |
| | | public static String getWhereSqlByMap(Map<String, String> conditionMap){ |
| | | List<String> whereSqlList = new ArrayList<>(); |
| | | conditionMap.forEach((key,value)->{ |
| | | String sql = ""; |
| | | // 不为空才去拼接 |
| | | if(!Func.hasEmpty(new Object[]{key, value}) && !key.endsWith("_ignore")){ |
| | | if (key.endsWith("_like")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_like"); |
| | | sql = field + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE; |
| | | } else if (key.endsWith("_notequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notequal"); |
| | | sql = field + SPACE + " != " + value + SPACE; |
| | | } else if (key.endsWith("_likeleft")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeleft"); |
| | | sql = field + SPACE + "LIKE" + SPACE + "%" + value + SPACE; |
| | | } else if (key.endsWith("_likeright")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeright"); |
| | | sql = field + SPACE + "LIKE" + SPACE + value + "%" + SPACE; |
| | | } else if (key.endsWith("_notlike")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notlike"); |
| | | sql = field + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE; |
| | | } else if (key.endsWith("_ge")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_ge"); |
| | | sql = field + SPACE + " >= " + value + SPACE; |
| | | } else if (key.endsWith("_le")) { |
| | | //说明是<=的。我们需要先获取一下 |
| | | String field = UBCSSqlKeyword.getColumn(key, "_le"); |
| | | sql = field + SPACE + " <= " + value + "" + SPACE; |
| | | } else if (key.endsWith("_gt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_gt"); |
| | | sql = field + SPACE + "> " + value + SPACE; |
| | | } else if (key.endsWith("_lt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_lt"); |
| | | sql = field + SPACE + "< " + value + SPACE; |
| | | } else if (key.endsWith("_datege")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datege"); |
| | | sql = field + SPACE + ">= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_dategt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dategt"); |
| | | sql = field + SPACE + "> '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_dateequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dateequal"); |
| | | sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_datele")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datele"); |
| | | sql = field + SPACE + "<= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_datelt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datelt"); |
| | | sql = field + SPACE + "< '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_null")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_null"); |
| | | sql = field + SPACE + "IS NULL" + SPACE; |
| | | } else if (key.endsWith("_notnull")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notnull"); |
| | | sql = field + SPACE + "IS NOT NULL" + SPACE; |
| | | } else if (key.endsWith("_dateequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dateequal"); |
| | | sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else if (key.endsWith("_equal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_equal"); |
| | | sql = field + SPACE + "= '" + value + "'" + SPACE; |
| | | } else if(key.endsWith("_in")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_in"); |
| | | sql = VciBaseUtil.toInSql(field,value); |
| | | } else if(key.endsWith("_notin")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notin"); |
| | | sql = VciBaseUtil.toInSql(field,value); |
| | | } |
| | | if(!sql.isEmpty()){ |
| | | whereSqlList.add(sql); |
| | | } |
| | | } |
| | | }); |
| | | //组合起来 |
| | | StringBuilder andSb = new StringBuilder(); |
| | | whereSqlList.stream().forEach(s -> { |
| | | andSb.append(s).append(SPACE).append(QueryOptionConstant.AND).append(SPACE); |
| | | }); |
| | | String andString = andSb.toString().trim(); |
| | | String endWithSql = QueryOptionConstant.AND; |
| | | if (andString.endsWith(endWithSql)) { |
| | | andString = andString.substring(0, andString.length() - endWithSql.length()); |
| | | } |
| | | return andString; |
| | | } |
| | | |
| | | } |