fix: 87490 外来标准法规文本库--查询--多日期查询,查的是范围了
This commit is contained in:
+23
-9
@@ -2368,19 +2368,33 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
**/
|
**/
|
||||||
private void processDateManyTypeCondition(StringBuilder selectCondition, String key, String value) {
|
private void processDateManyTypeCondition(StringBuilder selectCondition, String key, String value) {
|
||||||
if (value.contains(",")) {
|
if (value.contains(",")) {
|
||||||
String startDate = "date_format('" + value.split(",")[0] + "', '%Y-%m-%d')";
|
// 提取输入的开始日期和结束日期
|
||||||
String endDate = "date_format('" + value.split(",")[1] + "', '%Y-%m-%d')";
|
String[] dates = value.split(",");
|
||||||
selectCondition.append(" and (( date_format(SUBSTRING_INDEX(").append(key).append(", ',', 1),'%Y-%m-%d') >= ").append(startDate)
|
String startDate = "STR_TO_DATE('" + dates[0] + "', '%Y-%m-%d')";
|
||||||
.append(" and date_format(SUBSTRING_INDEX(").append(key).append(", ',', 1),'%Y-%m-%d') <= ").append(endDate).append(")");
|
String endDate = "STR_TO_DATE('" + dates[1] + "', '%Y-%m-%d')";
|
||||||
selectCondition.append(" or ( date_format(SUBSTRING_INDEX(").append(key).append(", ',', 1),'%Y-%m-%d') <= ").append(startDate)
|
|
||||||
.append(" and date_format(SUBSTRING_INDEX(").append(key).append(", ',', -1),'%Y-%m-%d') >= ").append(endDate).append(")");
|
// 添加 SQL 条件,使用 EXISTS 和一个子查询
|
||||||
selectCondition.append(" or ( date_format(SUBSTRING_INDEX(").append(key).append(", ',', -1),'%Y-%m-%d') >= ").append(startDate)
|
selectCondition.append(" AND EXISTS (")
|
||||||
.append(" and date_format(SUBSTRING_INDEX(").append(key).append(", ',', -1),'%Y-%m-%d') <= ").append(endDate).append("))");
|
.append("SELECT 1 FROM (")
|
||||||
|
.append("SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5")
|
||||||
|
.append(") numbers WHERE (")
|
||||||
|
.append(key)
|
||||||
|
.append(" REGEXP REPLACE(CONCAT('^', REPEAT('.*?,', numbers.n - 1), '.*'), ',{2,}', ',,') AND ")
|
||||||
|
.append("STR_TO_DATE(SUBSTRING_INDEX(SUBSTRING_INDEX(")
|
||||||
|
.append(key)
|
||||||
|
.append(", ',', numbers.n), ',', -1), '%Y-%m-%d') BETWEEN ")
|
||||||
|
.append(startDate)
|
||||||
|
.append(" AND ")
|
||||||
|
.append(endDate)
|
||||||
|
.append("))");
|
||||||
} else {
|
} else {
|
||||||
selectCondition.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
|
// 单个日期的处理,使用 LIKE 进行模糊匹配
|
||||||
|
selectCondition.append(" AND ").append(key).append(" LIKE CONCAT('%', '").append(value).append("', '%')");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] getMinioFileContent(OSSFile file) throws Exception {
|
public byte[] getMinioFileContent(OSSFile file) throws Exception {
|
||||||
return this.getMinioFileContentNormal(file, false);
|
return this.getMinioFileContentNormal(file, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user