WechatGroup

This commit is contained in:
2025-09-22 17:06:47 +08:00
commit 410182ec79
542 changed files with 155561 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
package com.ruoyi.cms.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.xss.Xss;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 通知公告表 sys_notice
*
* @author ruoyi
*/
public class AppNotice extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 公告ID */
private Long noticeId;
/** 公告标题 */
private String noticeTitle;
/** 公告类型1通知 2公告 */
private String noticeType;
/** 公告内容 */
private String noticeContent;
/** 公告状态0正常 1关闭 */
private String status;
public Long getNoticeId()
{
return noticeId;
}
public void setNoticeId(Long noticeId)
{
this.noticeId = noticeId;
}
public void setNoticeTitle(String noticeTitle)
{
this.noticeTitle = noticeTitle;
}
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
public String getNoticeTitle()
{
return noticeTitle;
}
public void setNoticeType(String noticeType)
{
this.noticeType = noticeType;
}
public String getNoticeType()
{
return noticeType;
}
public void setNoticeContent(String noticeContent)
{
this.noticeContent = noticeContent;
}
public String getNoticeContent()
{
return noticeContent;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("noticeId", getNoticeId())
.append("noticeTitle", getNoticeTitle())
.append("noticeType", getNoticeType())
.append("noticeContent", getNoticeContent())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@@ -0,0 +1,39 @@
package com.ruoyi.cms.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 用户岗位浏览记录对象 app_review_job
* @author ${author}
* @date 2025-02-14
*/
@Data
@ApiModel("用户岗位浏览记录")
@TableName(value = "app_review_job")
public class AppReviewJob extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableId(value = "id",type = IdType.AUTO)
private Long id;
private Long userId;
private Long jobId;
/** 浏览日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "浏览日期", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("浏览日期")
private Date reviewDate;
}

View File

@@ -0,0 +1,114 @@
package com.ruoyi.cms.domain;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* APP用户对象 app_user
* @author lishundong
* @date 2024-09-03
*/
@Data
@ApiModel("APP用户")
@TableName(value = "app_user")
public class AppUser extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 用户ID */
@TableId(value = "user_id",type = IdType.AUTO)
@ApiModelProperty("用户ID")
private Long userId;
/** 用户名称 */
@Excel(name = "用户名称")
@ApiModelProperty("用户名称")
private String name;
/** 年龄段 对应字典age */
@Excel(name = "年龄段 对应字典age")
@ApiModelProperty("年龄段 对应字典age")
private String age;
/** 用户性别0男 1女对应字典sex */
@Excel(name = "用户性别", readConverterExp = "0=男,1=女")
@ApiModelProperty("用户性别0男 1女对应字典sex")
private String sex;
/** 生日 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("生日")
private Date birthDate;
/** 学历 对应字典education */
@Excel(name = "学历 对应字典education")
@ApiModelProperty("学历 对应字典education")
private String education;
/** 政治面貌 */
@Excel(name = "政治面貌")
@ApiModelProperty("政治面貌")
private String politicalAffiliation;
/** 手机号码 */
@Excel(name = "手机号码")
@ApiModelProperty("手机号码")
private String phone;
/** 头像地址 */
@Excel(name = "头像地址")
@ApiModelProperty("头像地址")
private String avatar;
/** 最低工资 */
@Excel(name = "最低工资")
@ApiModelProperty("最低工资")
private String salaryMin;
/** 最高工资 */
@Excel(name = "最高工资")
@ApiModelProperty("最高工资")
private String salaryMax;
/** 期望工作地 对应字典area */
@Excel(name = "期望工作地 对应字典area")
@ApiModelProperty("期望工作地 对应字典area")
private String area;
/** 帐号状态0正常 1停用 */
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
@ApiModelProperty("帐号状态0正常 1停用")
private String status;
/** 最后登录IP */
@Excel(name = "最后登录IP")
@ApiModelProperty("最后登录IP")
private String loginIp;
/** 最后登录时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("最后登录时间")
private Date loginDate;
@ApiModelProperty("期望岗位,逗号分隔")
private String jobTitleId;
@ApiModelProperty("期望薪资")
private String experience;
@ApiModelProperty("是否开启推荐0不推荐 1推荐")
private Integer isRecommend;
@TableField(exist = false)
private List<String> jobTitle;
}

View File

@@ -0,0 +1,177 @@
package com.ruoyi.cms.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 字典数据表 sys_dict_data
*
* @author ruoyi
*/
public class BussinessDictData extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 字典编码 */
@Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
private Long dictCode;
/** 字典排序 */
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
private Long dictSort;
/** 字典标签 */
@Excel(name = "字典标签")
private String dictLabel;
/** 字典键值 */
@Excel(name = "字典键值")
private String dictValue;
/** 字典类型 */
@Excel(name = "字典类型")
private String dictType;
/** 样式属性(其他样式扩展) */
private String cssClass;
/** 表格字典样式 */
private String listClass;
/** 是否默认Y是 N否 */
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
private String isDefault;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
public Long getDictCode()
{
return dictCode;
}
public void setDictCode(Long dictCode)
{
this.dictCode = dictCode;
}
public Long getDictSort()
{
return dictSort;
}
public void setDictSort(Long dictSort)
{
this.dictSort = dictSort;
}
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
public String getDictLabel()
{
return dictLabel;
}
public void setDictLabel(String dictLabel)
{
this.dictLabel = dictLabel;
}
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
public String getDictValue()
{
return dictValue;
}
public void setDictValue(String dictValue)
{
this.dictValue = dictValue;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType()
{
return dictType;
}
public void setDictType(String dictType)
{
this.dictType = dictType;
}
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass()
{
return cssClass;
}
public void setCssClass(String cssClass)
{
this.cssClass = cssClass;
}
public String getListClass()
{
return listClass;
}
public void setListClass(String listClass)
{
this.listClass = listClass;
}
public boolean getDefault()
{
return UserConstants.YES.equals(this.isDefault);
}
public String getIsDefault()
{
return isDefault;
}
public void setIsDefault(String isDefault)
{
this.isDefault = isDefault;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("dictCode", getDictCode())
.append("dictSort", getDictSort())
.append("dictLabel", getDictLabel())
.append("dictValue", getDictValue())
.append("dictType", getDictType())
.append("cssClass", getCssClass())
.append("listClass", getListClass())
.append("isDefault", getIsDefault())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@@ -0,0 +1,97 @@
package com.ruoyi.cms.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
* 字典类型表 sys_dict_type
*
* @author ruoyi
*/
public class BussinessDictType extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 字典主键 */
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
private Long dictId;
/** 字典名称 */
@Excel(name = "字典名称")
private String dictName;
/** 字典类型 */
@Excel(name = "字典类型")
private String dictType;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
public Long getDictId()
{
return dictId;
}
public void setDictId(Long dictId)
{
this.dictId = dictId;
}
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName()
{
return dictName;
}
public void setDictName(String dictName)
{
this.dictName = dictName;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType()
{
return dictType;
}
public void setDictType(String dictType)
{
this.dictType = dictType;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("dictId", getDictId())
.append("dictName", getDictName())
.append("dictType", getDictType())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@@ -0,0 +1,115 @@
package com.ruoyi.cms.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* app操作日志记录对象 bussiness_oper_log
* @author ${author}
* @date 2024-11-13
*/
@Data
@ApiModel("app操作日志记录")
@TableName(value = "bussiness_oper_log")
public class BussinessOperLog extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 日志主键 */
@TableId(value = "oper_id",type = IdType.AUTO)
@ApiModelProperty("日志主键")
private Long operId;
/** 模块标题 */
@Excel(name = "模块标题")
@ApiModelProperty("模块标题")
private String title;
/** 业务类型0其它 1新增 2修改 3删除 */
@Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除")
@ApiModelProperty("业务类型0其它 1新增 2修改 3删除")
private Integer businessType;
/** 方法名称 */
@Excel(name = "方法名称")
@ApiModelProperty("方法名称")
private String method;
/** 请求方式 */
@Excel(name = "请求方式")
@ApiModelProperty("请求方式")
private String requestMethod;
/** 操作类别0其它 1后台用户 2手机端用户 */
@Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户")
@ApiModelProperty("操作类别0其它 1后台用户 2手机端用户")
private Integer operatorType;
/** 操作人员 */
@Excel(name = "操作人员")
@ApiModelProperty("操作人员")
private String operName;
/** 部门名称 */
@Excel(name = "部门名称")
@ApiModelProperty("部门名称")
private String deptName;
/** 请求URL */
@Excel(name = "请求URL")
@ApiModelProperty("请求URL")
private String operUrl;
/** 主机地址 */
@Excel(name = "主机地址")
@ApiModelProperty("主机地址")
private String operIp;
/** 操作地点 */
@Excel(name = "操作地点")
@ApiModelProperty("操作地点")
private String operLocation;
/** 请求参数 */
@Excel(name = "请求参数")
@ApiModelProperty("请求参数")
private String operParam;
/** 返回参数 */
@Excel(name = "返回参数")
@ApiModelProperty("返回参数")
private String jsonResult;
/** 操作状态0正常 1异常 */
@Excel(name = "操作状态", readConverterExp = "0=正常,1=异常")
@ApiModelProperty("操作状态0正常 1异常")
private Integer status;
/** 错误消息 */
@Excel(name = "错误消息")
@ApiModelProperty("错误消息")
private String errorMsg;
/** 操作时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("操作时间")
private Date operTime;
/** 消耗时间 */
@Excel(name = "消耗时间")
@ApiModelProperty("消耗时间")
private Long costTime;
/** 业务类型数组 */
private Integer[] businessTypes;
}

View File

@@ -0,0 +1,48 @@
package com.ruoyi.cms.domain;
import java.math.BigDecimal;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 商圈对象 commercial_area
* @author Lishundong
* @date 2024-11-12
*/
@Data
@ApiModel("商圈")
@TableName(value = "commercial_area")
public class CommercialArea extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "commercial_area_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long commercialAreaId;
/** 商圈名称 */
@Excel(name = "商圈名称")
@ApiModelProperty("商圈名称")
private String commercialAreaName;
/** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
/** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
private String address;
}

View File

@@ -0,0 +1,63 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 公司对象 company
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("公司")
@TableName(value = "company")
public class Company extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 公司id */
@TableId(value = "company_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyId;
/** 单位名称 */
@Excel(name = "单位名称")
@ApiModelProperty("单位名称")
private String name;
/** 单位地点 */
@Excel(name = "单位地点")
@ApiModelProperty("单位地点")
private String location;
/** 主要行业 */
@Excel(name = "主要行业")
@ApiModelProperty("主要行业")
private String industry;
/** 单位规模 对应字典scale */
@Excel(name = "单位规模 对应字典scale")
@ApiModelProperty("单位规模 对应字典scale")
private String scale;
@Excel(name = "信用代码")
@ApiModelProperty("信用代码")
private String code;
@Excel(name = "单位介绍")
@ApiModelProperty("单位介绍")
private String description;
@Excel(name = "性质")
@ApiModelProperty("性质")
private String nature;
@ApiModelProperty("招聘数量")
private Integer totalRecruitment;
@TableField(exist = false)
@ApiModelProperty("是否收藏")
private Integer isCollection;
}

View File

@@ -0,0 +1,50 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 公司卡片对象 company_card
* @author ${author}
* @date 2025-02-18
*/
@Data
@ApiModel("公司卡片")
@TableName(value = "company_card")
public class CompanyCard extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 公司id */
@TableId(value = "company_card_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyCardId;
/** 卡片名称 */
@Excel(name = "卡片名称")
@ApiModelProperty("卡片名称")
private String name;
/** 标签,逗号分开 */
@Excel(name = "标签,逗号分开")
@ApiModelProperty("标签,逗号分开")
private String targ;
@Excel(name = "企业性质")
@ApiModelProperty("企业性质,逗号分开")
private String companyNature;
/** 背景色 */
@Excel(name = "背景色")
@ApiModelProperty("背景色")
private String backgroudColor;
private Integer status;
private Integer cardOrder;
private String description;
private String icon;
}

View File

@@ -0,0 +1,37 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 公司卡片收藏对象 company_card_collection
* @author ${author}
* @date 2025-02-18
*/
@Data
@ApiModel("公司卡片收藏")
@TableName(value = "company_card_collection")
public class CompanyCardCollection extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 公司id */
@TableId(value = "company_card_collection_id",type = IdType.AUTO)
@ApiModelProperty("公司id")
private Long companyCardCollectionId;
/** 用户id */
@Excel(name = "用户id")
@ApiModelProperty("用户id")
private Long userId;
@Excel(name = "用户id")
@ApiModelProperty("用户id")
private Long companyCardId;
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 用户公司收藏对象 company_collection
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("用户公司收藏")
@TableName(value = "company_collection")
public class CompanyCollection extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
/** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
}

View File

@@ -0,0 +1,33 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 公司标签对象 company_label
* @author ${author}
* @date 2025-02-18
*/
@Data
@ApiModel("公司标签")
@TableName(value = "company_label")
public class CompanyLabel extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableId(value = "id",type = IdType.AUTO)
private Long id;
private String dictValue;
private Long companyId;
}

View File

@@ -0,0 +1,119 @@
package com.ruoyi.cms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName;
import org.dromara.easyes.annotation.rely.Analyzer;
import org.dromara.easyes.annotation.rely.FieldType;
import org.dromara.easyes.annotation.rely.IdType;
import java.math.BigDecimal;
import java.util.Date;
/**
* 全文索引 ES数据模型
**/
@IndexName("job_document_gt")
@Data
public class ESJobDocument
{
/**
* es中的唯一id
*/
@IndexId(type = IdType.NONE)
@JsonIgnore
private String id;
/** 公告ID */
private Long jobId;
/** 公告标题 */
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
private String jobTitle;
/** 内容 */
@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
private String description;
/** 公告状态 */
@JsonIgnore
private String status;
private Long minSalary;
/** 最大薪资(元) */
private Long maxSalary;
/** 学历要求 对应字典education */
private String education;
/** 工作经验要求 对应字典experience */
private String experience;
/** 用人单位名称 */
private String companyName;
/** 工作地点 */
private String jobLocation;
private Integer jobLocationAreaCode;
/** 发布时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date postingDate;
/** 招聘人数 */
private Long vacancies;
/** 纬度 */
private BigDecimal latitude;
/** 经度 */
private BigDecimal longitude;
/** 浏览量 */
private Long view;
/** 公司id */
private Long companyId;
private Integer isHot;
private Integer applyNum;
@JsonIgnore
private Company company;
private Integer isApply;
private Integer isCollection;
private String dataSource;
private String jobUrl;
@JsonIgnore
@IndexField(fieldType = FieldType.GEO_POINT)
private String latAndLon;
@JsonIgnore
private String scaleDictCode;
private String industry;
private String jobCategory;
@JsonIgnore
private Integer education_int;
@JsonIgnore
private Integer experience_int;
// @JsonIgnore
private Integer scale;
private String appJobUrl;
private String companyNature;
private Integer isExplain;
private String explainUrl;
private String cover;
}

View File

@@ -0,0 +1,41 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户岗位收藏对象 job_collection
* @author lishundong
* @date 2024-09-03
*/
@Data
@ApiModel("用户和招聘会收藏")
@TableName(value = "fair_collection")
public class FairCollection extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 岗位id */
@Excel(name = "招聘会id")
@ApiModelProperty("招聘会id")
private Long fairId;
/** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 公司招聘会关联对象 fair_company
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("公司招聘会关联")
@TableName(value = "fair_company")
public class FairCompany extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
/** 招聘会id */
@Excel(name = "招聘会id")
@ApiModelProperty("招聘会id")
private Long jobFairId;
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 文件对象 file
* @author ${author}
* @date 2025-03-18
*/
@Data
@ApiModel("文件")
@TableName(value = "file")
public class File extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** url */
@Excel(name = "url")
@ApiModelProperty("url")
private String fileUrl;
/** 业务id */
@Excel(name = "业务id")
@ApiModelProperty("业务id")
private Long bussinessId;
}

View File

@@ -0,0 +1,148 @@
package com.ruoyi.cms.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 岗位对象 job
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("岗位")
@TableName(value = "job")
public class Job extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 工作id */
@TableId(value = "job_id",type = IdType.AUTO)
@ApiModelProperty("工作id")
private Long jobId;
/** 职位名称 */
@Excel(name = "职位名称")
@ApiModelProperty("职位名称")
private String jobTitle;
/** 最小薪资(元) */
@Excel(name = "最小薪资", readConverterExp = "元=")
@ApiModelProperty("最小薪资(元)")
private Long minSalary;
/** 最大薪资(元) */
@Excel(name = "最大薪资", readConverterExp = "元=")
@ApiModelProperty("最大薪资(元)")
private Long maxSalary;
/** 学历要求 对应字典education */
@Excel(name = "学历要求 对应字典education")
@ApiModelProperty("学历要求 对应字典education")
private String education;
/** 工作经验要求 对应字典experience */
@Excel(name = "工作经验要求 对应字典experience")
@ApiModelProperty("工作经验要求 对应字典experience")
private String experience;
/** 用人单位名称 */
@Excel(name = "用人单位名称")
@ApiModelProperty("用人单位名称")
private String companyName;
/** 工作地点 */
@Excel(name = "工作地点")
@ApiModelProperty("工作地点")
private String jobLocation;
@ApiModelProperty("工作地点区县字典代码")
private Integer jobLocationAreaCode;
/** 发布时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty("发布时间")
private Date postingDate;
/** 招聘人数 */
@Excel(name = "招聘人数")
@ApiModelProperty("招聘人数")
private Long vacancies;
/** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
/** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
/** 浏览量 */
@Excel(name = "浏览量")
@ApiModelProperty("浏览量")
@TableField("\"VIEW\"")
private Long view;
/** 公司id */
@Excel(name = "公司id")
@ApiModelProperty("公司id")
private Long companyId;
@ApiModelProperty("是否火")
private Integer isHot;
@ApiModelProperty("申请次数")
@JsonIgnore
private Integer applyNum;
@TableField(exist = false)
@ApiModelProperty("公司信息")
private Company company;
@TableField(exist = false)
@ApiModelProperty("是否申请 0为否 1为是")
private Integer isApply;
@TableField(exist = false)
@ApiModelProperty("是否收藏 0为否 1为是")
private Integer isCollection;
@ApiModelProperty("工作地点")
private String description;
@ApiModelProperty("是否发布 0未发布 1发布")
private Integer isPublish;
@ApiModelProperty("数据来源")
private String dataSource;
@ApiModelProperty("数据来源")
private String jobUrl;
private Long rowId;
@TableField(exist = false)
private String scale;
@TableField(exist = false)
private String industry;
@ApiModelProperty("岗位分类")
private String jobCategory;
@TableField(exist = false)
private String companyNature;
@TableField(exist = false)
private String applyTime;
private Integer isExplain;
private String explainUrl;
private String cover;
}

View File

@@ -0,0 +1,45 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 岗位申请对象 job_apply
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("岗位申请")
@TableName(value = "job_apply")
public class JobApply extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
/** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
/** 匹配度 */
@Excel(name = "匹配度")
@ApiModelProperty("匹配度")
private Long matchingDegree;
}

View File

@@ -0,0 +1,42 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;
/**
* 用户岗位收藏对象 job_collection
* @author lishundong
* @date 2024-09-03
*/
@Data
@ApiModel("用户岗位收藏")
@TableName(value = "job_collection")
public class JobCollection extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
/** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
}

View File

@@ -0,0 +1,82 @@
package com.ruoyi.cms.domain;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 招聘会信息对象 job_fair
* @author lishundong
* @date 2024-09-04
*/
@Data
@ApiModel("招聘会信息")
@TableName(value = "job_fair")
public class JobFair extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** 招聘会id */
@TableId(value = "job_fair_id",type = IdType.AUTO)
@ApiModelProperty("招聘会id")
private Long jobFairId;
/** 招聘会名称 */
@Excel(name = "招聘会名称")
@ApiModelProperty("招聘会名称")
private String name;
/** 招聘会类型 对应字典 job_fair_type */
@Excel(name = "招聘会类型 对应字典 job_fair_type")
@ApiModelProperty("招聘会类型 对应字典 job_fair_type")
private String jobFairType;
/** 地点 */
@Excel(name = "地点")
@ApiModelProperty("地点")
private String location;
/** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
/** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("描述")
private String description;
@ApiModelProperty("地点")
private String address;
/** 招聘会开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "招聘会开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会开始时间")
private Date startTime;
/** 招聘会结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "招聘会结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会结束时间")
private Date endTime;
@TableField(exist = false)
private List<Company> companyList;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date queryDate;
@TableField(exist = false)
public Integer isCollection;
}

View File

@@ -0,0 +1,41 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户岗位收藏对象 job_collection
* @author lishundong
* @date 2024-09-03
*/
@Data
@ApiModel("用户岗位收藏")
@TableName(value = "job_recommend")
public class JobRecomment extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long id;
/** 岗位id */
@Excel(name = "岗位id")
@ApiModelProperty("岗位id")
private Long jobId;
/** App用户id */
@Excel(name = "App用户id")
@ApiModelProperty("App用户id")
private Long userId;
}

View File

@@ -0,0 +1,35 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.util.Date;
@Data
@TableName(value = "notice")
public class Notice extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** ID */
@TableId(value = "notice_id",type = IdType.AUTO)
private Long noticeId;
/** 公告标题 */
private String title;
private String subTitle;
private Integer notReadCount;
private Integer isRead;
@JsonFormat(pattern = "MM-dd")
private Date date;
private String noticeType;
/** 公告内容 */
private String noticeContent;
private Long userId;
private Long bussinessId;
}

View File

@@ -0,0 +1,60 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import java.util.Date;
@Data
public class RowWork {
private String Id;
private String TaskId;
private String TaskName;
private String Std_class;
private String JobCategory;
private String SF;
private String ZCMC;
private String Aca112;
private String Acb22a;
private String Aac011;
private String Acb240;
private String Recruit_Num;
private String Acb202;
private String Aab302;
private String Acb241;
private String Salary;
private String SalaryLow;
private String SalaryHight;
private Date Aae397;
private String AAB004;
private String AAB022;
private String AAB019;
private String AAE006;
private String AAB092;
private String ORG;
private String ACE760;
private String AAE004;
private String AAE005;
private String Num_employers;
private String Experience;
private String Highlight;
private String Minimum_age;
private String Maximum_age;
private String Sex;
private String IndustryType;
private String IndustrySub;
private String AAB019_OK;
private String Aac011_OK;
private String Experience_OK;
private String Num_OK;
private Date Collect_time;
private String ClearFlag;
private String Province;
private String City;
private String County;
private String importdate;
private String YearMonth;
private String IsRepeat;
private String latitude;
private String longitude;
}

View File

@@ -0,0 +1,31 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 文件对象 file
* @author ${author}
* @date 2025-03-18
*/
@Data
@TableName(value = "statics")
public class Statics extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "id",type = IdType.AUTO)
private Long id;
private String time;
private String type;
private String name;
private String data;
}

View File

@@ -0,0 +1,41 @@
package com.ruoyi.cms.domain;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
* 地铁线路对象 subway_line
* @author Lishundong
* @date 2024-11-12
*/
@Data
@ApiModel("地铁线路")
@TableName(value = "subway_line")
public class SubwayLine extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "line_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long lineId;
/** 线路名称 */
@Excel(name = "线路名称")
@ApiModelProperty("线路名称")
private String lineName;
@TableField(exist = false)
@ApiModelProperty("站点列表")
private List<SubwayStation> subwayStationList;
}

View File

@@ -0,0 +1,59 @@
package com.ruoyi.cms.domain;
import java.math.BigDecimal;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 地铁站点对象 subway_station
* @author Lishundong
* @date 2024-11-12
*/
@Data
@ApiModel("地铁站点")
@TableName(value = "subway_station")
public class SubwayStation extends BaseEntity
{
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/** id */
@TableId(value = "station_id",type = IdType.AUTO)
@ApiModelProperty("id")
private Long stationId;
/** 地铁名称 */
@Excel(name = "地铁名称")
@ApiModelProperty("地铁名称")
private String stationName;
/** 所属线路名称 */
@Excel(name = "所属线路名称")
@ApiModelProperty("所属线路名称")
private String lineName;
/** 线路id */
@Excel(name = "线路id")
@ApiModelProperty("线路id")
private Long lineId;
/** 纬度 */
@Excel(name = "纬度")
@ApiModelProperty("纬度")
private BigDecimal latitude;
/** 经度 */
@Excel(name = "经度")
@ApiModelProperty("经度")
private BigDecimal longitude;
private Integer stationOrder;
private String address;
}

View File

@@ -0,0 +1,21 @@
package com.ruoyi.cms.domain;
import lombok.Data;
@Data
public class VectorJob {
private String jobTitle; // Aca112
private String jobId; // id
private String scale; // Num_employers
private String education; // Aac011_OK
private String nature; // AAB019_OK
private String experience; // Experience_OK
private String salary; // Acb241
private String companyName; // aab004
private String area; // Aab302
private String jobLocation; // acb202
private String description; // Acb22a
private String jobUrl; // ACE760
private String minSalary;
private String maxSalary;
}

View File

@@ -0,0 +1,54 @@
package com.ruoyi.cms.domain.query;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.common.annotation.Excel;
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最新发布")
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;
}

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,222 @@
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);
}
}
// public static void main(String[] args) {
// // Month example
// Staticsquery monthQuery = new Staticsquery();
// monthQuery.setTimeDimension("月");
// monthQuery.setStartTime("2024-01");
// monthQuery.setEndTime("2024-04");
// System.out.println(monthQuery.generateTimeRange());
// // Output: [2024-01, 2024-02, 2024-03, 2024-04]
//
// // Quarter example
// Staticsquery quarterQuery = new Staticsquery();
// quarterQuery.setTimeDimension("季度");
// quarterQuery.setStartTime("2023-第四季度");
// quarterQuery.setEndTime("2024-第二季度");
// System.out.println(quarterQuery.generateTimeRange());
// // Output: [2023-第4季度, 2024-第1季度, 2024-第2季度]
//
// // Year example
// Staticsquery yearQuery = new Staticsquery();
// yearQuery.setTimeDimension("年");
// yearQuery.setStartTime("2020");
// yearQuery.setEndTime("2024");
// System.out.println(yearQuery.generateTimeRange());
// // Output: [2020, 2021, 2022, 2023, 2024]
// }
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class AppNoticeVO {
private Long id;
private String title;
private String subTitle;
private Integer notReadCount;
private Integer isRead;
@JsonFormat(pattern = "MM-dd")
private Date date;
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.AppUser;
import lombok.Data;
import java.util.Date;
@Data
public class CandidateVO extends AppUser {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date applyDate;
private Integer matchingDegree;
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.cms.domain.vo;
import com.ruoyi.cms.domain.CompanyCard;
import lombok.Data;
@Data
public class CompanyCardVO extends CompanyCard {
private Integer isCollection = 0;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cms.domain.vo;
import lombok.Data;
@Data
public class CompetitivenessResponse {
private Integer totalApplicants; // 总申请人数
private Integer matchScore; // 匹配分数(0-100)
private Integer rank; // 排名
private Integer percentile; // 超过百分比(0-100)
private RadarChart radarChart; // 雷达图6维度数据
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.Job;
import java.util.Date;
public class JobApplyVO extends Job {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date applyDate;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.Job;
import java.util.Date;
public class JobCollectionVO extends Job {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date collectionDate;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.cms.domain.Job;
import java.util.Date;
public class JobReviewVO extends Job {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date reviewDate;
}

View File

@@ -0,0 +1,13 @@
package com.ruoyi.cms.domain.vo;
import lombok.Data;
@Data
public class RadarChart {
private Integer skill; // 技能(0-100)
private Integer experience; // 工作经验(0-100)
private Integer education; // 学历(0-100)
private Integer salary; // 薪资(0-100)
private Integer age; // 年龄(0-100)
private Integer location; // 工作地(0-100)
}