招聘会

This commit is contained in:
2026-01-11 02:15:16 +08:00
parent e12d8157a7
commit 55eba88734
25 changed files with 2160 additions and 1 deletions

View File

@@ -4,11 +4,13 @@ package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.JobFair;
import com.ruoyi.cms.service.IFairCollectionService;
import com.ruoyi.cms.service.IJobFairService;
import com.ruoyi.cms.service.rc.IJobFairSignUpService;
import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -30,6 +32,8 @@ public class AppFairController extends BaseController
private IJobFairService jobFairService;
@Autowired
private IFairCollectionService fairCollectionService;
@Autowired
private IJobFairSignUpService jobFairSignUpService;
/**
* 招聘会列表
*/
@@ -71,4 +75,26 @@ public class AppFairController extends BaseController
{
return toAjax(fairCollectionService.cancel(fairId));
}
/**
* 报名招聘会
*/
@BussinessLog(title = "报名招聘会")
@ApiOperation("报名招聘会")
@PostMapping("/signUp/{fairId}")
public AjaxResult signUp(@ApiParam("招聘会id") @PathVariable Long fairId)
{
return toAjax(jobFairSignUpService.signUp(fairId));
}
/**
* 取消报名招聘会
*/
@BussinessLog(title = "取消报名招聘会")
@ApiOperation("取消报名招聘会")
@DeleteMapping("/signUp/{fairId}")
public AjaxResult cancelSignUp(@ApiParam("招聘会id") @PathVariable Long fairId)
{
return toAjax(jobFairSignUpService.cancelSignUp(fairId));
}
}

View File

@@ -0,0 +1,63 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.rc.PublicJobFairCompanyVO;
import com.ruoyi.cms.domain.rc.PublicJobFairDetail;
import com.ruoyi.cms.domain.rc.PublicJobFairQuery;
import com.ruoyi.cms.domain.rc.PublicJobFairResponse;
import com.ruoyi.cms.service.rc.IPublicJobFairService;
import com.ruoyi.common.annotation.BussinessLog;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公共招聘会Controller石河子
*/
@Slf4j
@RestController
@RequestMapping("/app/jobfair/public/jobfair")
@Api(tags = "公共接口:招聘会(石河子)")
public class PublicJobFairController extends BaseController {
@Autowired
private IPublicJobFairService publicJobFairService;
/**
* 分页查询招聘会列表
*/
@BussinessLog(title = "公共招聘会列表")
@ApiOperation("分页查询招聘会列表")
@GetMapping("/page")
public PublicJobFairResponse page(PublicJobFairQuery query) {
return publicJobFairService.getJobFairPage(query);
}
/**
* 获取招聘会详情
*/
@BussinessLog(title = "公共招聘会详情")
@ApiOperation("获取招聘会详情")
@GetMapping("/detail")
public AjaxResult detail(@ApiParam("招聘会ID") @RequestParam String jobFairId) {
PublicJobFairDetail detail = publicJobFairService.getJobFairDetail(jobFairId);
return success(detail);
}
/**
* 获取招聘会企业及岗位列表
*/
@BussinessLog(title = "招聘会企业及岗位列表")
@ApiOperation("获取招聘会企业及岗位列表")
@GetMapping("/enterprises-with-jobs-by-job-fair-id")
public AjaxResult enterprisesWithJobs(@ApiParam("招聘会ID") @RequestParam String jobFairId) {
List<PublicJobFairCompanyVO> list = publicJobFairService.getEnterprisesWithJobs(jobFairId);
return success(list);
}
}

View File

@@ -0,0 +1,172 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.rc.*;
import com.ruoyi.cms.service.rc.IPublicJobFairService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 公共招聘会管理ControllerCMS后台
*/
@RestController
@RequestMapping("/cms/publicJobFair")
@Api(tags = "后台:公共招聘会管理")
public class CmsPublicJobFairController extends BaseController {
@Autowired
private IPublicJobFairService publicJobFairService;
/**
* 查询招聘会列表
*/
@ApiOperation("查询招聘会列表")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:list')")
@GetMapping("/list")
public TableDataInfo list(PublicJobFairQuery query) {
startPage();
List<PublicJobFair> list = publicJobFairService.selectList(query);
return getDataTable(list);
}
/**
* 获取招聘会详情
*/
@ApiOperation("获取招聘会详情")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
@GetMapping("/{jobFairId}")
public AjaxResult getInfo(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
return success(publicJobFairService.selectById(jobFairId));
}
/**
* 新增招聘会
*/
@ApiOperation("新增招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:add')")
@Log(title = "公共招聘会", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody PublicJobFair publicJobFair) {
return toAjax(publicJobFairService.insert(publicJobFair));
}
/**
* 修改招聘会
*/
@ApiOperation("修改招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "公共招聘会", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody PublicJobFair publicJobFair) {
return toAjax(publicJobFairService.update(publicJobFair));
}
/**
* 删除招聘会
*/
@ApiOperation("删除招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:remove')")
@Log(title = "公共招聘会", businessType = BusinessType.DELETE)
@DeleteMapping("/{jobFairIds}")
public AjaxResult remove(@ApiParam("招聘会ID数组") @PathVariable String[] jobFairIds) {
return toAjax(publicJobFairService.deleteByIds(jobFairIds));
}
/**
* 添加企业到招聘会
*/
@ApiOperation("添加企业到招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "招聘会添加企业", businessType = BusinessType.INSERT)
@PostMapping("/company")
public AjaxResult addCompany(@RequestBody PublicJobFairCompany company) {
return toAjax(publicJobFairService.addCompany(company));
}
/**
* 批量添加企业到招聘会
*/
@ApiOperation("批量添加企业到招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "招聘会批量添加企业", businessType = BusinessType.INSERT)
@PostMapping("/company/batch")
public AjaxResult addCompanyBatch(@RequestBody List<PublicJobFairCompany> companies) {
return toAjax(publicJobFairService.addCompanyBatch(companies));
}
/**
* 移除招聘会企业
*/
@ApiOperation("移除招聘会企业")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "移除招聘会企业", businessType = BusinessType.DELETE)
@DeleteMapping("/company/{id}")
public AjaxResult removeCompany(@ApiParam("关联ID") @PathVariable String id) {
return toAjax(publicJobFairService.removeCompany(id));
}
/**
* 添加岗位到招聘会
*/
@ApiOperation("添加岗位到招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "招聘会添加岗位", businessType = BusinessType.INSERT)
@PostMapping("/job")
public AjaxResult addJob(@RequestBody PublicJobFairJob job) {
return toAjax(publicJobFairService.addJob(job));
}
/**
* 批量添加岗位到招聘会
*/
@ApiOperation("批量添加岗位到招聘会")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "招聘会批量添加岗位", businessType = BusinessType.INSERT)
@PostMapping("/job/batch")
public AjaxResult addJobBatch(@RequestBody List<PublicJobFairJob> jobs) {
return toAjax(publicJobFairService.addJobBatch(jobs));
}
/**
* 移除招聘会岗位
*/
@ApiOperation("移除招聘会岗位")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:edit')")
@Log(title = "移除招聘会岗位", businessType = BusinessType.DELETE)
@DeleteMapping("/job/{id}")
public AjaxResult removeJob(@ApiParam("关联ID") @PathVariable String id) {
return toAjax(publicJobFairService.removeJob(id));
}
/**
* 查询招聘会报名列表
*/
@ApiOperation("查询招聘会报名列表")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
@GetMapping("/signups/{jobFairId}")
public TableDataInfo getSignUpList(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
startPage();
List<JobFairSignUpVO> list = publicJobFairService.selectSignUpList(jobFairId);
return getDataTable(list);
}
/**
* 查询招聘会关联的企业列表
*/
@ApiOperation("查询招聘会关联的企业列表")
@PreAuthorize("@ss.hasPermi('cms:publicJobFair:query')")
@GetMapping("/companies/{jobFairId}")
public AjaxResult getCompanyList(@ApiParam("招聘会ID") @PathVariable String jobFairId) {
return success(publicJobFairService.getEnterprisesWithJobs(jobFairId));
}
}

View File

@@ -0,0 +1,38 @@
package com.ruoyi.cms.domain.rc;
import com.baomidou.mybatisplus.annotation.IdType;
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 招聘会报名对象
*/
@Data
@ApiModel("招聘会报名")
@TableName("rc_job_fair_sign_up")
public class JobFairSignUp extends BaseEntity {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("招聘会ID")
private Long jobFairId;
@ApiModelProperty("用户ID")
private Long userId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("报名时间")
private Date signUpTime;
@ApiModelProperty("状态 0正常 1已取消")
private String status;
}

View File

@@ -0,0 +1,44 @@
package com.ruoyi.cms.domain.rc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 招聘会报名信息VO包含用户信息
*/
@Data
@ApiModel("招聘会报名信息")
public class JobFairSignUpVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("报名ID")
private Long id;
@ApiModelProperty("招聘会ID")
private Long jobFairId;
@ApiModelProperty("用户ID")
private Long userId;
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("真实姓名")
private String realName;
@ApiModelProperty("手机号")
private String phone;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("报名时间")
private Date signUpTime;
@ApiModelProperty("状态 0正常 1已取消")
private String status;
}

View File

@@ -0,0 +1,162 @@
package com.ruoyi.cms.domain.rc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 公共招聘会信息对象(对接石河子/喀什地区)
* @author kiro
* @date 2026-01-10
*/
@Data
@ApiModel("公共招聘会信息")
public class PublicJobFair implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("招聘会ID")
private String jobFairId;
@ApiModelProperty("招聘会标题")
private String jobFairTitle;
@ApiModelProperty("招聘会地址")
private String jobFairAddress;
@ApiModelProperty("招聘会类型")
private String jobFairType;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会开始时间")
private Date jobFairStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会结束时间")
private Date jobFairEndTime;
@ApiModelProperty("主办单位")
private String jobFairHostUnit;
@ApiModelProperty("协办单位")
private String jobFairHelpUnit;
@ApiModelProperty("承办单位")
private String jobFairOrganizeUnit;
@ApiModelProperty("招聘会简介")
private String jobFairIntroduction;
@ApiModelProperty("备注")
private String jobFairRemark;
@ApiModelProperty("联系电话")
private String jobFairPhone;
@ApiModelProperty("招聘会图片")
private String jobFairImage;
@ApiModelProperty("招聘会区域图片")
private String jobFairAreaImage;
@ApiModelProperty("创建人")
private String createBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新人")
private String updateBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("招聘会场馆ID")
private String jobFairVenueId;
@ApiModelProperty("场馆区域展位信息")
private String jobFairVenueAreaAndBoothInfo;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("报名开始时间")
private Date jobFairSignUpStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("报名结束时间")
private Date jobFairSignUpEndTime;
@ApiModelProperty("是否报名")
private String isSignUp;
@ApiModelProperty("企业数量")
private String enterpriseNum;
@ApiModelProperty("区域展位信息")
private String jobFairAreaAndBoothInfo;
@ApiModelProperty("人员ID")
private String personId;
@ApiModelProperty("企业ID")
private String enterpriseId;
@ApiModelProperty("投递数量")
private String deliverNum;
@ApiModelProperty("企业审核状态")
private String enterpriseReviewStatus;
@ApiModelProperty("企业审核意见")
private String enterpriseReviewComments;
@ApiModelProperty("简历数量")
private String resumeCount;
@ApiModelProperty("展位数量")
private String boothNum;
@ApiModelProperty("区域展位名称")
private String jobFairAreaBoothName;
@ApiModelProperty("我的岗位数量")
private String myJobNum;
@ApiModelProperty("省份")
private String divisionProvince;
@ApiModelProperty("城市")
private String divisionCity;
@ApiModelProperty("区县")
private String divisionCounty;
@ApiModelProperty("区域名称")
private String divisionName;
@ApiModelProperty("校验码")
private String checkCode;
@ApiModelProperty("部门编码(末级)")
private String deptCodeLast;
@ApiModelProperty("部门编码(全部)")
private String deptCodeAll;
@ApiModelProperty("招聘会类别")
private String jobFairCategory;
@ApiModelProperty("纬度")
private java.math.BigDecimal latitude;
@ApiModelProperty("经度")
private java.math.BigDecimal longitude;
@ApiModelProperty("参加的企业及岗位列表")
private java.util.List<PublicJobFairCompanyVO> companyList;
}

View File

@@ -0,0 +1,45 @@
package com.ruoyi.cms.domain.rc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 招聘会-企业关联对象
*/
@Data
@ApiModel("招聘会-企业关联")
public class PublicJobFairCompany implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键ID")
private String id;
@ApiModelProperty("招聘会ID")
private String jobFairId;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("创建者")
private String createBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新者")
private String updateBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("删除标志")
private String delFlag;
}

View File

@@ -0,0 +1,40 @@
package com.ruoyi.cms.domain.rc;
import com.ruoyi.cms.domain.Job;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 招聘会企业VO
*/
@Data
@ApiModel("招聘会企业VO")
public class PublicJobFairCompanyVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("企业记录ID")
private String id;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("企业名称")
private String companyName;
@ApiModelProperty("企业规模")
private String scale;
@ApiModelProperty("所属行业")
private String industry;
@ApiModelProperty("企业类型")
private String companyType;
@ApiModelProperty("在招职位列表")
private List<Job> jobInfoList;
}

View File

@@ -0,0 +1,52 @@
package com.ruoyi.cms.domain.rc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 公共招聘会详情
*/
@Data
@ApiModel("公共招聘会详情")
public class PublicJobFairDetail implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("招聘会ID")
private String jobFairId;
@ApiModelProperty("招聘会标题")
private String jobFairTitle;
@ApiModelProperty("招聘会地址")
private String jobFairAddress;
@ApiModelProperty("招聘会简介")
private String jobFairIntroduction;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会开始时间")
private Date jobFairStartTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招聘会结束时间")
private Date jobFairEndTime;
@ApiModelProperty("招聘会类型 1-线上 2-线下")
private Integer jobFairType;
@ApiModelProperty("纬度")
private BigDecimal latitude;
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("是否已报名 0-未报名 1-已报名")
private Integer isSignUp;
}

View File

@@ -0,0 +1,48 @@
package com.ruoyi.cms.domain.rc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 招聘会-岗位关联对象
*/
@Data
@ApiModel("招聘会-岗位关联")
public class PublicJobFairJob implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键ID")
private String id;
@ApiModelProperty("招聘会ID")
private String jobFairId;
@ApiModelProperty("岗位ID")
private Long jobId;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("创建者")
private String createBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新者")
private String updateBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("删除标志")
private String delFlag;
}

View File

@@ -0,0 +1,34 @@
package com.ruoyi.cms.domain.rc;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 公共招聘会查询参数
* @author kiro
* @date 2026-01-10
*/
@Data
@ApiModel("公共招聘会查询参数")
public class PublicJobFairQuery implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("页码")
private Integer pageNum = 1;
@ApiModelProperty("每页数量")
private Integer pageSize = 10;
@ApiModelProperty("招聘会标题")
private String jobFairTitle;
@ApiModelProperty("招聘会类型")
private String jobFairType;
@ApiModelProperty("招聘会举办时间格式yyyy-MM-dd")
private String zphjbsj;
}

View File

@@ -0,0 +1,88 @@
package com.ruoyi.cms.domain.rc;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 公共招聘会响应对象
* @author kiro
* @date 2026-01-10
*/
@Data
@ApiModel("公共招聘会响应")
public class PublicJobFairResponse implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("状态码")
private Integer code;
@ApiModelProperty("消息")
private String msg;
@ApiModelProperty("数据")
private PageData data;
@Data
public static class PageData implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("总数")
private Long total;
@ApiModelProperty("列表")
private List<PublicJobFair> list;
@ApiModelProperty("当前页码")
private Integer pageNum;
@ApiModelProperty("每页数量")
private Integer pageSize;
@ApiModelProperty("当前页数量")
private Integer size;
@ApiModelProperty("起始行")
private Integer startRow;
@ApiModelProperty("结束行")
private Integer endRow;
@ApiModelProperty("总页数")
private Integer pages;
@ApiModelProperty("上一页")
private Integer prePage;
@ApiModelProperty("下一页")
private Integer nextPage;
@ApiModelProperty("是否第一页")
private Boolean isFirstPage;
@ApiModelProperty("是否最后一页")
private Boolean isLastPage;
@ApiModelProperty("是否有上一页")
private Boolean hasPreviousPage;
@ApiModelProperty("是否有下一页")
private Boolean hasNextPage;
@ApiModelProperty("导航页数")
private Integer navigatePages;
@ApiModelProperty("导航页码")
private List<Integer> navigatepageNums;
@ApiModelProperty("导航第一页")
private Integer navigateFirstPage;
@ApiModelProperty("导航最后一页")
private Integer navigateLastPage;
}
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cms.mapper.rc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.rc.JobFairSignUp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 招聘会报名Mapper接口
*/
@Mapper
public interface JobFairSignUpMapper extends BaseMapper<JobFairSignUp> {
/**
* 检查是否已报名
*/
JobFairSignUp checkSignUp(@Param("jobFairId") Long jobFairId, @Param("userId") Long userId);
}

View File

@@ -0,0 +1,96 @@
package com.ruoyi.cms.mapper.rc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.rc.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 公共招聘会Mapper接口
*/
public interface PublicJobFairMapper extends BaseMapper<PublicJobFair> {
/**
* 分页查询招聘会列表
*/
List<PublicJobFair> selectPublicJobFairList(@Param("query") PublicJobFairQuery query);
/**
* 查询招聘会详情
*/
PublicJobFairDetail selectPublicJobFairDetailById(@Param("jobFairId") String jobFairId);
/**
* 查询招聘会关联的企业列表
*/
List<PublicJobFairCompanyVO> selectCompanyListByJobFairId(@Param("jobFairId") String jobFairId);
/**
* 查询招聘会关联的岗位列表
*/
List<Job> selectJobListByJobFairIdAndCompanyId(@Param("jobFairId") String jobFairId, @Param("companyId") Long companyId);
/**
* 检查用户是否已报名
*/
Integer checkUserSignUp(@Param("jobFairId") String jobFairId, @Param("personId") Long personId);
// ========== CMS后台管理接口 ==========
/**
* 根据ID查询招聘会
*/
PublicJobFair selectPublicJobFairById(@Param("jobFairId") String jobFairId);
/**
* 新增招聘会
*/
int insertPublicJobFair(PublicJobFair publicJobFair);
/**
* 修改招聘会
*/
int updatePublicJobFair(PublicJobFair publicJobFair);
/**
* 批量删除招聘会
*/
int deletePublicJobFairByIds(@Param("jobFairIds") String[] jobFairIds);
/**
* 添加企业到招聘会
*/
int insertJobFairCompany(PublicJobFairCompany company);
/**
* 批量添加企业到招聘会
*/
int insertJobFairCompanyBatch(@Param("list") List<PublicJobFairCompany> companies);
/**
* 删除招聘会企业关联
*/
int deleteJobFairCompanyById(@Param("id") String id);
/**
* 添加岗位到招聘会
*/
int insertJobFairJob(PublicJobFairJob job);
/**
* 批量添加岗位到招聘会
*/
int insertJobFairJobBatch(@Param("list") List<PublicJobFairJob> jobs);
/**
* 删除招聘会岗位关联
*/
int deleteJobFairJobById(@Param("id") String id);
/**
* 查询招聘会报名列表(包含用户信息)
*/
List<JobFairSignUpVO> selectSignUpListByJobFairId(@Param("jobFairId") String jobFairId);
}

View File

@@ -67,7 +67,7 @@ public class ESJobSearchImpl implements IESJobSearchService
/**
* 项目启动时,初始化索引及数据
*/
@PostConstruct
// @PostConstruct
public void init()
{
boolean isLockAcquired = false;

View File

@@ -0,0 +1,17 @@
package com.ruoyi.cms.service.rc;
/**
* 招聘会报名Service接口
*/
public interface IJobFairSignUpService {
/**
* 报名招聘会
*/
int signUp(Long jobFairId);
/**
* 取消报名
*/
int cancelSignUp(Long jobFairId);
}

View File

@@ -0,0 +1,88 @@
package com.ruoyi.cms.service.rc;
import com.ruoyi.cms.domain.rc.*;
import java.util.List;
/**
* 公共招聘会Service接口
*/
public interface IPublicJobFairService {
/**
* 分页查询招聘会列表APP端
*/
PublicJobFairResponse getJobFairPage(PublicJobFairQuery query);
/**
* 获取招聘会详情APP端
*/
PublicJobFairDetail getJobFairDetail(String jobFairId);
/**
* 获取招聘会企业及岗位列表
*/
List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId);
// ========== CMS后台管理接口 ==========
/**
* 查询招聘会列表CMS
*/
List<PublicJobFair> selectList(PublicJobFairQuery query);
/**
* 根据ID查询招聘会
*/
PublicJobFair selectById(String jobFairId);
/**
* 新增招聘会
*/
int insert(PublicJobFair publicJobFair);
/**
* 修改招聘会
*/
int update(PublicJobFair publicJobFair);
/**
* 批量删除招聘会
*/
int deleteByIds(String[] jobFairIds);
/**
* 添加企业到招聘会
*/
int addCompany(PublicJobFairCompany company);
/**
* 批量添加企业到招聘会
*/
int addCompanyBatch(List<PublicJobFairCompany> companies);
/**
* 移除招聘会企业
*/
int removeCompany(String id);
/**
* 添加岗位到招聘会
*/
int addJob(PublicJobFairJob job);
/**
* 批量添加岗位到招聘会
*/
int addJobBatch(List<PublicJobFairJob> jobs);
/**
* 移除招聘会岗位
*/
int removeJob(String id);
/**
* 查询招聘会报名列表
*/
List<JobFairSignUpVO> selectSignUpList(String jobFairId);
}

View File

@@ -0,0 +1,63 @@
package com.ruoyi.cms.service.rc.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.rc.JobFairSignUp;
import com.ruoyi.cms.mapper.rc.JobFairSignUpMapper;
import com.ruoyi.cms.service.rc.IJobFairSignUpService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SiteSecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* 招聘会报名Service业务层处理
*/
@Service
public class JobFairSignUpServiceImpl extends ServiceImpl<JobFairSignUpMapper, JobFairSignUp> implements IJobFairSignUpService {
@Autowired
private JobFairSignUpMapper jobFairSignUpMapper;
@Override
public int signUp(Long jobFairId) {
Long userId = SiteSecurityUtils.getUserId();
// 检查是否已有报名记录
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
if (existSignUp != null) {
// 已有记录
if ("0".equals(existSignUp.getStatus())) {
throw new ServiceException("您已报名该招聘会,请勿重复报名");
}
// 已取消的记录,重新激活
existSignUp.setStatus("0");
existSignUp.setSignUpTime(new Date());
return jobFairSignUpMapper.updateById(existSignUp);
}
// 新增报名记录
JobFairSignUp signUp = new JobFairSignUp();
signUp.setJobFairId(jobFairId);
signUp.setUserId(userId);
signUp.setSignUpTime(new Date());
signUp.setStatus("0");
return jobFairSignUpMapper.insert(signUp);
}
@Override
public int cancelSignUp(Long jobFairId) {
Long userId = SiteSecurityUtils.getUserId();
JobFairSignUp existSignUp = jobFairSignUpMapper.checkSignUp(jobFairId, userId);
if (existSignUp == null || "1".equals(existSignUp.getStatus())) {
throw new ServiceException("您未报名该招聘会");
}
existSignUp.setStatus("1"); // 已取消
return jobFairSignUpMapper.updateById(existSignUp);
}
}

View File

@@ -0,0 +1,207 @@
package com.ruoyi.cms.service.rc.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ruoyi.cms.domain.Job;
import com.ruoyi.cms.domain.rc.*;
import com.ruoyi.cms.mapper.rc.PublicJobFairMapper;
import com.ruoyi.cms.service.rc.IPublicJobFairService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.SiteSecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 公共招聘会Service实现
*/
@Slf4j
@Service
public class PublicJobFairServiceImpl implements IPublicJobFairService {
@Autowired
private PublicJobFairMapper publicJobFairMapper;
@Override
public PublicJobFairResponse getJobFairPage(PublicJobFairQuery query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
List<PublicJobFair> list = publicJobFairMapper.selectPublicJobFairList(query);
PageInfo<PublicJobFair> pageInfo = new PageInfo<>(list);
PublicJobFairResponse response = new PublicJobFairResponse();
response.setCode(200);
PublicJobFairResponse.PageData pageData = new PublicJobFairResponse.PageData();
pageData.setTotal(pageInfo.getTotal());
pageData.setList(list);
pageData.setPageNum(pageInfo.getPageNum());
pageData.setPageSize(pageInfo.getPageSize());
pageData.setSize(pageInfo.getSize());
pageData.setStartRow((int) pageInfo.getStartRow());
pageData.setEndRow((int) pageInfo.getEndRow());
pageData.setPages(pageInfo.getPages());
pageData.setPrePage(pageInfo.getPrePage());
pageData.setNextPage(pageInfo.getNextPage());
pageData.setIsFirstPage(pageInfo.isIsFirstPage());
pageData.setIsLastPage(pageInfo.isIsLastPage());
pageData.setHasPreviousPage(pageInfo.isHasPreviousPage());
pageData.setHasNextPage(pageInfo.isHasNextPage());
pageData.setNavigatePages(pageInfo.getNavigatePages());
pageData.setNavigatepageNums(Arrays.stream(pageInfo.getNavigatepageNums()).boxed().collect(Collectors.toList()));
pageData.setNavigateFirstPage(pageInfo.getNavigateFirstPage());
pageData.setNavigateLastPage(pageInfo.getNavigateLastPage());
response.setData(pageData);
return response;
}
@Override
public PublicJobFairDetail getJobFairDetail(String jobFairId) {
PublicJobFairDetail detail = publicJobFairMapper.selectPublicJobFairDetailById(jobFairId);
if (detail == null) {
return null;
}
// 获取当前登录用户ID
Long userId = null;
try {
if (SiteSecurityUtils.isLogin()) {
userId = SiteSecurityUtils.getUserId();
}
} catch (Exception e) {
// 未登录,忽略
}
// 检查用户是否已报名
if (userId != null) {
Integer count = publicJobFairMapper.checkUserSignUp(jobFairId, userId);
detail.setIsSignUp(count != null && count > 0 ? 1 : 0);
} else {
detail.setIsSignUp(0);
}
return detail;
}
@Override
public List<PublicJobFairCompanyVO> getEnterprisesWithJobs(String jobFairId) {
List<PublicJobFairCompanyVO> companyList = publicJobFairMapper.selectCompanyListByJobFairId(jobFairId);
if (companyList != null && !companyList.isEmpty()) {
for (PublicJobFairCompanyVO company : companyList) {
List<Job> jobList = publicJobFairMapper.selectJobListByJobFairIdAndCompanyId(jobFairId, company.getCompanyId());
company.setJobInfoList(jobList);
}
}
return companyList;
}
// ========== CMS后台管理接口实现 ==========
@Override
public List<PublicJobFair> selectList(PublicJobFairQuery query) {
return publicJobFairMapper.selectPublicJobFairList(query);
}
@Override
public PublicJobFair selectById(String jobFairId) {
PublicJobFair jobFair = publicJobFairMapper.selectPublicJobFairById(jobFairId);
if (jobFair != null) {
// 查询关联的企业及岗位
List<PublicJobFairCompanyVO> companyList = getEnterprisesWithJobs(jobFairId);
jobFair.setCompanyList(companyList);
}
return jobFair;
}
@Override
@Transactional
public int insert(PublicJobFair publicJobFair) {
publicJobFair.setJobFairId(IdUtils.fastSimpleUUID());
publicJobFair.setCreateTime(new Date());
publicJobFair.setCreateBy(SecurityUtils.getUsername());
return publicJobFairMapper.insertPublicJobFair(publicJobFair);
}
@Override
@Transactional
public int update(PublicJobFair publicJobFair) {
publicJobFair.setUpdateTime(new Date());
publicJobFair.setUpdateBy(SecurityUtils.getUsername());
return publicJobFairMapper.updatePublicJobFair(publicJobFair);
}
@Override
@Transactional
public int deleteByIds(String[] jobFairIds) {
return publicJobFairMapper.deletePublicJobFairByIds(jobFairIds);
}
@Override
@Transactional
public int addCompany(PublicJobFairCompany company) {
company.setId(IdUtils.fastSimpleUUID());
company.setCreateTime(new Date());
company.setCreateBy(SecurityUtils.getUsername());
return publicJobFairMapper.insertJobFairCompany(company);
}
@Override
@Transactional
public int addCompanyBatch(List<PublicJobFairCompany> companies) {
String username = SecurityUtils.getUsername();
Date now = new Date();
for (PublicJobFairCompany company : companies) {
company.setId(IdUtils.fastSimpleUUID());
company.setCreateTime(now);
company.setCreateBy(username);
}
return publicJobFairMapper.insertJobFairCompanyBatch(companies);
}
@Override
@Transactional
public int removeCompany(String id) {
return publicJobFairMapper.deleteJobFairCompanyById(id);
}
@Override
@Transactional
public int addJob(PublicJobFairJob job) {
job.setId(IdUtils.fastSimpleUUID());
job.setCreateTime(new Date());
job.setCreateBy(SecurityUtils.getUsername());
return publicJobFairMapper.insertJobFairJob(job);
}
@Override
@Transactional
public int addJobBatch(List<PublicJobFairJob> jobs) {
String username = SecurityUtils.getUsername();
Date now = new Date();
for (PublicJobFairJob job : jobs) {
job.setId(IdUtils.fastSimpleUUID());
job.setCreateTime(now);
job.setCreateBy(username);
}
return publicJobFairMapper.insertJobFairJobBatch(jobs);
}
@Override
@Transactional
public int removeJob(String id) {
return publicJobFairMapper.deleteJobFairJobById(id);
}
@Override
public List<JobFairSignUpVO> selectSignUpList(String jobFairId) {
return publicJobFairMapper.selectSignUpListByJobFairId(jobFairId);
}
}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cms.mapper.rc.JobFairSignUpMapper">
<resultMap type="com.ruoyi.cms.domain.rc.JobFairSignUp" id="JobFairSignUpResult">
<id property="id" column="id"/>
<result property="jobFairId" column="job_fair_id"/>
<result property="userId" column="user_id"/>
<result property="signUpTime" column="sign_up_time"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="checkSignUp" resultMap="JobFairSignUpResult">
select id, job_fair_id, user_id, sign_up_time, status
from rc_job_fair_sign_up
where job_fair_id = #{jobFairId} and user_id = #{userId} and del_flag = '0'
order by sign_up_time desc limit 1
</select>
</mapper>

View File

@@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cms.mapper.rc.PublicJobFairMapper">
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFair" id="PublicJobFairResult">
<result property="jobFairId" column="job_fair_id"/>
<result property="jobFairTitle" column="job_fair_title"/>
<result property="jobFairAddress" column="job_fair_address"/>
<result property="jobFairType" column="job_fair_type"/>
<result property="jobFairStartTime" column="job_fair_start_time"/>
<result property="jobFairEndTime" column="job_fair_end_time"/>
<result property="jobFairHostUnit" column="job_fair_host_unit"/>
<result property="jobFairHelpUnit" column="job_fair_help_unit"/>
<result property="jobFairOrganizeUnit" column="job_fair_organize_unit"/>
<result property="jobFairIntroduction" column="job_fair_introduction"/>
<result property="jobFairRemark" column="job_fair_remark"/>
<result property="jobFairPhone" column="job_fair_phone"/>
<result property="jobFairImage" column="job_fair_image"/>
<result property="jobFairAreaImage" column="job_fair_area_image"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="jobFairVenueId" column="job_fair_venue_id"/>
<result property="jobFairSignUpStartTime" column="job_fair_sign_up_start_time"/>
<result property="jobFairSignUpEndTime" column="job_fair_sign_up_end_time"/>
<result property="isSignUp" column="is_sign_up"/>
<result property="enterpriseNum" column="enterprise_num"/>
<result property="boothNum" column="booth_num"/>
<result property="divisionName" column="division_name"/>
<result property="deptCodeLast" column="dept_code_last"/>
<result property="deptCodeAll" column="dept_code_all"/>
<result property="jobFairCategory" column="job_fair_category"/>
</resultMap>
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairDetail" id="DetailResult">
<result property="jobFairId" column="job_fair_id"/>
<result property="jobFairTitle" column="job_fair_title"/>
<result property="jobFairAddress" column="job_fair_address"/>
<result property="jobFairIntroduction" column="job_fair_introduction"/>
<result property="jobFairStartTime" column="job_fair_start_time"/>
<result property="jobFairEndTime" column="job_fair_end_time"/>
<result property="jobFairType" column="job_fair_type"/>
<result property="latitude" column="latitude"/>
<result property="longitude" column="longitude"/>
</resultMap>
<resultMap type="com.ruoyi.cms.domain.rc.PublicJobFairCompanyVO" id="CompanyVOResult">
<result property="id" column="id"/>
<result property="companyId" column="company_id"/>
<result property="companyName" column="name"/>
<result property="scale" column="scale"/>
<result property="industry" column="industry"/>
<result property="companyType" column="nature"/>
</resultMap>
<sql id="selectPublicJobFairVo">
select job_fair_id, job_fair_title, job_fair_address, job_fair_type, job_fair_start_time, job_fair_end_time,
job_fair_host_unit, job_fair_help_unit, job_fair_organize_unit, job_fair_introduction, job_fair_remark,
job_fair_phone, job_fair_image, job_fair_area_image, create_by, create_time, update_by, update_time,
job_fair_venue_id, job_fair_sign_up_start_time, job_fair_sign_up_end_time, enterprise_num, booth_num,
division_name, dept_code_last, dept_code_all, job_fair_category
from public_job_fair
</sql>
<select id="selectPublicJobFairList" resultMap="PublicJobFairResult">
<include refid="selectPublicJobFairVo"/>
<where>
del_flag = '0'
<if test="query.jobFairTitle != null and query.jobFairTitle != ''">
and job_fair_title like concat('%', #{query.jobFairTitle}, '%')
</if>
<if test="query.jobFairType != null and query.jobFairType != ''">
and job_fair_type = #{query.jobFairType}
</if>
<if test="query.zphjbsj != null and query.zphjbsj != ''">
and to_char(job_fair_start_time, 'YYYY-MM-DD') &lt;= #{query.zphjbsj}
and to_char(job_fair_end_time, 'YYYY-MM-DD') &gt;= #{query.zphjbsj}
</if>
</where>
order by job_fair_start_time desc
</select>
<select id="selectPublicJobFairDetailById" resultMap="DetailResult">
select job_fair_id, job_fair_title, job_fair_address, job_fair_introduction,
job_fair_start_time, job_fair_end_time, job_fair_type, latitude, longitude
from public_job_fair
where job_fair_id = #{jobFairId} and del_flag = '0'
</select>
<select id="selectCompanyListByJobFairId" resultMap="CompanyVOResult">
select pfc.id, pfc.company_id, c.name, c.scale, c.industry, c.nature
from public_job_fair_company pfc
left join company c on pfc.company_id = c.company_id
where pfc.job_fair_id = #{jobFairId} and pfc.del_flag = '0'
order by pfc.create_time desc
</select>
<select id="selectJobListByJobFairIdAndCompanyId" resultType="com.ruoyi.cms.domain.Job">
select j.job_id, j.job_title, j.min_salary, j.max_salary, j.education, j.experience,
j.company_name, j.job_location, j.job_location_area_code, j.posting_date, j.vacancies,
j.company_id, j.description, j.job_category
from public_job_fair_job pfj
inner join job j on pfj.job_id = j.job_id
where pfj.job_fair_id = #{jobFairId} and pfj.company_id = #{companyId} and pfj.del_flag = '0' and j.del_flag = '0'
order by j.create_time desc
</select>
<select id="checkUserSignUp" resultType="java.lang.Integer">
select count(1) from rc_job_fair_sign_up
where job_fair_id = #{jobFairId}::bigint and user_id = #{personId} and del_flag = '0' and status = '0'
</select>
<!-- ========== CMS后台管理SQL ========== -->
<select id="selectPublicJobFairById" resultMap="PublicJobFairResult">
<include refid="selectPublicJobFairVo"/>
where job_fair_id = #{jobFairId} and del_flag = '0'
</select>
<insert id="insertPublicJobFair">
insert into public_job_fair (
job_fair_id, job_fair_title, job_fair_address, job_fair_type,
job_fair_start_time, job_fair_end_time, job_fair_host_unit, job_fair_help_unit,
job_fair_organize_unit, job_fair_introduction, job_fair_remark, job_fair_phone,
job_fair_image, job_fair_area_image, job_fair_venue_id,
job_fair_sign_up_start_time, job_fair_sign_up_end_time,
enterprise_num, booth_num, division_name, dept_code_last, dept_code_all,
job_fair_category, latitude, longitude,
create_by, create_time, del_flag
) values (
#{jobFairId}, #{jobFairTitle}, #{jobFairAddress}, #{jobFairType},
#{jobFairStartTime}, #{jobFairEndTime}, #{jobFairHostUnit}, #{jobFairHelpUnit},
#{jobFairOrganizeUnit}, #{jobFairIntroduction}, #{jobFairRemark}, #{jobFairPhone},
#{jobFairImage}, #{jobFairAreaImage}, #{jobFairVenueId},
#{jobFairSignUpStartTime}, #{jobFairSignUpEndTime},
#{enterpriseNum}, #{boothNum}, #{divisionName}, #{deptCodeLast}, #{deptCodeAll},
#{jobFairCategory}, #{latitude}, #{longitude},
#{createBy}, #{createTime}, '0'
)
</insert>
<update id="updatePublicJobFair">
update public_job_fair
<set>
<if test="jobFairTitle != null">job_fair_title = #{jobFairTitle},</if>
<if test="jobFairAddress != null">job_fair_address = #{jobFairAddress},</if>
<if test="jobFairType != null">job_fair_type = #{jobFairType},</if>
<if test="jobFairStartTime != null">job_fair_start_time = #{jobFairStartTime},</if>
<if test="jobFairEndTime != null">job_fair_end_time = #{jobFairEndTime},</if>
<if test="jobFairHostUnit != null">job_fair_host_unit = #{jobFairHostUnit},</if>
<if test="jobFairHelpUnit != null">job_fair_help_unit = #{jobFairHelpUnit},</if>
<if test="jobFairOrganizeUnit != null">job_fair_organize_unit = #{jobFairOrganizeUnit},</if>
<if test="jobFairIntroduction != null">job_fair_introduction = #{jobFairIntroduction},</if>
<if test="jobFairRemark != null">job_fair_remark = #{jobFairRemark},</if>
<if test="jobFairPhone != null">job_fair_phone = #{jobFairPhone},</if>
<if test="jobFairImage != null">job_fair_image = #{jobFairImage},</if>
<if test="jobFairAreaImage != null">job_fair_area_image = #{jobFairAreaImage},</if>
<if test="jobFairVenueId != null">job_fair_venue_id = #{jobFairVenueId},</if>
<if test="jobFairSignUpStartTime != null">job_fair_sign_up_start_time = #{jobFairSignUpStartTime},</if>
<if test="jobFairSignUpEndTime != null">job_fair_sign_up_end_time = #{jobFairSignUpEndTime},</if>
<if test="enterpriseNum != null">enterprise_num = #{enterpriseNum},</if>
<if test="boothNum != null">booth_num = #{boothNum},</if>
<if test="divisionName != null">division_name = #{divisionName},</if>
<if test="deptCodeLast != null">dept_code_last = #{deptCodeLast},</if>
<if test="deptCodeAll != null">dept_code_all = #{deptCodeAll},</if>
<if test="jobFairCategory != null">job_fair_category = #{jobFairCategory},</if>
<if test="latitude != null">latitude = #{latitude},</if>
<if test="longitude != null">longitude = #{longitude},</if>
update_by = #{updateBy},
update_time = #{updateTime}
</set>
where job_fair_id = #{jobFairId}
</update>
<update id="deletePublicJobFairByIds">
update public_job_fair set del_flag = '2'
where job_fair_id in
<foreach item="jobFairId" collection="jobFairIds" open="(" separator="," close=")">
#{jobFairId}
</foreach>
</update>
<insert id="insertJobFairCompany">
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
values (#{id}, #{jobFairId}, #{companyId}, #{createBy}, #{createTime}, '0')
</insert>
<insert id="insertJobFairCompanyBatch">
insert into public_job_fair_company (id, job_fair_id, company_id, create_by, create_time, del_flag)
values
<foreach item="item" collection="list" separator=",">
(#{item.id}, #{item.jobFairId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0')
</foreach>
</insert>
<update id="deleteJobFairCompanyById">
update public_job_fair_company set del_flag = '2' where id = #{id}
</update>
<insert id="insertJobFairJob">
insert into public_job_fair_job (id, job_fair_id, job_id, company_id, create_by, create_time, del_flag)
values (#{id}, #{jobFairId}, #{jobId}, #{companyId}, #{createBy}, #{createTime}, '0')
</insert>
<insert id="insertJobFairJobBatch">
insert into public_job_fair_job (id, job_fair_id, job_id, company_id, create_by, create_time, del_flag)
values
<foreach item="item" collection="list" separator=",">
(#{item.id}, #{item.jobFairId}, #{item.jobId}, #{item.companyId}, #{item.createBy}, #{item.createTime}, '0')
</foreach>
</insert>
<update id="deleteJobFairJobById">
update public_job_fair_job set del_flag = '2' where id = #{id}
</update>
<resultMap type="com.ruoyi.cms.domain.rc.JobFairSignUpVO" id="SignUpVOResult">
<result property="id" column="id"/>
<result property="jobFairId" column="job_fair_id"/>
<result property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="realName" column="nick_name"/>
<result property="phone" column="phonenumber"/>
<result property="signUpTime" column="sign_up_time"/>
<result property="status" column="status"/>
</resultMap>
<select id="selectSignUpListByJobFairId" resultMap="SignUpVOResult">
select s.id, s.job_fair_id, s.user_id, s.sign_up_time, s.status,
u.user_name, u.nick_name, u.phonenumber
from rc_job_fair_sign_up s
left join sys_user u on s.user_id = u.user_id
where s.job_fair_id = #{jobFairId}::bigint and s.del_flag = '0'
order by s.sign_up_time desc
</select>
</mapper>