package com.panzhihua.service_community.service.impl;
|
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
|
import com.panzhihua.common.service.user.UserService;
|
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;
|
|
/**
|
* 新增社区
|
*
|
* @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();
|
}
|
|
}
|