huanghongfa
2021-07-22 02f18587bd8860b305e2c688e20465be166bb48c
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructOtherBuildServiceImpl.java
@@ -1,8 +1,12 @@
package com.panzhihua.service_community.service.impl;
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;
@@ -12,11 +16,13 @@
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
@@ -56,10 +62,10 @@
    @Override
    public R listBuildType() {
        List<ComMngStructBuildTypeVO>comMngStructBuildTypeVOS=new ArrayList<>();
        List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS = comMngStructBuildTypeDAO.selectList(null);
        List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS = comMngStructBuildTypeDAO.selectList(new LambdaQueryWrapper<>());
        if (!ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
            ComMngStructBuildTypeVO comMngStructBuildTypeVO=new ComMngStructBuildTypeVO();
            comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
                ComMngStructBuildTypeVO comMngStructBuildTypeVO=new ComMngStructBuildTypeVO();
                BeanUtils.copyProperties(comMngStructBuildTypeDO,comMngStructBuildTypeVO);
                comMngStructBuildTypeVOS.add(comMngStructBuildTypeVO);
            });
@@ -89,4 +95,123 @@
        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("删除失败");
    }
}