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 | 367 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 367 insertions(+), 0 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 new file mode 100644 index 0000000..fed909f --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java @@ -0,0 +1,367 @@ +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.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 static java.util.Objects.nonNull; + +/** + * @program: springcloud_k8s_panzhihuazhihuishequ + * @description: 志愿者 + * @author: huang.hongfa weixin hhf9596 qq 959656820 + * @create: 2020-12-17 09:23 + **/ +@Service +public class ComMngVolunteerMngServiceImpl implements ComMngVolunteerMngService { + @Resource + private ComMngVolunteerMngDAO comMngVolunteerMngDAO; + @Resource + private ComMngVolunteerOrgTeamMapper comMngVolunteerOrgTeamMapper; + @Resource + private ComMngVolunteerSkillMapper comMngVolunteerSkillMapper; + @Resource + private UserService userService; + + /** + * 增加志愿者 + * + * @param comMngVolunteerMngVO + * 志愿者信息 + * @return 增加结果 + */ + @Override + public R addVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { + String phone = comMngVolunteerMngVO.getPhone(); + 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); + int insert = comMngVolunteerMngDAO.insert(comMngVolunteerMngDO); + if (insert > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 删除志愿者 + * + * @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) { + return R.ok(); + } + return R.fail(); + } + + /** + * 编辑志愿者 + * + * @param comMngVolunteerMngVO + * 编辑内容 + * @return 编辑结果 + */ + @Override + public R putVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO); + int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO); + if (update > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 分页展示志愿者 + * + * @param comMngVolunteerMngVO + * 查询参数 + * @return 分页集合返回 + */ + @Override + public R pageVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) { + Page page = new Page<>(); + Long pageNum = comMngVolunteerMngVO.getPageNum(); + Long pageSize = comMngVolunteerMngVO.getPageSize(); + if (null == pageNum || 0 == pageNum) { + pageNum = 1l; + } + 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 + * 查询参数 + * @return 查询结果 + */ + @Override + public R pageVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) { + Page page = new Page<>(); + Long pageNum = comMngVolunteerMngVO.getPageNum(); + Long pageSize = comMngVolunteerMngVO.getPageSize(); + if (null == pageNum || 0 == pageNum) { + pageNum = 1l; + } + if (null == pageSize || 0 == pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComMngVolunteerMngVO> iPage = comMngVolunteerMngDAO.pageVolunteerExamine(page, comMngVolunteerMngVO); + return R.ok(iPage); + } + + /** + * 志愿者审核详情 + * + * @param id + * 主键 + * @return 详情 + */ + @Override + public R detailVolunteerExamine(Long id) { + ComMngVolunteerMngVO comMngVolunteerMngVO = comMngVolunteerMngDAO.detailVolunteerExamine(id); + // String phone = comMngVolunteerMngVO.getPhone(); + // comMngVolunteerMngVO.setUserId(comMngVolunteerMngDAO.selectUserIdByPhone(phone)); + return R.ok(comMngVolunteerMngVO); + } + + /** + * 志愿者审核 + * + * @param comMngVolunteerMngVO + * 审核操作 + * @return 审核结果 + */ + @Override + public R putVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) { + ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO(); + BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO); + int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO); + if (update > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 删除志愿者审核 + * + * @param comMngVolunteerMngVO + * 主键 + * @return 删除结果 + */ + @Override + public R deleteVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) { + int delete = comMngVolunteerMngDAO.deleteById(comMngVolunteerMngVO.getId()); + if (delete > 0) { + return R.ok(); + } + return R.fail(); + } + + /** + * 用户修改手机号对应的志愿者手机号也要修改 + * + * @param userPhoneVO + * 新旧手机号 + * @return 修改结果 + */ + @Override + public R putVolunteerPhone(UserPhoneVO userPhoneVO) { + 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) { + 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