From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java | 252 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 210 insertions(+), 42 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java index e680187..fed909f 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java @@ -1,21 +1,41 @@ package com.panzhihua.service_community.service.impl; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import cn.hutool.core.util.IdcardUtil; +import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerErrorExcelVO; +import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO; +import com.panzhihua.common.service.user.UserService; +import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.service_community.dao.ComMngVolunteerOrgTeamMapper; +import com.panzhihua.service_community.dao.ComMngVolunteerSkillMapper; +import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam; +import com.panzhihua.service_community.model.dos.ComMngVolunteerSkill; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.community.ComActVO; +import com.panzhihua.common.model.vos.community.ComMngVolunteerMngAppletsVO; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; +import com.panzhihua.common.model.vos.community.TodoEventsVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; +import com.panzhihua.common.utlis.SensitiveUtil; import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO; import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO; import com.panzhihua.service_community.service.ComMngVolunteerMngService; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.ObjectUtils; -import javax.annotation.Resource; +import static java.util.Objects.nonNull; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -27,23 +47,34 @@ public class ComMngVolunteerMngServiceImpl implements ComMngVolunteerMngService { @Resource private ComMngVolunteerMngDAO comMngVolunteerMngDAO; + @Resource + private ComMngVolunteerOrgTeamMapper comMngVolunteerOrgTeamMapper; + @Resource + private ComMngVolunteerSkillMapper comMngVolunteerSkillMapper; + @Resource + private UserService userService; + /** * 增加志愿者 * - * @param comMngVolunteerMngVO 志愿者信息 + * @param comMngVolunteerMngVO + * 志愿者信息 * @return 增加结果 */ @Override public R addVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { String phone = comMngVolunteerMngVO.getPhone(); - Integer integer = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda().eq(ComMngVolunteerMngDO::getPhone, phone)); - if (null!=integer&&integer.intValue()>0) { - return R.fail("手机号已经存在"); + String idCard = comMngVolunteerMngVO.getIdCard(); + Integer integer = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda() + .and(wrapper -> wrapper.eq(ComMngVolunteerMngDO::getPhone, phone).or().eq(ComMngVolunteerMngDO::getIdCard, idCard)) + .in(ComMngVolunteerMngDO::getState, Arrays.asList(1, 2))); + if (null != integer && integer.intValue() > 0) { + return R.fail("请勿重复申请"); } - ComMngVolunteerMngDO comMngVolunteerMngDO=new ComMngVolunteerMngDO(); - BeanUtils.copyProperties(comMngVolunteerMngVO,comMngVolunteerMngDO); + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO); int insert = comMngVolunteerMngDAO.insert(comMngVolunteerMngDO); - if (insert>0) { + if (insert > 0) { return R.ok(); } return R.fail(); @@ -52,13 +83,16 @@ /** * 删除志愿者 * - * @param comMngVolunteerMngVO 手机号 + * @param comMngVolunteerMngVO + * 手机号 * @return 删除结果 */ @Override public R deleteVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { - int delete = comMngVolunteerMngDAO.delete(new QueryWrapper<ComMngVolunteerMngDO>().lambda().eq(ComMngVolunteerMngDO::getPhone, comMngVolunteerMngVO.getPhone())); - if (delete>0) { + ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(comMngVolunteerMngVO.getId()); + int delete = comMngVolunteerMngDAO.delete(new QueryWrapper<ComMngVolunteerMngDO>().lambda() + .eq(ComMngVolunteerMngDO::getId, comMngVolunteerMngDO.getId())); + if (delete > 0) { return R.ok(); } return R.fail(); @@ -67,15 +101,16 @@ /** * 编辑志愿者 * - * @param comMngVolunteerMngVO 编辑内容 + * @param comMngVolunteerMngVO + * 编辑内容 * @return 编辑结果 */ @Override public R putVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { - ComMngVolunteerMngDO comMngVolunteerMngDO=new ComMngVolunteerMngDO(); - BeanUtils.copyProperties(comMngVolunteerMngVO,comMngVolunteerMngDO); + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO); int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO); - if (update>0) { + if (update > 0) { return R.ok(); } return R.fail(); @@ -84,7 +119,8 @@ /** * 分页展示志愿者 * - * @param comMngVolunteerMngVO 查询参数 + * @param comMngVolunteerMngVO + * 查询参数 * @return 分页集合返回 */ @Override @@ -92,22 +128,28 @@ Page page = new Page<>(); Long pageNum = comMngVolunteerMngVO.getPageNum(); Long pageSize = comMngVolunteerMngVO.getPageSize(); - if (null==pageNum||0==pageNum) { + if (null == pageNum || 0 == pageNum) { pageNum = 1l; } - if (null==pageSize||0==pageSize) { + if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage<ComMngVolunteerMngVO> iPage = comMngVolunteerMngDAO.pageVolunteer(page, comMngVolunteerMngVO); + iPage.getRecords().forEach(record -> { + if(StringUtils.isNotEmpty(record.getIdCard())){ + record.setAge(IdcardUtil.getAgeByIdCard(record.getIdCard())); + } + }); return R.ok(iPage); } /** * 分页展示志愿者审核 * - * @param comMngVolunteerMngVO 查询参数 + * @param comMngVolunteerMngVO + * 查询参数 * @return 查询结果 */ @Override @@ -115,10 +157,10 @@ Page page = new Page<>(); Long pageNum = comMngVolunteerMngVO.getPageNum(); Long pageSize = comMngVolunteerMngVO.getPageSize(); - if (null==pageNum||0==pageNum) { + if (null == pageNum || 0 == pageNum) { pageNum = 1l; } - if (null==pageSize||0==pageSize) { + if (null == pageSize || 0 == pageSize) { pageSize = 10l; } page.setSize(pageSize); @@ -130,32 +172,31 @@ /** * 志愿者审核详情 * - * @param id 主键 + * @param id + * 主键 * @return 详情 */ @Override public R detailVolunteerExamine(Long id) { - ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(id); - if (ObjectUtils.isEmpty(comMngVolunteerMngDO)) { - return R.fail("审核不存在"); - } - ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO(); - BeanUtils.copyProperties(comMngVolunteerMngDO,comMngVolunteerMngVO); + ComMngVolunteerMngVO comMngVolunteerMngVO = comMngVolunteerMngDAO.detailVolunteerExamine(id); + // String phone = comMngVolunteerMngVO.getPhone(); + // comMngVolunteerMngVO.setUserId(comMngVolunteerMngDAO.selectUserIdByPhone(phone)); return R.ok(comMngVolunteerMngVO); } /** * 志愿者审核 * - * @param comMngVolunteerMngVO 审核操作 + * @param comMngVolunteerMngVO + * 审核操作 * @return 审核结果 */ @Override public R putVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) { - ComMngVolunteerMngDO comMngVolunteerMngDO=new ComMngVolunteerMngDO(); - BeanUtils.copyProperties(comMngVolunteerMngVO,comMngVolunteerMngDO); + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO); int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO); - if (update>0) { + if (update > 0) { return R.ok(); } return R.fail(); @@ -164,13 +205,14 @@ /** * 删除志愿者审核 * - * @param comMngVolunteerMngVO 主键 + * @param comMngVolunteerMngVO + * 主键 * @return 删除结果 */ @Override public R deleteVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) { int delete = comMngVolunteerMngDAO.deleteById(comMngVolunteerMngVO.getId()); - if (delete>0) { + if (delete > 0) { return R.ok(); } return R.fail(); @@ -179,21 +221,147 @@ /** * 用户修改手机号对应的志愿者手机号也要修改 * - * @param userPhoneVO 新旧手机号 + * @param userPhoneVO + * 新旧手机号 * @return 修改结果 */ @Override public R putVolunteerPhone(UserPhoneVO userPhoneVO) { - ComMngVolunteerMngDO comMngVolunteerMngDO=new ComMngVolunteerMngDO(); + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); comMngVolunteerMngDO.setPhone(userPhoneVO.getNewPhone()); - int update = comMngVolunteerMngDAO.update(comMngVolunteerMngDO, new UpdateWrapper<ComMngVolunteerMngDO>().lambda().eq(ComMngVolunteerMngDO::getPhone, userPhoneVO.getOldPhone())); - if (update>0) { + int update = comMngVolunteerMngDAO.update(comMngVolunteerMngDO, new UpdateWrapper<ComMngVolunteerMngDO>() + .lambda().eq(ComMngVolunteerMngDO::getPhone, userPhoneVO.getOldPhone())); + if (update > 0) { return R.ok(); } return R.fail(); } + /** + * 志愿者详情 + * + * @param id + * 主键 + * @return 志愿者 + */ + @Override + public R detailVolunteer(Long id) { + ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(id); + if (ObjectUtils.isEmpty(comMngVolunteerMngDO)) { + return R.fail("志愿者不存在"); + } + ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO = new ComMngVolunteerMngAppletsVO(); + BeanUtils.copyProperties(comMngVolunteerMngDO, comMngVolunteerMngAppletsVO); + return R.ok(comMngVolunteerMngAppletsVO); + } + /** + * 社区后台数据看板 + * + * @param communityId + * 社区id + * @param userId + * 用户id + * @return 人脸采集和志愿者审核集合 + */ + @Override + public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) { + List<TodoEventsVO> todoEventsVOS = comMngVolunteerMngDAO.selectNeedToDo(communityId); + return todoEventsVOS; + } + @Override + public R getVolunteerById(Long id) { + ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(id); + ComMngVolunteerMngAppletsVO vo = new ComMngVolunteerMngAppletsVO(); + BeanUtils.copyProperties(comMngVolunteerMngDO, vo); + return R.ok(vo); + } + /** + * 志愿者导入 + * + * @param list 志愿者数据列表 + * @param communityId 社区id + * @param userId 用户id + * @return 导入结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R importVolunteerAdmin(List<ComMngVolunteerExcelVO> list, Long communityId, Long userId){ + //错误集合 + List<ComMngVolunteerErrorExcelVO> errorList = new ArrayList<>(); + for (ComMngVolunteerExcelVO excel : list) { + //查询组织 + ComMngVolunteerOrgTeam orgVo = comMngVolunteerOrgTeamMapper.selectOne(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda() + .eq(ComMngVolunteerOrgTeam::getName,excel.getOrgName()).eq(ComMngVolunteerOrgTeam::getCommunityId,communityId) + .eq(ComMngVolunteerOrgTeam::getParentId,0)); +// if(orgVo == null){ +// ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO(); +// BeanUtils.copyProperties(excel,errorExcelVO); +// errorExcelVO.setError("该志愿者组织不存在,请先通过后台添加该志愿者组织"); +// errorList.add(errorExcelVO); +// continue; +// } + //查询队伍 + ComMngVolunteerOrgTeam teamVo = comMngVolunteerOrgTeamMapper.selectOne(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda() + .eq(ComMngVolunteerOrgTeam::getName,excel.getTeamName()).eq(ComMngVolunteerOrgTeam::getCommunityId,communityId) + .eq(ComMngVolunteerOrgTeam::getParentId, nonNull(orgVo) ? orgVo.getId() : null)); +// if(teamVo == null){ +// ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO(); +// BeanUtils.copyProperties(excel,errorExcelVO); +// errorExcelVO.setError("该志愿者队伍不存在,请先通过后台添加该志愿者队伍"); +// errorList.add(errorExcelVO); +// continue; +// } + //查询技能 + ComMngVolunteerSkill skillVo = comMngVolunteerSkillMapper.selectOne(new QueryWrapper<ComMngVolunteerSkill>().lambda() + .eq(ComMngVolunteerSkill::getName,excel.getSkillName()).eq(ComMngVolunteerSkill::getCommunityId,communityId)); +// if(skillVo == null){ +// ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO(); +// BeanUtils.copyProperties(excel,errorExcelVO); +// errorExcelVO.setError("该志愿者技能不存在,请先通过后台添加该志愿者技能"); +// errorList.add(errorExcelVO); +// continue; +// } + Date nowDate = new Date(); + ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectOne(new QueryWrapper<ComMngVolunteerMngDO>().lambda() + .eq(ComMngVolunteerMngDO::getIdCard,excel.getIdCard()).in(ComMngVolunteerMngDO::getState,1,2)); + if(comMngVolunteerMngDO != null){ + if(comMngVolunteerMngDO.getState().equals(1)){ + BeanUtils.copyProperties(excel,comMngVolunteerMngDO); + comMngVolunteerMngDO.setState(2); + comMngVolunteerMngDO.setOrgId(nonNull(orgVo) ? orgVo.getId() : null); + comMngVolunteerMngDO.setTeamId(nonNull(teamVo) ? teamVo.getId() : null); + comMngVolunteerMngDO.setSkillId(nonNull(skillVo) ? skillVo.getId() : null); + comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO); + }else{ + ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO(); + BeanUtils.copyProperties(excel,errorExcelVO); + errorExcelVO.setError("该志愿者已存在,不可重复添加"); + errorList.add(errorExcelVO); + } + }else{ + comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(excel,comMngVolunteerMngDO); + comMngVolunteerMngDO.setCommunityId(communityId); + comMngVolunteerMngDO.setState(2); + comMngVolunteerMngDO.setOrgId(nonNull(orgVo) ? orgVo.getId() : null); + comMngVolunteerMngDO.setTeamId(nonNull(teamVo) ? teamVo.getId() : null); + comMngVolunteerMngDO.setSkillId(nonNull(skillVo) ? skillVo.getId() : null); + comMngVolunteerMngDO.setCreateAt(nowDate); + //查询用户id,如果存在则需要绑定 + Long volunteerUserId = comMngVolunteerMngDAO.selectUserIdByIdCard(excel.getIdCard()); + if(volunteerUserId != null){ + comMngVolunteerMngDO.setSubmitUserId(volunteerUserId); + } + comMngVolunteerMngDAO.insert(comMngVolunteerMngDO); + userService.putUserIsVolunteer(comMngVolunteerMngDO.getPhone(), 1); + } + } + if(errorList.size() > 0){ + return R.fail(errorList); + } + return R.ok(); + } } -- Gitblit v1.7.1