package com.panzhihua.service_community.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.beans.BeanUtils;
|
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.extension.plugins.pagination.Page;
|
import com.panzhihua.common.exceptions.ServiceException;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
|
import com.panzhihua.common.model.vos.community.ComMngStructBuildTypeVO;
|
import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
|
import com.panzhihua.service_community.dao.ComMngStructBuildTypeDAO;
|
import com.panzhihua.service_community.dao.ComMngStructOtherBuildDAO;
|
import com.panzhihua.service_community.model.dos.ComMngStructBuildTypeDO;
|
import com.panzhihua.service_community.model.dos.ComMngStructOtherBuildDO;
|
import com.panzhihua.service_community.service.ComMngStructOtherBuildService;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: ComMngStructOtherBuildService
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-12-16 15:27
|
**/
|
@Service
|
public class ComMngStructOtherBuildServiceImpl implements ComMngStructOtherBuildService {
|
@Resource
|
private ComMngStructOtherBuildDAO comMngStructOtherBuildDAO;
|
@Resource
|
private ComMngStructBuildTypeDAO comMngStructBuildTypeDAO;
|
|
/**
|
* 新增其他建筑
|
*
|
* @param comMngStructOtherBuildVO
|
* 建筑参数
|
* @return 新增结果
|
*/
|
@Override
|
public R addOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
|
ComMngStructOtherBuildDO comMngStructOtherBuildDO = new ComMngStructOtherBuildDO();
|
BeanUtils.copyProperties(comMngStructOtherBuildVO, comMngStructOtherBuildDO);
|
int insert = comMngStructOtherBuildDAO.insert(comMngStructOtherBuildDO);
|
if (insert > 0) {
|
return R.ok();
|
}
|
return R.fail();
|
}
|
|
/**
|
* 查询所有建筑类型
|
*
|
* @return 类型列表
|
*/
|
@Override
|
public R listBuildType(Long communityId) {
|
List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOS = new ArrayList<>();
|
List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS =
|
comMngStructBuildTypeDAO.selectList(new QueryWrapper<ComMngStructBuildTypeDO>().lambda().eq(ComMngStructBuildTypeDO::getCommunityId,communityId));
|
if (!ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
|
comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
|
ComMngStructBuildTypeVO comMngStructBuildTypeVO = new ComMngStructBuildTypeVO();
|
BeanUtils.copyProperties(comMngStructBuildTypeDO, comMngStructBuildTypeVO);
|
comMngStructBuildTypeVOS.add(comMngStructBuildTypeVO);
|
});
|
}
|
return R.ok(comMngStructBuildTypeVOS);
|
}
|
|
/**
|
* 分页查询 其他建筑
|
*
|
* @param comMngStructOtherBuildVO
|
* 分页查询参数
|
* @return 查询结果
|
*/
|
@Override
|
public R pageOtherBuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
|
Page page = new Page<>();
|
Long pageNum = comMngStructOtherBuildVO.getPageNum();
|
Long pageSize = comMngStructOtherBuildVO.getPageSize();
|
if (null == pageNum || 0 == pageNum) {
|
pageNum = 1l;
|
}
|
if (null == pageSize || 0 == pageSize) {
|
pageSize = 10l;
|
}
|
page.setSize(pageSize);
|
page.setCurrent(pageNum);
|
IPage<ComMngStructOtherBuildVO> iPage =
|
comMngStructOtherBuildDAO.pageOtherBuild(page, comMngStructOtherBuildVO);
|
return R.ok(iPage);
|
}
|
|
/**
|
* 建筑类型
|
*
|
* @param communityId
|
* 社区id
|
* @return 建筑集合
|
*/
|
@Override
|
public R listComMngStructBuildType(Long communityId) {
|
List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS =
|
comMngStructBuildTypeDAO.selectList(new QueryWrapper<ComMngStructBuildTypeDO>().lambda()
|
.eq(ComMngStructBuildTypeDO::getCommunityId, communityId));
|
if (ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
|
return R.fail();
|
}
|
List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOList = new ArrayList<>();
|
comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
|
ComMngStructBuildTypeVO comMngStructBuildTypeVO = new ComMngStructBuildTypeVO();
|
BeanUtils.copyProperties(comMngStructBuildTypeDO, comMngStructBuildTypeVO);
|
comMngStructBuildTypeVOList.add(comMngStructBuildTypeVO);
|
});
|
return R.ok(comMngStructBuildTypeVOList);
|
}
|
|
/**
|
* 增加删除建筑类型
|
*
|
* @param systemmanagementConfigVO
|
* 操作内容
|
* @return 操作结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R putComMngStructBuildType(SystemmanagementConfigVO systemmanagementConfigVO) {
|
Long communityId = systemmanagementConfigVO.getCommunityId();
|
List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOList =
|
systemmanagementConfigVO.getComMngStructBuildTypeVOList();
|
if (ObjectUtils.isEmpty(comMngStructBuildTypeVOList)) {
|
return R.fail("建筑类型不能为空");
|
}
|
List<Long> collect = comMngStructBuildTypeVOList.stream()
|
.map(comMngStructBuildTypeVO -> comMngStructBuildTypeVO.getId()).collect(Collectors.toList());
|
List<Long> buildTypdIds = comMngStructOtherBuildDAO.selectAllBuildTypeIds(communityId);
|
buildTypdIds.forEach(aLong -> {
|
if (!collect.contains(aLong)) {
|
ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(aLong);
|
if (!ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
|
throw new ServiceException(comMngStructBuildTypeDO.getName() + "已经在使用无法删除");
|
}
|
}
|
});
|
comMngStructBuildTypeDAO.delete(new QueryWrapper<ComMngStructBuildTypeDO>().lambda()
|
.eq(ComMngStructBuildTypeDO::getCommunityId, communityId));
|
comMngStructBuildTypeVOList.forEach(comMngStructBuildTypeVO -> {
|
String name = comMngStructBuildTypeVO.getName();
|
if (ObjectUtils.isEmpty(name)) {
|
throw new RuntimeException("建筑类型名称不能为空");
|
}
|
ComMngStructBuildTypeDO comMngStructBuildTypeDO = new ComMngStructBuildTypeDO();
|
comMngStructBuildTypeDO.setCommunityId(communityId);
|
comMngStructBuildTypeDO.setName(name);
|
comMngStructBuildTypeDAO.insert(comMngStructBuildTypeDO);
|
});
|
return R.ok();
|
}
|
|
/**
|
* 其他建筑详情
|
*
|
* @param id
|
* 主键id
|
* @return 建筑内容
|
*/
|
@Override
|
public R detailOtherbuild(Long id) {
|
ComMngStructOtherBuildDO comMngStructOtherBuildDO = comMngStructOtherBuildDAO.selectById(id);
|
if (ObjectUtils.isEmpty(comMngStructOtherBuildDO)) {
|
return R.fail("建筑不存在");
|
}
|
Long typeId = comMngStructOtherBuildDO.getTypeId();
|
ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(typeId);
|
if (ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
|
return R.fail("建筑类型不存在");
|
}
|
ComMngStructOtherBuildVO comMngStructOtherBuildVO = new ComMngStructOtherBuildVO();
|
BeanUtils.copyProperties(comMngStructOtherBuildDO, comMngStructOtherBuildVO);
|
comMngStructOtherBuildVO.setBuileTypeName(comMngStructBuildTypeDO.getName());
|
return R.ok(comMngStructOtherBuildVO);
|
}
|
|
/**
|
* 编辑其他建筑
|
*
|
* @param comMngStructOtherBuildVO
|
* 编辑内容
|
* @return 编辑结果
|
*/
|
@Override
|
public R putOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
|
Long typeId = comMngStructOtherBuildVO.getTypeId();
|
ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(typeId);
|
if (ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
|
return R.fail("建筑类型不存在");
|
}
|
ComMngStructOtherBuildDO comMngStructOtherBuildDO = new ComMngStructOtherBuildDO();
|
BeanUtils.copyProperties(comMngStructOtherBuildVO, comMngStructOtherBuildDO);
|
int update = comMngStructOtherBuildDAO.updateById(comMngStructOtherBuildDO);
|
if (update > 0) {
|
return R.ok("编辑成功过");
|
}
|
return R.fail("编辑失败");
|
}
|
|
/**
|
* 删除其他建筑
|
*
|
* @param id
|
* 主键
|
* @return 删除结果
|
*/
|
@Override
|
public R deleteOtherbuild(Long id) {
|
int delete = comMngStructOtherBuildDAO.deleteById(id);
|
if (delete > 0) {
|
return R.ok();
|
}
|
return R.fail("删除失败");
|
}
|
}
|