完成已报名模块、且修正招工中间表类型

This commit is contained in:
2025-02-21 11:49:51 +08:00
parent a56e12ced2
commit 1fa1862e77
21 changed files with 406 additions and 39 deletions

View File

@ -42,7 +42,7 @@ public class BgtProjectRecruitApply implements Serializable {
@ApiModelProperty("务工者用户ID")
private Long userId;
@ApiModelProperty("选择状态0未选择 1已选择")
@ApiModelProperty("0报名 1包工同意 2包工头拒绝截止时间3务工者同意 4务工者拒绝 5进场 6离场")
private String status;
@ApiModelProperty("进场时间")

View File

@ -6,10 +6,16 @@ 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.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 包工头招工Mapper接口
*
@ -23,4 +29,8 @@ public interface BgtProjectRecruitMapper extends BaseMapperPlus<BgtProjectRecrui
Page<BgtProjectRecruitVO> appQueryPageList(@Param("page") Page<BgtProjectRecruitQueryDTO> page, @Param("dto") BgtProjectRecruitQueryDTO dto);
WgzAppProjectDetailsRes userProjectDetails(@Param("id") Long id);
Page<WgzAppRegisteredProjectRes> userRegisteredProject(@Param("page") Page<WgzAppRegisteredProjectReq> page,@Param("userId") Long userId);
List<WgzAppCancelRegistrationProjectDetailsTwo> GetsTheMembersUnderTheCurrentProject (@Param("recruitId") Long recruitId);
}

View File

@ -84,4 +84,10 @@ public interface IBgtProjectRecruitApplyService extends IServicePlus<BgtProjectR
*/
Boolean consent(BgtProjectRecruitApplyConsentDTO dto);
/**
* 务工者取消报名
*/
Boolean userCancelRegistration(Long recruitId);
}

View File

@ -7,9 +7,14 @@ 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.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;
@ -87,4 +92,14 @@ public interface IBgtProjectRecruitService extends IServicePlus<BgtProjectRecrui
*/
WgzAppProjectDetailsRes userProjectDetails(Long id);
/**
* 首页-已报名项目(分页)
*/
TableDataInfo<WgzAppRegisteredProjectRes> userRegisteredProject(@Validated WgzAppRegisteredProjectReq req);
/**
* 已报名项目·项目详情
*/
WgzAppCancelRegistrationProjectDetailsRes userCancelRegistrationProjectDetails(Long recruitId);
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.bgt.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.injector.methods.DeleteById;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.bgt.bo.BgtProjectRecruitApplyQueryBo;
@ -122,6 +123,7 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
/**
* LC-APP相关
* =================================================================================================================
@ -136,9 +138,9 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
public BgtProjectRecruitApply selectByUserIdProjectRecruitApplyId(Long id) {
LambdaQueryWrapper<BgtProjectRecruitApply> lqw = Wrappers.lambdaQuery();
lqw.eq(BgtProjectRecruitApply::getUserId, id).
eq(BgtProjectRecruitApply::getStatus, "1").
isNotNull(BgtProjectRecruitApply::getEntryTime).
ne(BgtProjectRecruitApply::getEntryTime, "");
eq(BgtProjectRecruitApply::getStatus, "3"); //包工头同意、务工者同意才算进场ok
// isNotNull(BgtProjectRecruitApply::getEntryTime).
// ne(BgtProjectRecruitApply::getEntryTime, "");
List<BgtProjectRecruitApply> bgtProjectRecruitApplies = baseMapper.selectList(lqw);
if (bgtProjectRecruitApplies.size()>1){
throw new RuntimeException("异常,查询到用户同时在多个工地务工!");
@ -151,6 +153,16 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
public Boolean userApplyForRegistration(Long id) {
//1、获取当前用户
Long appUserId = SecurityUtils.getAppUserId();
//2、检查当前用户是否已经有工地了、检查当前用户是否满足对应工种
Integer i = baseMapper.selectCount(
new LambdaQueryWrapper<BgtProjectRecruitApply>().
eq(BgtProjectRecruitApply::getUserId, appUserId).
eq(BgtProjectRecruitApply::getStatus, "3")
// isNotNull(BgtProjectRecruitApply::getEntryTime).ne(BgtProjectRecruitApply::getEntryTime, "")
);
if (i>0){
throw new RuntimeException("已有工地!不可再次申请!");
}
//2、插入数据
BgtProjectRecruitApply bgtProjectRecruitApply = new BgtProjectRecruitApply();
bgtProjectRecruitApply.setRecruitId(id);
@ -158,4 +170,10 @@ public class BgtProjectRecruitApplyServiceImpl extends ServicePlusImpl<BgtProjec
return baseMapper.insert(bgtProjectRecruitApply) >0;
}
@Override
@Transactional
public Boolean userCancelRegistration(Long recruitId) {
return baseMapper.deleteById(new LambdaQueryWrapper<BgtProjectRecruitApply>().eq(BgtProjectRecruitApply::getRecruitId, recruitId)) >0;
}
}

View File

@ -18,11 +18,19 @@ import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.RecruitApplyStatus;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.fbs.domain.FbsProjectTask;
import com.ruoyi.fbs.service.IFbsProjectTaskService;
import com.ruoyi.wgz.bo.req.WgzAppRegisteredProjectReq;
import com.ruoyi.wgz.bo.res.WgzAppCancelRegistrationProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppProjectDetailsRes;
import com.ruoyi.wgz.bo.res.WgzAppRegisteredProjectRes;
import com.ruoyi.wgz.bo.res.WgzAppUserDailyRecordRes;
import com.ruoyi.wgz.bo.rests.WgzAppCancelRegistrationProjectDetailsTwo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@ -153,4 +161,27 @@ public class BgtProjectRecruitServiceImpl extends ServicePlusImpl<BgtProjectRecr
return baseMapper.userProjectDetails(id);
}
@Override
public TableDataInfo<WgzAppRegisteredProjectRes> userRegisteredProject(WgzAppRegisteredProjectReq req) {
Long userId = SecurityUtils.getAppUserId();
Page<WgzAppRegisteredProjectReq> pe = new Page<>();
pe.setCurrent(req.getPageNum());
pe.setSize(req.getPageSize());
return PageUtils.buildDataInfo(baseMapper.userRegisteredProject(pe, userId));
}
@Override
public WgzAppCancelRegistrationProjectDetailsRes userCancelRegistrationProjectDetails(Long recruitId) {
//1、获取项目基础信息
WgzAppProjectDetailsRes wgzAppProjectDetailsRes = baseMapper.userProjectDetails(recruitId);
//2、获取当前项目下的成员
List<WgzAppCancelRegistrationProjectDetailsTwo> wgzUser = baseMapper.GetsTheMembersUnderTheCurrentProject(recruitId);
//3、数据组装
WgzAppCancelRegistrationProjectDetailsRes res = new WgzAppCancelRegistrationProjectDetailsRes();
BeanUtils.copyProperties(wgzAppProjectDetailsRes,res);
res.setNumberOfRegistered(wgzUser.size());
res.setUserList(wgzUser);
return res;
}
}