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.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.google.common.collect.Lists;
|
import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.ComActVO;
|
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;
|
|
/**
|
* @author: llming
|
* @description: 街道
|
**/
|
@Service
|
public class ComStreetServiceImpl implements ComStreetService {
|
@Resource
|
private ComActDAO comActDAO;
|
|
@Resource
|
private ComStreetDAO comStreetDAO;
|
|
@Resource
|
private UserService userService;
|
|
@Resource
|
private ComEventMapper comEventMapper;
|
|
/**
|
* 新增社区
|
*
|
* @param comStreetVO
|
* 街道信息
|
* @return 新增结果
|
*/
|
@Override
|
@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::getProvinceCode, comStreetVO.getProvinceCode());
|
param.eq(ComStreetDO::getCityCode, comStreetVO.getCityCode());
|
param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode());
|
Integer integer = comStreetDAO.selectCount(param);
|
if (integer > 0) {
|
return R.fail(500, "街道已经存在");
|
}
|
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("账号已存在");
|
}
|
|
/**
|
* 查询街道
|
*
|
* @param comStreetVO
|
* 街道名
|
* @return 社区集合
|
*/
|
@Override
|
public R listStreet(ComStreetVO comStreetVO) {
|
LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda();
|
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
|
* @return 社区详情
|
*/
|
@Override
|
public R detailStreet(Long streetId) {
|
ComStreetDO comStreetDO = comStreetDAO.selectById(streetId);
|
if (ObjectUtils.isEmpty(comStreetDO)) {
|
return R.fail();
|
}
|
ComStreetVO comStreetVO = new ComStreetVO();
|
BeanUtils.copyProperties(comStreetDO, comStreetVO);
|
comStreetVO.setAdministrativeRegions(comStreetDAO.retrieveRegions(comStreetVO.getAreaCode().toString()));
|
return R.ok(comStreetVO);
|
}
|
|
/**
|
* 分页查询社区
|
*
|
* @param pageComStreetDTO
|
* 查询参数
|
* @return 分页集合
|
*/
|
@Override
|
public R pageStreet(PageComStreetDTO pageComStreetDTO) {
|
Page page = new Page<>();
|
Long pageNum = pageComStreetDTO.getPageNum();
|
Long pageSize = pageComStreetDTO.getPageSize();
|
if (null == pageNum || 0 == pageNum) {
|
pageNum = 1L;
|
}
|
if (null == pageSize || 0 == pageSize) {
|
pageSize = 10L;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
LambdaQueryWrapper<ComStreetDO> userLambdaQueryWrapper = Wrappers.lambdaQuery();
|
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.orderByDesc(ComStreetDO::getCreateAt));
|
return R.ok(doPager);
|
}
|
|
/**
|
* 批量删除街道
|
*
|
* @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();
|
}
|
return R.fail();
|
}
|
|
|
/**
|
* 修改街道信息
|
* @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));
|
}
|
|
}
|