diff --git a/recruit-api/src/main/java/com/rsjst/hcm/recruit/api/entity/RecruitPositionPojo.java b/recruit-api/src/main/java/com/rsjst/hcm/recruit/api/entity/RecruitPositionPojo.java new file mode 100644 index 0000000..357bc46 --- /dev/null +++ b/recruit-api/src/main/java/com/rsjst/hcm/recruit/api/entity/RecruitPositionPojo.java @@ -0,0 +1,64 @@ +package com.rsjst.hcm.recruit.api.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("职位") +@TableName("position_management") +public class RecruitPositionPojo { + + // 这个用uuid自动生成了 + @ApiModelProperty("id") + String id; + + // 工作名称 + @ApiModelProperty("工作名称") + String jobName; + + // 工作内容 + @ApiModelProperty("工作内容") + String jobContent; + + // 岗位描述 + @ApiModelProperty("岗位描述") + String positionDescription; + + // 岗位地点 + @ApiModelProperty("岗位地点") + String positionLocation; + + // 招聘状态 + @ApiModelProperty("招聘状态") + Integer recruitmentStatus; + + // 薪资详情 + @ApiModelProperty("薪资详情") + String salaryDetails; + + // 经验年限 + @ApiModelProperty("经验年限") + String experienceYears; + + // 学历 + @ApiModelProperty("学历") + String education; + + // 公司名称 + @ApiModelProperty("公司名称") + String companyName; + + // 企业联系人 + @ApiModelProperty("企业联系人") + String enterpriseContactPerson; + + // 企业联系人号码 + @ApiModelProperty("企业联系人号码") + String enterprisePhone; + + // 附件 + @ApiModelProperty("附件") + String files; +} diff --git a/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/controller/RecruitPositionController.java b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/controller/RecruitPositionController.java new file mode 100644 index 0000000..3c88d4f --- /dev/null +++ b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/controller/RecruitPositionController.java @@ -0,0 +1,107 @@ +package com.rsjst.hcm.recruit.biz.controller; + +import cn.zgfxrc.boot.common.core.entity.interfaces.AddGroup; +import cn.zgfxrc.boot.common.core.entity.interfaces.DelGroup; +import cn.zgfxrc.boot.common.core.entity.interfaces.EditGroup; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rsjst.hcm.recruit.api.entity.RecruitPositionPojo; +import com.rsjst.hcm.recruit.biz.service.RecruitPositionService; +import com.seepine.secret.annotation.Log; +import com.seepine.secret.annotation.Permission; +import com.seepine.wrap.WrapException; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.util.List; +import lombok.AllArgsConstructor; +import org.springframework.lang.Nullable; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "职位管理") +@RequestMapping("recruit/position") +@AllArgsConstructor +public class RecruitPositionController { + RecruitPositionService service; + + /** + * 分页查询 + * + * @param page 分页对象 + * @param entity 实体类 + * @return IPage + */ + @PostMapping("page/res") + @Permission("recruit_position_view") + public IPage pageRes( + Page page, @RequestBody RecruitPositionPojo entity) { + return service.pageRes(page, entity); + } + + /** + * 分页查询 + * + * @param entity 实体类 + * @return List + */ + @ApiOperation("获取数组") + @PostMapping("list") + @Permission("recruit_position_view") + public List list(@RequestBody @Nullable RecruitPositionPojo entity) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(entity); + return service.list(wrapper); + } + + /** + * 新增 + * + * @param entity 实体类 + */ + @Log("新增") + @ApiOperation("新增") + @PostMapping("add") + @Permission("recruit_position_add") + public void save(@RequestBody @Validated(AddGroup.class) RecruitPositionPojo entity) { + if (!service.save(entity)) { + throw new WrapException("保存失败"); + } + } + + /** + * 修改 + * + * @param entity 实体类 + */ + @Log("修改") + @ApiOperation("修改") + @PostMapping("edit") + @Permission("recruit_position_edit") + public void updateById(@RequestBody @Validated(EditGroup.class) RecruitPositionPojo entity) { + if (!service.updateById(entity)) { + throw new WrapException("修改失败"); + } + } + + /** + * 通过id删除 + * + * @param entity 实体类 + */ + @Log("删除") + @ApiOperation("根据id删除") + @PostMapping("del") + @Permission("recruit_position_del") + public void removeById( + @ApiParam("主键") @RequestBody @Validated(DelGroup.class) RecruitPositionPojo entity) { + if (!service.removeById(entity.getId())) { + throw new WrapException("删除失败"); + } + } +} diff --git a/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/mapper/RecruitPositionMapper.java b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/mapper/RecruitPositionMapper.java new file mode 100644 index 0000000..d2e9d47 --- /dev/null +++ b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/mapper/RecruitPositionMapper.java @@ -0,0 +1,8 @@ +package com.rsjst.hcm.recruit.biz.mapper; + +import cn.zgfxrc.boot.common.mybatis.base.MpBaseMapper; +import com.rsjst.hcm.recruit.api.entity.RecruitPositionPojo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RecruitPositionMapper extends MpBaseMapper {} diff --git a/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/service/RecruitPositionService.java b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/service/RecruitPositionService.java new file mode 100644 index 0000000..6de009a --- /dev/null +++ b/recruit-biz/src/main/java/com/rsjst/hcm/recruit/biz/service/RecruitPositionService.java @@ -0,0 +1,37 @@ +package com.rsjst.hcm.recruit.biz.service; + +import cn.zgfxrc.boot.upms.api.feign.RemoteUserService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.rsjst.hcm.recruit.api.entity.RecruitPositionPojo; +import com.rsjst.hcm.recruit.biz.mapper.RecruitPositionMapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@AllArgsConstructor +public class RecruitPositionService + extends ServiceImpl { + private final RemoteUserService remoteUserService; + + public IPage pageRes( + Page page, RecruitPositionPojo entity) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(entity); + return super.page(page, wrapper); + } + + @Override + public boolean updateById(RecruitPositionPojo entity) { + return super.update( + entity, + Wrappers.lambdaUpdate() + .eq(RecruitPositionPojo::getId, entity.getId()) + // 重写updateById,实现附件为null时,也更新数据库 + .set(RecruitPositionPojo::getFiles, entity.getFiles())); + } +}