|  |  |  | 
|---|
|  |  |  | package com.panzhihua.service_community.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.hutool.core.bean.BeanUtil; | 
|---|
|  |  |  | import cn.hutool.core.codec.Base64; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.user.AdministratorsUserVO; | 
|---|
|  |  |  | import com.panzhihua.common.service.user.UserService; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComEventMapper; | 
|---|
|  |  |  | import com.panzhihua.service_community.entity.ComEvent; | 
|---|
|  |  |  | import com.panzhihua.service_community.util.MyAESUtil; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.ObjectUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComStreetVO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComStreetDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComActDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComStreetDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.service.ComStreetService; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.util.ObjectUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author: llming | 
|---|
|  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComStreetDAO comStreetDAO; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserService userService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComEventMapper comEventMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 新增社区 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param comStreetVO 街道信息 | 
|---|
|  |  |  | * @param comStreetVO | 
|---|
|  |  |  | *            街道信息 | 
|---|
|  |  |  | * @return 新增结果 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R addStreet(ComStreetVO comStreetVO) { | 
|---|
|  |  |  | String password = comStreetVO.getPassword(); | 
|---|
|  |  |  | String encode = new BCryptPasswordEncoder().encode(password); | 
|---|
|  |  |  | comStreetVO.setPassword(encode); | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R<ComStreetVO> addStreet(ComStreetVO comStreetVO) { | 
|---|
|  |  |  | ComStreetDO comStreetDO = new ComStreetDO(); | 
|---|
|  |  |  | LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda(); | 
|---|
|  |  |  | param.eq(ComStreetDO::getName, comStreetVO.getName()); | 
|---|
|  |  |  | 
|---|
|  |  |  | param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode()); | 
|---|
|  |  |  | Integer integer = comStreetDAO.selectCount(param); | 
|---|
|  |  |  | if (integer > 0) { | 
|---|
|  |  |  | return R.fail("街道已经存在"); | 
|---|
|  |  |  | return R.fail(500, "街道已经存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetVO, comStreetDO); | 
|---|
|  |  |  | int insert = comStreetDAO.insert(comStreetDO); | 
|---|
|  |  |  | if (insert > 0) { | 
|---|
|  |  |  | ComStreetDO comStreetDO1 = comStreetDAO.selectOne(param); | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetDO1, comStreetVO); | 
|---|
|  |  |  | return R.ok(comStreetVO); | 
|---|
|  |  |  | AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO(); | 
|---|
|  |  |  | administratorsUserVO.setType(3); | 
|---|
|  |  |  | administratorsUserVO.setAccount(comStreetVO.getAccount()); | 
|---|
|  |  |  | administratorsUserVO.setPassword(comStreetVO.getPassword()); | 
|---|
|  |  |  | administratorsUserVO.setSocialType(1); | 
|---|
|  |  |  | administratorsUserVO.setRoleId(777777777L); | 
|---|
|  |  |  | administratorsUserVO.setStreetId(0L); | 
|---|
|  |  |  | administratorsUserVO.setName(comStreetVO.getName()); | 
|---|
|  |  |  | R r=userService.addUserBackstageProperty(administratorsUserVO); | 
|---|
|  |  |  | if(R.isOk(r)){ | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetVO, comStreetDO); | 
|---|
|  |  |  | int insert = comStreetDAO.insert(comStreetDO); | 
|---|
|  |  |  | if (insert > 0) { | 
|---|
|  |  |  | AdministratorsUserVO administratorsUserVO1=new AdministratorsUserVO(); | 
|---|
|  |  |  | administratorsUserVO1.setUserId(Long.parseLong(r.getData().toString())); | 
|---|
|  |  |  | administratorsUserVO1.setStreetId(comStreetDO.getStreetId()); | 
|---|
|  |  |  | userService.updateStreet(administratorsUserVO1); | 
|---|
|  |  |  | ComStreetDO comStreetDO1 = comStreetDAO.selectOne(param); | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetDO1, comStreetVO); | 
|---|
|  |  |  | return R.ok(comStreetVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.fail(500, ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.fail(); | 
|---|
|  |  |  | return R.fail("账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询街道 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param comStreetVO 街道名 | 
|---|
|  |  |  | * @param comStreetVO | 
|---|
|  |  |  | *            街道名 | 
|---|
|  |  |  | * @return 社区集合 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R listStreet(ComStreetVO comStreetVO) { | 
|---|
|  |  |  | List<ComStreetVO> vos = Lists.newArrayList(); | 
|---|
|  |  |  | LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda(); | 
|---|
|  |  |  | param.eq(ComStreetDO::getProvinceCode, comStreetVO.getProvinceCode()); | 
|---|
|  |  |  | param.eq(ComStreetDO::getCityCode, comStreetVO.getCityCode()); | 
|---|
|  |  |  | param.eq(ComStreetDO::getAreaCode, comStreetVO.getCityCode()); | 
|---|
|  |  |  | List<ComStreetDO> ComStreetDOS = comStreetDAO.selectList(param); | 
|---|
|  |  |  | BeanUtils.copyProperties(vos, ComStreetDOS); | 
|---|
|  |  |  | return R.ok(comStreetVO); | 
|---|
|  |  |  | if (comStreetVO.getProvinceCode() != null) { | 
|---|
|  |  |  | param.eq(ComStreetDO::getProvinceCode, comStreetVO.getProvinceCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (comStreetVO.getCityCode() != null) { | 
|---|
|  |  |  | param.eq(ComStreetDO::getCityCode, comStreetVO.getCityCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (comStreetVO.getAreaCode() != null) { | 
|---|
|  |  |  | param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<ComStreetVO> voList = Lists.newArrayList(); | 
|---|
|  |  |  | List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(param); | 
|---|
|  |  |  | comStreetDOS.forEach(dos -> { | 
|---|
|  |  |  | ComStreetVO vo = new ComStreetVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(dos, vo); | 
|---|
|  |  |  | voList.add(vo); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return R.ok(voList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 社区详情 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param streetId 街道id | 
|---|
|  |  |  | * @param streetId | 
|---|
|  |  |  | *            街道id | 
|---|
|  |  |  | * @return 社区详情 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(comStreetDO)) { | 
|---|
|  |  |  | return R.fail(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ComActVO comActVO = new ComActVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetDO, comActVO); | 
|---|
|  |  |  | comActVO.setAreaName(comActDAO.selectAreaName(comActVO.getAreaCode())); | 
|---|
|  |  |  | return R.ok(comActVO); | 
|---|
|  |  |  | ComStreetVO comStreetVO = new ComStreetVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetDO, comStreetVO); | 
|---|
|  |  |  | comStreetVO.setAdministrativeRegions(comStreetDAO.retrieveRegions(comStreetVO.getAreaCode().toString())); | 
|---|
|  |  |  | return R.ok(comStreetVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分页查询社区 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param pageComStreetDTO 查询参数 | 
|---|
|  |  |  | * @param pageComStreetDTO | 
|---|
|  |  |  | *            查询参数 | 
|---|
|  |  |  | * @return 分页集合 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | Long pageNum = pageComStreetDTO.getPageNum(); | 
|---|
|  |  |  | Long pageSize = pageComStreetDTO.getPageSize(); | 
|---|
|  |  |  | if (null == pageNum || 0 == pageNum) { | 
|---|
|  |  |  | pageNum = 1l; | 
|---|
|  |  |  | pageNum = 1L; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null == pageSize || 0 == pageSize) { | 
|---|
|  |  |  | pageSize = 10l; | 
|---|
|  |  |  | pageSize = 10L; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | page.setSize(pageSize); | 
|---|
|  |  |  | page.setCurrent(pageNum); | 
|---|
|  |  |  | LambdaQueryWrapper<ComStreetDO> userLambdaQueryWrapper = Wrappers.lambdaQuery(); | 
|---|
|  |  |  | if (!pageComStreetDTO.getName().isEmpty()) { | 
|---|
|  |  |  | if (pageComStreetDTO.getName() != null) { | 
|---|
|  |  |  | userLambdaQueryWrapper.like(ComStreetDO::getName, pageComStreetDTO.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageComStreetDTO.getAreaCode() != null) { | 
|---|
|  |  |  | userLambdaQueryWrapper.like(ComStreetDO::getAreaCode, pageComStreetDTO.getAreaCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Page userPage = new Page(pageNum, pageSize); | 
|---|
|  |  |  | IPage<ComStreetDO> doPager = comStreetDAO.selectPage(userPage, userLambdaQueryWrapper); | 
|---|
|  |  |  | IPage<ComStreetDO> doPager = | 
|---|
|  |  |  | comStreetDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComStreetDO::getCreateAt)); | 
|---|
|  |  |  | return R.ok(doPager); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 批量删除社区 | 
|---|
|  |  |  | * 批量删除街道 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param streetIds 社区id | 
|---|
|  |  |  | * @param streetIds | 
|---|
|  |  |  | *            社区id | 
|---|
|  |  |  | * @return 删除结果 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R delectStreat(List<Long> streetIds) { | 
|---|
|  |  |  | // 不能删除,已经绑定了社区的街道 | 
|---|
|  |  |  | LambdaQueryWrapper<ComActDO> comActDOParam = | 
|---|
|  |  |  | new QueryWrapper<ComActDO>().lambda().in(ComActDO::getStreetId, streetIds); | 
|---|
|  |  |  | List<ComActDO> comActDOS = comActDAO.selectList(comActDOParam); | 
|---|
|  |  |  | if (comActDOS != null && comActDOS.size() > 0) { | 
|---|
|  |  |  | return R.fail("删除失败,批量删除街道中,街道下有社区无法删除!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int delete = comStreetDAO.deleteBatchIds(streetIds); | 
|---|
|  |  |  | if (delete > 0) { | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改街道信息 | 
|---|
|  |  |  | * @param comStreetVO 街道信息 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R update(ComStreetVO comStreetVO) { | 
|---|
|  |  |  | ComStreetDO comStreetDO=new ComStreetDO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(comStreetVO,comStreetDO ); | 
|---|
|  |  |  | return R.ok(comStreetDAO.updateById(comStreetDO)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 删除街道 | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R remove(Long id) { | 
|---|
|  |  |  | //是否有未结事件 | 
|---|
|  |  |  | List<Long> longs = comActDAO.selectCommunityByStreetId(id); | 
|---|
|  |  |  | List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).in(ComEvent::getRequestUserCommunity, longs)); | 
|---|
|  |  |  | if (comEvents.size()!=0){ | 
|---|
|  |  |  | return R.fail("有未结事件不可删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | comStreetDAO.deleteById(id); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R removeCommunity(Long id) { | 
|---|
|  |  |  | //是否有未结案件 | 
|---|
|  |  |  | List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).eq(ComEvent::getRequestUserCommunity, id)); | 
|---|
|  |  |  | if (comEvents.size()!=0){ | 
|---|
|  |  |  | return R.fail("有未结事件不可删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | comActDAO.deleteById(id); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R repassCommunity(ComActVO comActVO) { | 
|---|
|  |  |  | ComActDO comActDO=new ComActDO(); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | comActDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" )); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | comActDO.setCommunityId(comActVO.getCommunityId()); | 
|---|
|  |  |  | return R.ok(comActDAO.updateById(comActDO)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R repssStreet(ComStreetVO comActVO) { | 
|---|
|  |  |  | ComStreetDO comStreetDO=new ComStreetDO(); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | comStreetDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" )); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | comStreetDO.setStreetId(comActVO.getStreetId()); | 
|---|
|  |  |  | return R.ok(comStreetDAO.updateById(comStreetDO)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|