package com.ruoyi.cms.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ruoyi.cms.domain.vo.CompanyVo; import com.ruoyi.common.core.domain.entity.Company; import io.swagger.annotations.ApiModelProperty; 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") @Data public class ESJobDocument { @ApiModelProperty("es中的唯一id") @IndexId(type = IdType.NONE) @JsonIgnore private String id; @ApiModelProperty("岗位id") private Long jobId; @ApiModelProperty("公告标题") @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD) private String jobTitle; @ApiModelProperty("内容") @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD) private String description; @ApiModelProperty("最小薪资(元)") private Long minSalary; @ApiModelProperty("最大薪资(元)") private Long maxSalary; @ApiModelProperty("学历要求 对应字典education") private String education; @ApiModelProperty("工作经验要求 对应字典experience") private String experience; @ApiModelProperty("用人单位名称") private String companyName; @ApiModelProperty("工作地点") private String jobLocation; @ApiModelProperty("工作地点区县字典代码") private Integer jobLocationAreaCode; @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("发布时间") private Date postingDate; @ApiModelProperty("招聘人数") private Long vacancies; @ApiModelProperty("纬度") private BigDecimal latitude; @ApiModelProperty("经度") private BigDecimal longitude; @ApiModelProperty("浏览量") private Long view; @ApiModelProperty("公司id") private Long companyId; @ApiModelProperty("是否火") private Integer isHot; @ApiModelProperty("申请次数") private Integer applyNum; @JsonIgnore @ApiModelProperty("公司") private Company company; @ApiModelProperty("是否申请 0为否 1为是") private Integer isApply; @ApiModelProperty("是否收藏 0为否 1为是") private Integer isCollection; @ApiModelProperty("数据来源") private String dataSource; @ApiModelProperty("岗位链接") private String jobUrl; @JsonIgnore @IndexField(fieldType = FieldType.GEO_POINT) @ApiModelProperty("经纬度") private String latAndLon; @JsonIgnore @ApiModelProperty("公司规模") private String scaleDictCode; @ApiModelProperty("行业分类") private String industry; @ApiModelProperty("岗位分类") private String jobCategory; @JsonIgnore @ApiModelProperty("学历要求 对应字典education int类型 es方便查询") private Integer education_int; @JsonIgnore @ApiModelProperty("工作经验要求 对应字典experience int类型 es方便查询") private Integer experience_int; @ApiModelProperty("公司规模 int类型 es方便查询") private Integer scale; @ApiModelProperty("岗位链接 APP内") private String appJobUrl; @ApiModelProperty("公司性质") private String companyNature; @ApiModelProperty("是否有视频介绍") private Integer isExplain; @ApiModelProperty("视频介绍URL") private String explainUrl; @ApiModelProperty("视频封面URL") private String cover; @ApiModelProperty("岗位类型 0疆内 1疆外") private String jobType; @ApiModelProperty("类型 0常规岗位 1就业见习岗位 2实习实训岗位 3社区实践岗位 对应字段字典position_type") private String type; @ApiModelProperty("信用代码") private String code; @ApiModelProperty("公司信息") private CompanyVo companyVo; }