| | |
| | | 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.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; |
| | |
| | | public class ComMngVolunteerMngServiceImpl implements ComMngVolunteerMngService { |
| | | @Resource |
| | | private ComMngVolunteerMngDAO comMngVolunteerMngDAO; |
| | | @Resource |
| | | private ComMngVolunteerOrgTeamMapper comMngVolunteerOrgTeamMapper; |
| | | @Resource |
| | | private ComMngVolunteerSkillMapper comMngVolunteerSkillMapper; |
| | | |
| | | /** |
| | | * 增加志愿者 |
| | |
| | | page.setCurrent(pageNum); |
| | | IPage<ComMngVolunteerMngVO> iPage = comMngVolunteerMngDAO.pageVolunteer(page, comMngVolunteerMngVO); |
| | | iPage.getRecords().forEach(record -> { |
| | | record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone())); |
| | | if(StringUtils.isNotEmpty(record.getIdCard())){ |
| | | record.setAge(IdcardUtil.getAgeByIdCard(record.getIdCard())); |
| | | } |
| | | }); |
| | | return R.ok(iPage); |
| | | } |
| | |
| | | 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,orgVo.getId())); |
| | | 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(orgVo.getId()); |
| | | comMngVolunteerMngDO.setTeamId(teamVo.getId()); |
| | | comMngVolunteerMngDO.setSkillId(skillVo.getId()); |
| | | 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(orgVo.getId()); |
| | | comMngVolunteerMngDO.setTeamId(teamVo.getId()); |
| | | comMngVolunteerMngDO.setSkillId(skillVo.getId()); |
| | | comMngVolunteerMngDO.setCreateAt(nowDate); |
| | | //查询用户id,如果存在则需要绑定 |
| | | Long volunteerUserId = comMngVolunteerMngDAO.selectUserIdByIdCard(excel.getIdCard()); |
| | | if(volunteerUserId != null){ |
| | | comMngVolunteerMngDO.setSubmitUserId(volunteerUserId); |
| | | } |
| | | comMngVolunteerMngDAO.insert(comMngVolunteerMngDO); |
| | | } |
| | | } |
| | | if(errorList.size() > 0){ |
| | | return R.fail(errorList); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | } |