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 | 234 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 178 insertions(+), 56 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 0b30ab7..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,5 +1,26 @@ 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; @@ -7,20 +28,14 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngAppletsVO; import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; -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 java.util.Arrays; -import java.util.List; +import static java.util.Objects.nonNull; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -32,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).in(ComMngVolunteerMngDO::getState, Arrays.asList(new Integer[]{1,2}))); - if (null!=integer&&integer.intValue()>0) { + 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(); @@ -57,14 +83,16 @@ /** * 删除志愿者 * - * @param comMngVolunteerMngVO 手机号 + * @param comMngVolunteerMngVO + * 手机号 * @return 删除结果 */ @Override public R deleteVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(comMngVolunteerMngVO.getId()); - int delete = comMngVolunteerMngDAO.delete(new QueryWrapper<ComMngVolunteerMngDO>().lambda().eq(ComMngVolunteerMngDO::getId, comMngVolunteerMngDO.getId())); - if (delete>0) { + int delete = comMngVolunteerMngDAO.delete(new QueryWrapper<ComMngVolunteerMngDO>().lambda() + .eq(ComMngVolunteerMngDO::getId, comMngVolunteerMngDO.getId())); + if (delete > 0) { return R.ok(); } return R.fail(); @@ -73,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(); @@ -90,7 +119,8 @@ /** * 分页展示志愿者 * - * @param comMngVolunteerMngVO 查询参数 + * @param comMngVolunteerMngVO + * 查询参数 * @return 分页集合返回 */ @Override @@ -98,17 +128,19 @@ 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->{ - record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone())); + iPage.getRecords().forEach(record -> { + if(StringUtils.isNotEmpty(record.getIdCard())){ + record.setAge(IdcardUtil.getAgeByIdCard(record.getIdCard())); + } }); return R.ok(iPage); } @@ -116,7 +148,8 @@ /** * 分页展示志愿者审核 * - * @param comMngVolunteerMngVO 查询参数 + * @param comMngVolunteerMngVO + * 查询参数 * @return 查询结果 */ @Override @@ -124,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); @@ -139,34 +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); - String phone = comMngVolunteerMngVO.getPhone(); - comMngVolunteerMngVO.setUserId(comMngVolunteerMngDAO.selectUserIdByPhone(phone)); + 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(); @@ -175,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(); @@ -190,15 +221,17 @@ /** * 用户修改手机号对应的志愿者手机号也要修改 * - * @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(); @@ -207,7 +240,8 @@ /** * 志愿者详情 * - * @param id 主键 + * @param id + * 主键 * @return 志愿者 */ @Override @@ -216,30 +250,118 @@ if (ObjectUtils.isEmpty(comMngVolunteerMngDO)) { return R.fail("志愿者不存在"); } - ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO=new ComMngVolunteerMngAppletsVO(); - BeanUtils.copyProperties(comMngVolunteerMngDO,comMngVolunteerMngAppletsVO); + ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO = new ComMngVolunteerMngAppletsVO(); + BeanUtils.copyProperties(comMngVolunteerMngDO, comMngVolunteerMngAppletsVO); return R.ok(comMngVolunteerMngAppletsVO); } /** * 社区后台数据看板 * - * @param communityId 社区id - * @param userId 用户id + * @param communityId + * 社区id + * @param userId + * 用户id * @return 人脸采集和志愿者审核集合 */ @Override public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) { - List<TodoEventsVO> todoEventsVOS=comMngVolunteerMngDAO.selectNeedToDo(communityId); + 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); + 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