This commit is contained in:
2026-01-09 20:13:01 +08:00
parent 91195d3b42
commit 0282dbb0e7
665 changed files with 168201 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
package com.ruoyi.cms.domain.query;
import com.ruoyi.cms.domain.Job;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 前端搜索对象
*
* @author ruoyi
*/
@Data
public class ESJobSearch extends Job
{
/** 搜索值 */
private String searchValue;
/** 当前记录起始索引 */
private Integer current;
/** 每页显示记录数 */
private Integer pageSize;
private String sessionId;
private String radius;
@ApiModelProperty("排序方式 0推荐 1最热 2最新发布 3最大薪资")
private Integer order;
//商圈id
private List<Long> commercialAreaIds;
//区县id
private List<String> countyIds;
//地铁id
private List<Integer> subwayIds;
/** 纬度 */
private BigDecimal latitude;
/** 经度 */
private BigDecimal longitude;
//是否发布 0未发布 1发布
private Integer isPublish;
private String salaryDictCode;
private String scaleDictCode;
private String area;
/*** 用户角色app角色0企业1求职者2网格员 3内部政府人员*/
private String userType;
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.cms.domain.query;
import lombok.Data;
@Data
public class LabelQuery {
private Long cardId;
private String companyName;
}

View File

@@ -0,0 +1,19 @@
package com.ruoyi.cms.domain.query;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class MineJobQuery extends Job {
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("发布时间")
private String startDate;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("发布时间")
private String endDate;
}

View File

@@ -0,0 +1,198 @@
package com.ruoyi.cms.domain.query;
import lombok.Data;
import java.time.Year;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Data
public class Staticsquery {
//月/季度/年
private String timeDimension;
//岗位发布数量 招聘增长率
private String type;
private String startTime;
private String endTime;
public List<String> generateTimeRange() {
switch (timeDimension) {
case "":
return generateMonthRange();
case "季度":
return generateQuarterRange();
case "":
return generateYearRange();
default:
throw new IllegalArgumentException("Invalid time dimension: " + timeDimension);
}
}
private List<String> generateMonthRange() {
List<String> months = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
try {
YearMonth start = YearMonth.parse(startTime, formatter);
YearMonth end = YearMonth.parse(endTime, formatter);
if (start.isAfter(end)) {
YearMonth temp = start;
start = end;
end = temp;
}
YearMonth current = end;
while (!current.isBefore(start)) {
months.add(current.format(formatter));
current = current.minusMonths(1);
}
if (!start.isAfter(end)) {
Collections.reverse(months);
}
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid month format. Please use yyyy-MM format.");
}
return months;
}
private List<String> generateQuarterRange() {
List<String> quarters = new ArrayList<>();
try {
Quarter start = Quarter.parse(startTime);
Quarter end = Quarter.parse(endTime);
if (start.isAfter(end)) {
Quarter temp = start;
start = end;
end = temp;
}
Quarter current = end;
while (!current.isBefore(start)) {
quarters.add(current.toString());
current = current.previous();
}
if (!start.isAfter(end)) {
Collections.reverse(quarters);
}
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("Invalid quarter format. Please use yyyy-第x季度 format (e.g. 2024-第一季度).");
}
return quarters;
}
private List<String> generateYearRange() {
List<String> years = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
try {
Year start = Year.parse(startTime, formatter);
Year end = Year.parse(endTime, formatter);
if (start.isAfter(end)) {
Year temp = start;
start = end;
end = temp;
}
Year current = end;
while (!current.isBefore(start)) {
years.add(current.format(formatter));
current = current.minusYears(1);
}
if (!start.isAfter(end)) {
Collections.reverse(years);
}
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid year format. Please use yyyy format.");
}
return years;
}
// Helper class for quarter handling with Chinese characters
private static class Quarter implements Comparable<Quarter> {
private final int year;
private final int quarter;
private static final String[] CHINESE_QUARTERS = {"第一季度", "第二季度", "第三季度", "第四季度"};
private Quarter(int year, int quarter) {
if (quarter < 1 || quarter > 4) {
throw new IllegalArgumentException("Quarter must be between 1 and 4");
}
this.year = year;
this.quarter = quarter;
}
public static Quarter parse(String quarterStr) {
String[] parts = quarterStr.split("-");
if (parts.length != 2 || !parts[1].startsWith("") || !parts[1].endsWith("季度")) {
throw new IllegalArgumentException("Invalid quarter format");
}
int year = Integer.parseInt(parts[0]);
String quarterStrPart = parts[1];
// Find which quarter this matches
int quarter = -1;
for (int i = 0; i < CHINESE_QUARTERS.length; i++) {
if (CHINESE_QUARTERS[i].equals(quarterStrPart)) {
quarter = i + 1;
break;
}
}
if (quarter == -1) {
throw new IllegalArgumentException("Invalid quarter name: " + quarterStrPart);
}
return new Quarter(year, quarter);
}
public Quarter previous() {
if (quarter == 1) {
return new Quarter(year - 1, 4);
} else {
return new Quarter(year, quarter - 1);
}
}
public boolean isBefore(Quarter other) {
if (this.year < other.year) return true;
if (this.year > other.year) return false;
return this.quarter < other.quarter;
}
public boolean isAfter(Quarter other) {
return other.isBefore(this);
}
@Override
public String toString() {
return year + "-" + CHINESE_QUARTERS[quarter - 1];
}
@Override
public int compareTo(Quarter other) {
if (this.year != other.year) {
return Integer.compare(this.year, other.year);
}
return Integer.compare(this.quarter, other.quarter);
}
}
}