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