package com.panzhihua.service_community.service.impl;
|
|
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;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.ObjectUtils;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @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() {
|
List<ComMngStructBuildTypeVO>comMngStructBuildTypeVOS=new ArrayList<>();
|
List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS = comMngStructBuildTypeDAO.selectList(null);
|
if (!ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
|
ComMngStructBuildTypeVO comMngStructBuildTypeVO=new ComMngStructBuildTypeVO();
|
comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
|
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);
|
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();
|
}
|
}
|