package com.panzhihua.service_community.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.enums.PopulCultureLevelEnum; import com.panzhihua.common.enums.PopulMarriageEnum; import com.panzhihua.common.enums.PopulPoliticalOutlookEnum; import com.panzhihua.common.enums.PopulRelationEnum; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.partybuilding.ComPbMemberVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.ComHouseMemberVo; import com.panzhihua.common.model.vos.user.ComMngHouseVo; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.AgeUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.entity.ComActCommittee; import com.panzhihua.service_community.entity.ComActFourMember; import com.panzhihua.service_community.model.dos.ComMngBuildingDO; import com.panzhihua.service_community.model.dos.ComMngPopulationDO; import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO; import com.panzhihua.service_community.model.dos.ComPbMemberDO; import com.panzhihua.service_community.service.ComActFourMemberService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * (ComActFourMember)表服务实现类 * * @author makejava * @since 2021-09-23 10:13:31 */ @Slf4j @Service public class ComActFourMemberServiceImpl extends ServiceImpl implements ComActFourMemberService { @Resource private ComActFourMemberDao comActFourMemberDao; @Resource private ComMngBuildingDAO comMngBuildingDAO; @Resource private UserService userService; @Resource private ComMngPopulationDAO comMngPopulationDAO; @Resource private ComPbMemberDAO comPbMemberDAO; @Resource private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO; @Resource private ComMngPopulationHouseDAO comMngPopulationHouseDAO; @Override public R pageList(CommonPage commonPage) { IPage comActFourMemberVOIPage=comActFourMemberDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage); if(!comActFourMemberVOIPage.getRecords().isEmpty()){ comActFourMemberVOIPage.getRecords().forEach(comActFourMemberVO -> { if(comActFourMemberVO.getJurisdictionContent()!=null){ comActFourMemberVO.setJurisdictionContentList(JSON.parseArray(comActFourMemberVO.getJurisdictionContent(),String.class)); } }); } return R.ok(comActFourMemberVOIPage); } @Override public R insert(ComActFourMemberVO comActFourMemberVO) { if(comActFourMemberVO!=null&&comActFourMemberVO.getJurisdiction()!=null){ if(comActFourMemberDao.selectCount(new QueryWrapper().lambda() .eq(ComActFourMember::getIdCard,comActFourMemberVO.getIdCard()) .eq(ComActFourMember::getCommunityId, comActFourMemberVO.getCommunityId()))>0){ return R.fail("身份证号重复"); } ComActFourMember comActFourMember=new ComActFourMember(); List jurisdictionList=new ArrayList<>(); List jurisdictionList1=comMngBuildingDAO.find(comActFourMemberVO.getJurisdiction()); List jurisdictionList2=comMngBuildingDAO.findByVillage(comActFourMemberVO.getJurisdiction()); if(!jurisdictionList1.isEmpty()){ jurisdictionList.addAll(jurisdictionList1); } if(!jurisdictionList2.isEmpty()){ jurisdictionList.addAll(jurisdictionList2); } if(!jurisdictionList.isEmpty()&&jurisdictionList.size()==jurisdictionList.stream().distinct().collect(Collectors.toList()).size()){ AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO); administratorsUserVO.setType(3); R r=userService.addUserBackstageProperty(administratorsUserVO); if(R.isOk(r)){ comActFourMemberVO.setUserId(Long.parseLong(r.getData().toString())); comActFourMemberVO.setCreateTime(DateUtil.date()); BeanUtils.copyProperties(comActFourMemberVO,comActFourMember); comActFourMember.setJurisdictionContent(JSON.toJSONString(jurisdictionList)); this.comActFourMemberDao.insert(comActFourMember); return R.ok(); } return R.fail("手机号或账户已存在"); } return R.fail("绑定管辖区域不能为空或重复"); } return R.fail(); } @Override public R update(ComActFourMemberVO comActFourMemberVO) { if(comActFourMemberVO!=null){ if(comActFourMemberVO.getIds()!=null){ for(Integer id:comActFourMemberVO.getIds()){ AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); ComActFourMember comActFourMemberBase=this.comActFourMemberDao.selectById(id); if(comActFourMemberBase!=null){ comActFourMemberVO.setUserId(comActFourMemberBase.getUserId()); BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO); userService.putUserBackstage(administratorsUserVO); } } return R.ok(); } else { ComActFourMember comActFourMember=new ComActFourMember(); ComActFourMember comActFourMemberBase=this.comActFourMemberDao.selectById(comActFourMemberVO.getId()); if(comActFourMemberBase!=null){ comActFourMember.setId(comActFourMemberBase.getId()); comActFourMember.setUserId(comActFourMemberBase.getUserId()); } if(comActFourMemberVO.getJurisdiction()!=null){ List jurisdictionList=comMngBuildingDAO.find(comActFourMemberVO.getJurisdiction()); if(!jurisdictionList.isEmpty()&&jurisdictionList.size()==jurisdictionList.stream().distinct().collect(Collectors.toList()).size()){ comActFourMember.setJurisdictionContent(JSON.toJSONString(jurisdictionList)); } else { return R.fail("绑定管辖区域不能为空或重复"); } } AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO); R r=userService.putUserBackstage(administratorsUserVO); if(R.isOk(r)){ BeanUtils.copyProperties(comActFourMemberVO,comActFourMember); this.comActFourMemberDao.updateById(comActFourMember); return R.ok(); } return R.fail("修改失败"); } } return R.fail(); } @Override public R delete(ComActFourMemberVO comActFourMemberVO) { if(comActFourMemberVO.getIds()!=null){ for(Integer id: comActFourMemberVO.getIds()){ ComActFourMember comActFourMember=comActFourMemberDao.selectById(id); if(comActFourMember!=null){ if(comActFourMember.getUserId()!=null){ AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); administratorsUserVO.setUserId(comActFourMember.getUserId()); administratorsUserVO.setCommunityId(comActFourMember.getCommunityId()); userService.deleteUserBackstage(administratorsUserVO); this.comActFourMemberDao.deleteById(id); } } } return R.ok(); } else { ComActFourMember comActFourMember=comActFourMemberDao.selectById(comActFourMemberVO.getId()); if(comActFourMember!=null){ if(comActFourMember.getUserId()!=null){ AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); administratorsUserVO.setUserId(comActFourMember.getUserId()); administratorsUserVO.setCommunityId(comActFourMember.getCommunityId()); userService.deleteUserBackstage(administratorsUserVO); this.comActFourMemberDao.deleteById(comActFourMemberVO.getId()); return R.ok(); } } return R.fail("用户账号错误"); } } @Override public R get(Long id) { return R.ok(comActFourMemberDao.getById(id)); } @Override public R selectByMember(CommonPage commonPage) { IPage comMngPopulationDOIPage=this.comMngPopulationDAO.query(new Page(commonPage.getPage(),commonPage.getSize()),commonPage); if (!comMngPopulationDOIPage.getRecords().isEmpty()) { comMngPopulationDOIPage.getRecords().forEach(populDO -> { if (StringUtils.isNotEmpty(populDO.getBirthday())) { populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday())); } }); } return R.ok(comMngPopulationDOIPage); } @Override public R selectById(Long id) { FourMemberDetailVO fourMemberDetailVO=new FourMemberDetailVO(); ComMngPopulationDO comMngPopulationDO = comMngPopulationDAO.selectById(id); if (ObjectUtils.isEmpty(comMngPopulationDO)) { return R.fail("用户信息不存在"); } // if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄 // comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationDO.getBirthday())); // } ComMngPopulationNoSecretVO comMngPopulationVO = new ComMngPopulationNoSecretVO(); BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO); // 查询户主关系信息 // List comMngFamilyInfoVOS = // populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId()); // if (!comMngFamilyInfoVOS.isEmpty()) { // comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); // } // 查询户主关系信息 List comMngFamilyInfoVOS = comMngPopulationDAO.listHouseMermberByPopuId(comMngPopulationDO.getId()); if (!comMngFamilyInfoVOS.isEmpty()) { for (ComHouseMemberVo comHouseMemberVo : comMngFamilyInfoVOS) { comHouseMemberVo.setAge(AgeUtils.getAgeFromBirthTimes(comHouseMemberVo.getBirthDay())); } comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS); } // 设置户主关系 List comMngPopulationHouseUserDOS = comMngPopulationHouseUserDAO.selectList((new QueryWrapper().lambda() .eq(ComMngPopulationHouseUserDO::getPopulId, id))); if (!comMngPopulationHouseUserDOS.isEmpty()) { comMngPopulationVO .setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation()); } // 设置年龄 if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) { comMngPopulationVO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationVO.getBirthday())); } // 查询当前用户房屋信息 List houseList = comMngPopulationHouseDAO.getPopulHouseListByPopulId(id); if (!houseList.isEmpty()) { houseList.forEach(house -> { }); comMngPopulationVO.setHouseList(houseList); } if(comMngPopulationVO!=null&&StringUtils.isNotEmpty(comMngPopulationVO.getCardNoStr())){ fourMemberDetailVO.setComMngPopulationVO(comMngPopulationVO); ComPbMemberVO comPbMemberDO=comPbMemberDAO.selectById(comMngPopulationVO.getCardNoStr()); if(comPbMemberDO!=null){ fourMemberDetailVO.setPartyBuildingMemberVO(comPbMemberDO); } } return R.ok(fourMemberDetailVO); } }