diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyContactController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyContactController.java new file mode 100644 index 0000000..f6949b5 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyContactController.java @@ -0,0 +1,42 @@ +package com.ruoyi.cms.controller.cms; + + +import com.ruoyi.cms.domain.CompanyContact; +import com.ruoyi.cms.service.CompanyContactService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * 公司联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +@RestController +@RequestMapping("/cms/companycontact") +@Api(tags = "后台:公司联系人") +public class CompanyContactController extends BaseController { + @Autowired + private CompanyContactService companyContactService; + + /** + * 列表 + */ + @ApiOperation("公司联系人列表") + @PreAuthorize("@ss.hasPermi('cms:companycontact:list')") + @RequestMapping("/list") + public TableDataInfo list(CompanyContact companyContact){ + List list=companyContactService.getSelectList(companyContact); + return getDataTable(list); + } + +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/JobContactController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/JobContactController.java new file mode 100644 index 0000000..9b419f3 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/JobContactController.java @@ -0,0 +1,43 @@ +package com.ruoyi.cms.controller.cms; + +import com.ruoyi.cms.domain.JobContact; +import com.ruoyi.cms.service.JobContactService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + + +import java.util.List; + + +/** + * 岗位联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +@RestController +@RequestMapping("/cms/jobcontact") +@Api(tags = "后台:岗位联系人") +public class JobContactController extends BaseController { + @Autowired + private JobContactService jobContactService; + + /** + * 列表 + */ + @ApiOperation("岗位联系人列表") + @PreAuthorize("@ss.hasPermi('cms:jobcontact:list')") + @RequestMapping("/list") + public TableDataInfo list(JobContact jobContact){ + startPage(); + List list = jobContactService.getSelectList(jobContact); + return getDataTable(list); + } + +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java index e22c815..e30340b 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/AppUser.java @@ -100,4 +100,10 @@ public class AppUser extends BaseEntity @TableField(exist = false) @ApiModelProperty("期望岗位列表") private List jobTitle; + + @ApiModelProperty("身份证") + private String idCard; + + @ApiModelProperty("是否录用 0录用,1未录用") + private String hire; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java index 463c32c..bbebb1f 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Company.java @@ -9,6 +9,9 @@ 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; + /** * 公司对象 company * @author lishundong @@ -88,7 +91,11 @@ public class Company extends BaseEntity @ApiModelProperty("审核未通过原因") private String notPassReason; +// @TableField(exist = false) +// @ApiModelProperty("qiye") +// private Integer isCollection; + @TableField(exist = false) - @ApiModelProperty("qiye") - private Integer isCollection; + @ApiModelProperty("企业联系人列表") + private List companyContactList; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyContact.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyContact.java new file mode 100644 index 0000000..3ddbf52 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/CompanyContact.java @@ -0,0 +1,48 @@ +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.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 公司联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +@Data +@ApiModel("公司联系人") +@TableName("company_contact") +public class CompanyContact extends BaseEntity { + @TableField(exist = false) + private static final long serialVersionUID = 1L; + /** + * id + */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty("id") + private Long id; + /** + * 公司id + */ + @ApiModelProperty("岗位id") + private Long companyId; + /** + * 联系人 + */ + @ApiModelProperty("联系人") + private String contactPerson; + /** + * 联系人电话 + */ + @ApiModelProperty("联系人电话") + private String contactPersonPhone; + +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java index 28a38f2..cb5e47a 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java @@ -13,6 +13,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.List; + /** * 岗位对象 job * @author lishundong @@ -148,4 +150,19 @@ public class Job extends BaseEntity @ApiModelProperty("视频封面URL") private String cover; + + @TableField(exist = false) + @ApiModelProperty("薪酬") + private String compensation; + + @TableField(exist = false) + @ApiModelProperty("信用代码") + private String code; + + @ApiModelProperty("岗位类型 0疆内 1疆外") + private String jobType; + + @TableField(exist = false) + @ApiModelProperty("岗位联系人列表") + private List jobContactList; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobContact.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobContact.java new file mode 100644 index 0000000..c34389f --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/JobContact.java @@ -0,0 +1,53 @@ +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.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 岗位联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +@Data +@ApiModel("岗位联系人") +@TableName("job_contact") +public class JobContact extends BaseEntity { + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty("id") + private Long id; + /** + * 岗位id + */ + @ApiModelProperty("岗位id") + private Long jobId; + /** + * 联系人 + */ + @ApiModelProperty("联系人") + private String contactPerson; + /** + * 联系人电话 + */ + @ApiModelProperty("联系人电话") + private String contactPersonPhone; + /** + * 职务 + */ + @ApiModelProperty("职务") + private String position; +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java new file mode 100644 index 0000000..c08f5f2 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cms.domain.CompanyContact; + +import java.util.List; + +/** + * 公司联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +public interface CompanyContactMapper extends BaseMapper { + + List getSelectList(CompanyContact companyContact); +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java new file mode 100644 index 0000000..a503e01 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cms.domain.JobContact; + +import java.util.List; + +/** + * 岗位联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +public interface JobContactMapper extends BaseMapper { + + List getSelectList(JobContact jobContact); +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java new file mode 100644 index 0000000..9830129 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java @@ -0,0 +1,18 @@ +package com.ruoyi.cms.service; + +import com.ruoyi.cms.domain.CompanyContact; + +import java.util.List; + +/** + * 公司联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +public interface CompanyContactService { + + List getSelectList(CompanyContact companyContact); +} + diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/JobContactService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/JobContactService.java new file mode 100644 index 0000000..2547f5b --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/JobContactService.java @@ -0,0 +1,18 @@ +package com.ruoyi.cms.service; + +import com.ruoyi.cms.domain.JobContact; + +import java.util.List; + +/** + * 岗位联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +public interface JobContactService{ + + List getSelectList(JobContact jobContact); +} + diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java index a804113..74e7768 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/AppUserServiceImpl.java @@ -4,9 +4,8 @@ import java.util.List; import java.util.Arrays; import java.util.stream.Collectors; -import com.ruoyi.cms.domain.Job; -import com.ruoyi.cms.mapper.JobMapper; import com.ruoyi.cms.mapper.JobTitleMapper; +import com.ruoyi.cms.util.StringUtil; import com.ruoyi.common.core.domain.entity.JobTitle; import com.ruoyi.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -57,7 +56,14 @@ public class AppUserServiceImpl extends ServiceImpl imple @Override public List selectAppUserList(AppUser appUser) { - return appUserMapper.selectAppUserList(appUser); + List list=appUserMapper.selectAppUserList(appUser); + if(list!=null){ + //身份证脱敏处理 + list.forEach(x->{ + x.setIdCard(StringUtil.desensitizeIdCard(x.getIdCard())); + }); + } + return list; } /** diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java new file mode 100644 index 0000000..b2909a9 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java @@ -0,0 +1,22 @@ +package com.ruoyi.cms.service.impl; + +import com.ruoyi.cms.domain.CompanyContact; +import com.ruoyi.cms.mapper.CompanyContactMapper; +import com.ruoyi.cms.service.CompanyContactService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + + + +@Service +public class CompanyContactServiceImpl extends ServiceImpl implements CompanyContactService { + + @Autowired + CompanyContactMapper companyContactMapper; + + public List getSelectList(CompanyContact companyContact){ + return companyContactMapper.getSelectList(companyContact); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java index bb90179..53e689f 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java @@ -43,6 +43,8 @@ public class CompanyServiceImpl extends ServiceImpl imple private CompanyCardMapper companyCardMapper; @Autowired private CompanyLabelMapper companyLabelMapper; + @Autowired + private CompanyContactMapper companyContactMapper; /** * 查询公司 * @@ -87,7 +89,15 @@ public class CompanyServiceImpl extends ServiceImpl imple if(count>0){ throw new ServiceException(company.getName()+",该公司已存在"); } - return companyMapper.insert(company); + int insert =companyMapper.insert(company); + if(insert>0){ + company.getCompanyContactList().forEach(x->{ + CompanyContact companyContact=new CompanyContact(); + companyContact.setCompanyId(company.getCompanyId()); + companyContactMapper.insert(companyContact); + }); + } + return insert; } /** diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobContactServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobContactServiceImpl.java new file mode 100644 index 0000000..7e7cc1d --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobContactServiceImpl.java @@ -0,0 +1,21 @@ +package com.ruoyi.cms.service.impl; + +import com.ruoyi.cms.domain.JobContact; +import com.ruoyi.cms.mapper.JobContactMapper; +import com.ruoyi.cms.service.JobContactService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + + +@Service +public class JobContactServiceImpl extends ServiceImpl implements JobContactService { + + @Autowired + JobContactMapper jobContactMapper; + + public List getSelectList(JobContact jobContact){ + return jobContactMapper.getSelectList(jobContact); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java index e1e1d7d..3ddb096 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java @@ -73,6 +73,8 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe private static final String AMAP_URL = "https://restapi.amap.com/v3/place/text"; @Autowired private RedisCache redisCache; + @Autowired + private JobContactMapper jobContactMapper; /** * 更新工作地址的经纬度信息 @@ -242,6 +244,13 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe HttpUtil.post("http://39.98.44.136:6004/insert_vector", jsonBody); }); thread.start(); + if(insert>0){ + job.getJobContactList().forEach(x->{ + JobContact jobContact=new JobContact(); + jobContact.setJobId(job.getJobId()); + jobContactMapper.insert(jobContact); + }); + } return insert; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java index 2bf2d61..f8b2c23 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java @@ -58,4 +58,16 @@ public class StringUtil { .map(String::trim) // 去除每个部分的前后空格 .collect(Collectors.toList()); // 收集为List } + + /** + * 脱敏逻辑:前4位 + ***+ 后4位 + * @param idCard + * @return + */ + public static String desensitizeIdCard(String idCard) { + if (idCard == null || idCard.length() != 18) { + return idCard; // 非标准身份证号不脱敏(或按规则处理) + } + return idCard.substring(0, 4) + "***" + idCard.substring(14); + } } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml index a1953f5..6cccb4b 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/AppUserMapper.xml @@ -28,10 +28,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend from app_user + select user_id, name, age, sex, birth_date, education, political_affiliation, phone, avatar, salary_min, salary_max, area, status, del_flag, login_ip, login_date, create_by, create_time, update_by, update_time, remark,job_title_id,is_recommend,id_card,hire from app_user + + del_flag = '0' + + and company_id=#{companyId} + + + and contact_person=#{contactPerson} + + + and contact_person_phone=#{contactPersonPhone} + + + + + diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml new file mode 100644 index 0000000..03d9018 --- /dev/null +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, job_id, contact_person, contact_person_phone, position, del_flag, create_by, create_time, update_by, update_time, remark from job_contact + + + + + + diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml index 2572bf4..5f79047 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml @@ -33,10 +33,11 @@ + - select job_id, job_title, min_salary, max_salary, education, experience, company_name, job_location, posting_date, vacancies, del_flag, create_by, create_time, update_by, update_time, remark, latitude, longitude, "view", company_id , is_hot ,apply_num,is_publish, description,job_location_area_code,data_source,job_url,job_category,is_explain,explain_url,cover from job + select job_id, job_title, min_salary, max_salary, education, experience, company_name, job_location, posting_date, vacancies, del_flag, create_by, create_time, update_by, update_time, remark, latitude, longitude, "view", company_id , is_hot ,apply_num,is_publish, description,job_location_area_code,data_source,job_url,job_category,is_explain,explain_url,cover,job_type from job INSERT INTO row_work ( @@ -66,7 +67,7 @@ job_title, min_salary, max_salary, education, experience, company_name, job_location, job_location_area_code, posting_date, vacancies, latitude, longitude, "view", company_id, is_hot, apply_num, description, is_publish, data_source, job_url, remark, del_flag, - create_by, create_time, row_id, job_category + create_by, create_time, row_id, job_category,jobType ) VALUES ( @@ -75,7 +76,7 @@ #{job.vacancies}, #{job.latitude}, #{job.longitude}, #{job.view}, #{job.companyId}, #{job.isHot}, #{job.applyNum}, #{job.description}, #{job.isPublish}, #{job.dataSource}, #{job.jobUrl}, #{job.remark}, #{job.delFlag}, #{job.createBy}, #{job.createTime}, - #{job.rowId}, #{job.jobCategory} + #{job.rowId}, #{job.jobCategory},#{job.jobType} ) @@ -134,6 +135,27 @@ and company_id = #{companyId} and is_hot = #{isHot} and apply_num = #{applyNum} + and company_id in(select company_id from company where code=#{code}) + + + and min_salary < 1750 + + + and max_salary < 2000 and min_salary >= 1750 + + + and max_salary < 3000 and min_salary >= 2000 + + + and max_salary < 4000 and min_salary >= 3000 + + + and max_salary < 5000 and min_salary >= 4000 + + + and min_salary > 5000 + + order by is_explain desc