完成项目详情及招工申请

This commit is contained in:
2025-02-20 19:17:51 +08:00
parent b5c941b452
commit 0fefdd7352
8 changed files with 190 additions and 0 deletions

View File

@ -306,6 +306,27 @@ public class WgzAppController {
return iWgzReissueacardService.userReplacementCardRecord(req);
}
/**
* 【首页】【项目详情】 项目详情
*/
@ApiOperation("【首页】【项目详情】 项目详情)")
@PreAuthorize("@ss.hasPermi('wgzApp:user:userProjectDetails')")
@GetMapping("/WgzAppUserProjectDetails/{id}")
public AjaxResult<WgzAppProjectDetailsRes> userProjectDetails(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return AjaxResult.success(iBgtProjectRecruitService.userProjectDetails(id));
}
/**
* 【首页】【项目详情】 项目详情·申请报名
*/
@ApiOperation("【首页】【项目详情】 项目详情·申请报名)")
@PreAuthorize("@ss.hasPermi('wgzApp:user:userApplyForRegistration')")
@GetMapping("/WgzAppUserApplyForRegistration/{id}")
public AjaxResult<Boolean> userApplyForRegistration(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return AjaxResult.success(iBgtProjectRecruitApplyService.userApplyForRegistration(id));
}
/**
* 通用接口

View File

@ -6,6 +6,7 @@ import com.ruoyi.bgt.domain.dto.BgtProjectRecruitQueryDTO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitVO;
import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
@ -20,4 +21,6 @@ import org.apache.ibatis.annotations.Param;
public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecruit> {
Page<BgtProjectRecruitVO> appQueryPageList(@Param("page") Page<BgtProjectRecruitQueryDTO> page, @Param("dto") BgtProjectRecruitQueryDTO dto);
WgzAppProjectDetailsRes userProjectDetails(@Param("id") Long id);
}

View File

@ -73,6 +73,12 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
*/
BgtProjectRecruitApply selectByUserIdProjectRecruitApplyId(Long id);
/**
* 务工者申请报名
*/
Boolean userApplyForRegistration(Long id);
/**
* 同意申请
*/

View File

@ -7,7 +7,10 @@ import com.ruoyi.bgt.domain.vo.BgtProjectRecruitDetailVO;
import com.ruoyi.bgt.domain.vo.BgtProjectRecruitVO;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import org.springframework.web.bind.annotation.PathVariable;
import javax.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;
@ -79,4 +82,9 @@ public interface IBgtProjectRecruitService extends IServicePlus<BgtProjectRecrui
*/
BgtProjectRecruit getAppById(Long id);
/**
* 首页-项目详情
*/
WgzAppProjectDetailsRes userProjectDetails(Long id);
}

View File

@ -18,6 +18,7 @@ import com.ruoyi.common.enums.RecruitApplyStatus;
import com.ruoyi.common.exception.BaseException;
import com.ruoyi.common.service.IAnnexService;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -145,4 +146,16 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
return bgtProjectRecruitApplies.get(0);
}
@Override
@Transactional
public Boolean userApplyForRegistration(Long id) {
//1、获取当前用户
Long appUserId = SecurityUtils.getAppUserId();
//2、插入数据
BgtProjectRecruitApply bgtProjectRecruitApply = new BgtProjectRecruitApply();
bgtProjectRecruitApply.setRecruitId(id);
bgtProjectRecruitApply.setUserId(appUserId);
return baseMapper.insert(bgtProjectRecruitApply) >0;
}
}

View File

@ -20,6 +20,7 @@ import com.ruoyi.common.enums.RecruitApplyStatus;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -147,4 +148,9 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
return baseMapper.selectById(id);
}
@Override
public WgzAppProjectDetailsRes userProjectDetails(Long id) {
return baseMapper.userProjectDetails(id);
}
}

View File

@ -0,0 +1,120 @@
package com.ruoyi.wgz.bo.res;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("项目详情返回对象")
public class WgzAppProjectDetailsRes implements Serializable {
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("项目ID")
private Long projectId;
//==============
@ApiModelProperty("封面图(多个逗号分隔)")
private String coverPlan;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("招工名称")
private String recruitName;
@ApiModelProperty("招工金额")
private BigDecimal recruitAmount;
@ApiModelProperty("招工数量")
private Integer recruitStaffNum;
@ApiModelProperty("任务ID")
private Long taskId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务地址")
private String taskAddress;
@ApiModelProperty("招工描述")
private String subDescribe;
@ApiModelProperty("招工开始时间")
private String recruitBeginTime;
@ApiModelProperty("联系人")
private String recruitContactPerson;
@ApiModelProperty("联系电话")
private String recruitContactPhone;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("招工要求")
private String recruitRequirement;
//---------
//---------
//---------
@ApiModelProperty("上班时间")
private LocalTime beginWorkTime;
@ApiModelProperty("下班时间")
private LocalTime endWorkTime;
@ApiModelProperty("标段ID")
private Long sectionId;
@ApiModelProperty("分包ID")
private Long subId;
@ApiModelProperty("招工地址")
private String recruitAddress;
@ApiModelProperty("创建者ID")
private Long userId;
@ApiModelProperty("删除标志0代表存在 2代表删除")
private String delFlag;
/**
* 更新者
*/
@Excel(name = "更新者")
@ApiModelProperty("更新者")
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}

View File

@ -40,4 +40,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="userProjectDetails" resultType="com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes">
SELECT
a.*,
b.task_name,
b.task_address,
b.task_img
FROM
bgt_project_recruit as a
LEFT JOIN fbs_project_task as b ON (a.task_id = b.id AND b.del_flag = 0)
WHERE
a.id = #{id} AND a.del_flag = 0
</select>
</mapper>