From 7bfa6a85ad6a6c537b0f7ddb9f6a8795c8e8c866 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期四, 09 六月 2022 16:44:24 +0800 Subject: [PATCH] 五社&社区企业&人大代表 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 158 insertions(+), 4 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java index b6159c34..ec59ff4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java @@ -1,15 +1,23 @@ package com.panzhihua.service_community.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.model.dtos.community.social.PageProjectDTO; +import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.social.SocialProjectVO; import com.panzhihua.service_community.dao.ComActDAO; +import com.panzhihua.service_community.dao.ComActSocialMemberDao; +import com.panzhihua.service_community.dao.ComActSocialOrgDao; +import com.panzhihua.service_community.dao.ComActSocialProjectSignDAO; +import com.panzhihua.service_community.entity.ComActSocialMember; +import com.panzhihua.service_community.entity.ComActSocialOrg; import com.panzhihua.service_community.entity.ComActSocialProject; import com.panzhihua.service_community.dao.ComActSocialProjectDao; +import com.panzhihua.service_community.entity.ComActSocialProjectSign; import com.panzhihua.service_community.entity.ProjectRelationVO; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.service.ComActSocialProjectService; @@ -18,6 +26,13 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static java.util.Objects.isNull; +import static java.util.Objects.nonNull; /** * 三社联动项目表(ComActSocialProject)表服务实现类 @@ -33,6 +48,13 @@ private ComActSocialProjectDao comActSocialProjectDao; @Resource private ComActDAO comActDAO; + @Resource + private ComActSocialOrgDao comActSocialOrgDao; + @Resource + private ComActSocialProjectSignDAO comActSocialProjectSignDAO; + @Resource + private ComActSocialMemberDao comActSocialMemberDao; + @Override public R pageList(CommonPage commonPage) { if(commonPage.getParamId2()!=null){ @@ -41,15 +63,61 @@ commonPage.setStreetId(comActDO.getStreetId()); } } - return R.ok(comActSocialProjectDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage)); + Integer userType = commonPage.getUserType(); + if (nonNull(userType) && userType.equals(3)) { + ComActSocialOrg comActSocialOrg = comActSocialOrgDao.selectOne(new LambdaQueryWrapper<ComActSocialOrg>() + .eq(ComActSocialOrg::getUserId, commonPage.getUserId())); + if (nonNull(comActSocialOrg)) { + commonPage.setOrgId(comActSocialOrg.getId()); + } + } + if (nonNull(userType) && userType.equals(4)) { + ComActSocialMember socialMember = comActSocialMemberDao.selectOne(new LambdaQueryWrapper<ComActSocialMember>() + .eq(ComActSocialMember::getUserId, commonPage.getUserId())); + if (nonNull(socialMember)) { + commonPage.setOrgId(socialMember.getOrgId()); + } + } + IPage<SocialProjectVO> pageList = comActSocialProjectDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage); + setSignUpStatus(pageList.getRecords()); + return R.ok(pageList); + } + + private void setSignUpStatus(List<SocialProjectVO> projectVOList) { + if (!projectVOList.isEmpty()) { + projectVOList.forEach(e -> { + Integer status = e.getStatus(); + Date signUpEnd = e.getSignUpEnd(); + if (status.equals(2) && nonNull(signUpEnd)) { + e.setSignUpStatus(signUpEnd.compareTo(new Date()) >= 0 ? 1 : 2); + } else if (!status.equals(2)) { + e.setSignUpStatus(3); + } + }); + } } @Override - public R getByApplet(Long id) { + public R getByApplet(Long id, Long userId) { ComActSocialProject comActSocialProject=this.comActSocialProjectDao.selectById(id); comActSocialProject.setViews(comActSocialProject.getViews()+1); comActSocialProjectDao.updateById(comActSocialProject); - return R.ok(comActSocialProjectDao.getByApplet(id)); + SocialProjectVO projectVO = comActSocialProjectDao.getByApplet(id); + if (nonNull(projectVO)) { + ComActSocialOrg socialOrg = comActSocialOrgDao.selectOrgByUserId(userId); + Integer signCount = nonNull(socialOrg) ? comActSocialProjectSignDAO.selectCount(new LambdaQueryWrapper<ComActSocialProjectSign>() + .eq(ComActSocialProjectSign::getProjectId, projectVO.getId()).eq(ComActSocialProjectSign::getOrgId, socialOrg.getId())) : 0; + if(projectVO.getStatus().equals(2) || signCount > 0){ + projectVO.setIsCouldSign(2); + } + else { + projectVO.setIsCouldSign(1); + } + List<SocialProjectVO> list = new ArrayList<>(); + list.add(projectVO); + setSignUpStatus(list); + } + return R.ok(projectVO); } @Override @@ -84,4 +152,90 @@ projectRelationVO.setSocialProjectVOIPage(socialProjectVOIPage); return R.ok(projectRelationVO); } + + /** + * 修改数据 + * + * @param socialProjectVO 实体对象 + * @return 修改结果 + */ + @Override + public R updateProject(SocialProjectVO socialProjectVO) { + Integer status = socialProjectVO.getStatus(); + if (nonNull(status) && status.equals(4)) { + List<ComActSocialProject> unEndProject = this.baseMapper.selectList(new LambdaQueryWrapper<ComActSocialProject>() + .eq(ComActSocialProject::getParentId, socialProjectVO.getId()) + .notIn(ComActSocialProject::getStatus, 4)); + if (!unEndProject.isEmpty()) { + return R.fail("该项目尚有子项目未结束"); + } + } + ComActSocialProject comActSocialProject=new ComActSocialProject(); + BeanUtils.copyProperties(socialProjectVO,comActSocialProject); + int result = this.baseMapper.updateById(comActSocialProject); + if (result > 0) { + return R.ok(); + } + return R.fail("操作失败,请重试"); + } + + /** + * 分页查询项目报名列表 + * @param pageProjectSignListDTO + * @return + */ + @Override + public R pageProjectSignList(PageProjectSignListDTO pageProjectSignListDTO) { + Page page = new Page<>(); + page.setCurrent(pageProjectSignListDTO.getPageNum()); + page.setSize(pageProjectSignListDTO.getPageSize()); + return R.ok(this.baseMapper.pageProjectSignList(page, pageProjectSignListDTO)); + } + + /** + * 项目公开报名 + * @param projectId + * @param userId + * @return + */ + @Override + public R signProject(Long projectId, Long userId) { + ComActSocialProject project = this.baseMapper.selectById(projectId); + if (isNull(project)) { + return R.fail("资源不存在"); + } + if (!project.getStatus().equals(2)) { + return R.fail("项目暂未公示"); + } + ComActSocialOrg socialOrg = comActSocialOrgDao.selectOrgByUserId(userId); + if (isNull(socialOrg)) { + return R.fail("您不是组织联系人,暂无法进行报名"); + } + Integer signCount = comActSocialProjectSignDAO.selectCount(new LambdaQueryWrapper<ComActSocialProjectSign>() + .eq(ComActSocialProjectSign::getProjectId, projectId).eq(ComActSocialProjectSign::getOrgId, socialOrg.getId())); + if (signCount > 0) { + return R.fail("请勿重复报名"); + } + ComActSocialProjectSign socialProjectSign = new ComActSocialProjectSign(); + socialProjectSign.setProjectId(projectId); + socialProjectSign.setOrgId(socialOrg.getId()); + socialProjectSign.setUserId(userId); + int result = comActSocialProjectSignDAO.insert(socialProjectSign); + return result > 0 ? R.ok() : R.fail("操作失败,请重新尝试"); + } + + /** + * 分页查询用户报名的项目 + * @param pageProjectDTO + * @return + */ + @Override + public R pageProjectWhichIsSignedByUser(PageProjectDTO pageProjectDTO) { + Page page = new Page<>(); + page.setCurrent(pageProjectDTO.getPageNum()); + page.setSize(pageProjectDTO.getPageSize()); + IPage<SocialProjectVO> pageList = this.baseMapper.pageProjectWhichIsSignedByUser(page, pageProjectDTO); + setSignUpStatus(pageList.getRecords()); + return R.ok(pageList); + } } -- Gitblit v1.7.1