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<ComActFourMemberDao, ComActFourMember> 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<ComActFourMemberVO> 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<ComActFourMember>().lambda()
|
.eq(ComActFourMember::getIdCard,comActFourMemberVO.getIdCard())
|
.eq(ComActFourMember::getCommunityId, comActFourMemberVO.getCommunityId()))>0){
|
return R.fail("身份证号重复");
|
}
|
ComActFourMember comActFourMember=new ComActFourMember();
|
List<String> jurisdictionList=new ArrayList<>();
|
List<String> jurisdictionList1=comMngBuildingDAO.find(comActFourMemberVO.getJurisdiction());
|
List<String> 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<String> 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<ComMngPopulationNoSecretVO> comMngPopulationDOIPage=this.comMngPopulationDAO.query(new Page<ComMngPopulationDO>(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<ComHouseMemberVo> comMngFamilyInfoVOS =
|
// populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId());
|
// if (!comMngFamilyInfoVOS.isEmpty()) {
|
// comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
|
// }
|
// 查询户主关系信息
|
List<ComHouseMemberVo> comMngFamilyInfoVOS = comMngPopulationDAO.listHouseMermberByPopuId(comMngPopulationDO.getId());
|
if (!comMngFamilyInfoVOS.isEmpty()) {
|
for (ComHouseMemberVo comHouseMemberVo : comMngFamilyInfoVOS) {
|
comHouseMemberVo.setAge(AgeUtils.getAgeFromBirthTimes(comHouseMemberVo.getBirthDay()));
|
}
|
comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
|
}
|
// 设置户主关系
|
List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS =
|
comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().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<ComMngHouseVo> 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);
|
}
|
}
|