1.职位发布与管理-添加表(job_contact)补充对应后端代码

2.企业联系人管理-添加表(company_contact)补充对应后台代码
3.岗位管理-添加信用代码、薪酬查询条件
4.用户管理-添加身份证显示(脱敏)、是否录用
5.岗位管理-添加字段岗位类型(疆内、疆外)
This commit is contained in:
sh
2025-09-30 18:32:20 +08:00
parent f8a2ab99e3
commit 39a5c380dd
21 changed files with 487 additions and 10 deletions

View File

@@ -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<CompanyContact> list=companyContactService.getSelectList(companyContact);
return getDataTable(list);
}
}

View File

@@ -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<JobContact> list = jobContactService.getSelectList(jobContact);
return getDataTable(list);
}
}

View File

@@ -100,4 +100,10 @@ public class AppUser extends BaseEntity
@TableField(exist = false)
@ApiModelProperty("期望岗位列表")
private List<String> jobTitle;
@ApiModelProperty("身份证")
private String idCard;
@ApiModelProperty("是否录用 0录用,1未录用")
private String hire;
}

View File

@@ -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<CompanyContact> companyContactList;
}

View File

@@ -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;
}

View File

@@ -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<JobContact> jobContactList;
}

View File

@@ -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;
}

View File

@@ -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<CompanyContact> {
List<CompanyContact> getSelectList(CompanyContact companyContact);
}

View File

@@ -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<JobContact> {
List<JobContact> getSelectList(JobContact jobContact);
}

View File

@@ -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<CompanyContact> getSelectList(CompanyContact companyContact);
}

View File

@@ -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<JobContact> getSelectList(JobContact jobContact);
}

View File

@@ -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<AppUserMapper,AppUser> imple
@Override
public List<AppUser> selectAppUserList(AppUser appUser)
{
return appUserMapper.selectAppUserList(appUser);
List<AppUser> list=appUserMapper.selectAppUserList(appUser);
if(list!=null){
//身份证脱敏处理
list.forEach(x->{
x.setIdCard(StringUtil.desensitizeIdCard(x.getIdCard()));
});
}
return list;
}
/**

View File

@@ -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<CompanyContactMapper, CompanyContact> implements CompanyContactService {
@Autowired
CompanyContactMapper companyContactMapper;
public List<CompanyContact> getSelectList(CompanyContact companyContact){
return companyContactMapper.getSelectList(companyContact);
}
}

View File

@@ -43,6 +43,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
private CompanyCardMapper companyCardMapper;
@Autowired
private CompanyLabelMapper companyLabelMapper;
@Autowired
private CompanyContactMapper companyContactMapper;
/**
* 查询公司
*
@@ -87,7 +89,15 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> 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;
}
/**

View File

@@ -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<JobContactMapper, JobContact> implements JobContactService {
@Autowired
JobContactMapper jobContactMapper;
public List<JobContact> getSelectList(JobContact jobContact){
return jobContactMapper.getSelectList(jobContact);
}
}

View File

@@ -73,6 +73,8 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> 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<JobMapper,Job> 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;
}

View File

@@ -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);
}
}