From b6082fe75b377ac9c177736d98f36ae46e7cdb70 Mon Sep 17 00:00:00 2001 From: 罗yu 元桥 <2376770955@qq.com> Date: 星期三, 28 四月 2021 10:20:55 +0800 Subject: [PATCH] Merge branch 'master' into 'test' --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 141 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java new file mode 100644 index 0000000..bde8b41 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java @@ -0,0 +1,141 @@ +package com.panzhihua.service_community.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComActWorkGuideMaterialVO; +import com.panzhihua.common.model.vos.community.ComActWorkGuideVO; +import com.panzhihua.common.utlis.DifferentLongListUtil; +import com.panzhihua.service_community.dao.ComActWorkGuideDAO; +import com.panzhihua.service_community.dao.ComActWorkGuideMaterialDAO; +import com.panzhihua.service_community.model.dos.ComActWorkGuideDO; +import com.panzhihua.service_community.model.dos.ComActWorkGuideMaterialDO; +import com.panzhihua.service_community.service.ComActWorkGuideService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @auther llming + * @describe 办事指南 + */ +@Service +public class ComActWorkGuideServiceImpl extends ServiceImpl<ComActWorkGuideDAO, ComActWorkGuideDO> implements ComActWorkGuideService { + @Resource + ComActWorkGuideMaterialDAO workGuideMaterialDAO; + + @Override + public R addWorkGuide(ComActWorkGuideVO workGuideVO, Long userId) { + ComActWorkGuideDO comActWorkGuideDO = new ComActWorkGuideDO(); + BeanUtils.copyProperties(workGuideVO, comActWorkGuideDO); + comActWorkGuideDO.setCreateBy(userId); + this.baseMapper.insert(comActWorkGuideDO); + //保存办事指南材料 + workGuideVO.getMaterials().forEach(material -> { + ComActWorkGuideMaterialDO workGuideMaterialDO = new ComActWorkGuideMaterialDO(); + workGuideMaterialDO.setMaterialName(material.getMaterialName()); + workGuideMaterialDO.setWorkGuideId(comActWorkGuideDO.getId()); + workGuideMaterialDAO.insert(workGuideMaterialDO); + }); + return R.ok(); + } + + @Override + public R editWorkGuide(ComActWorkGuideVO workGuideVO, Long userId) { + if (workGuideVO.getId() == 0L) { + return R.fail("Id有误!"); + } + ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideVO.getId()); + if (workGuideDO == null) { + return R.fail("Id有误!"); + } + BeanUtils.copyProperties(workGuideVO, workGuideDO); + workGuideDO.setUpdateBy(userId); + this.baseMapper.updateById(workGuideDO); + if (workGuideVO.getMaterials().size() == 0) {//若编辑材料为null,执行删除操作 + workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideVO.getId())); + } else {//若材料不为空,但是少了数据条数,也要执行删除 + List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideVO.getId())); + //1、筛选vo里面和db里,需要删除的材料数据 + List<Long> voMaterialIds = workGuideVO.getMaterials().stream() + .filter(materialVo -> materialVo.getId() != null) + .map(ComActWorkGuideMaterialVO::getId) + .collect(Collectors.toList()); + List<Long> deleteMaterialIds = workGuideMaterialDOS.stream() + .filter(workGuideMaterialDO -> !voMaterialIds.contains(workGuideMaterialDO.getId())) + .map(ComActWorkGuideMaterialDO::getId) + .collect(Collectors.toList()); + if (deleteMaterialIds.size() != 0) { + workGuideMaterialDAO.deleteBatchIds(deleteMaterialIds); + } + workGuideVO.getMaterials().forEach(materialsVO -> { + if (materialsVO.getId() != null && materialsVO.getId() != 0L) { + ComActWorkGuideMaterialDO workGuideMaterialDO1 = workGuideMaterialDOS.stream().filter(workGuideMaterialDO -> workGuideMaterialDO.getId() + .equals(materialsVO.getId())).findFirst().orElse(null); + if (workGuideMaterialDO1 != null) {//2、如果db有,执行编辑 + workGuideMaterialDO1.setMaterialName(materialsVO.getMaterialName()); + workGuideMaterialDAO.updateById(workGuideMaterialDO1); + } + } else {//3、如果db没有,执行新增 + ComActWorkGuideMaterialDO newWorkGuideMaterialDO = new ComActWorkGuideMaterialDO(); + newWorkGuideMaterialDO.setMaterialName(materialsVO.getMaterialName()); + newWorkGuideMaterialDO.setWorkGuideId(workGuideDO.getId()); + workGuideMaterialDAO.insert(newWorkGuideMaterialDO); + } + }); + } + return R.ok(); + } + + @Override + public R detailWorkGuide(Long workGuideId) { + ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideId); + if (workGuideDO == null) { + return R.fail("Id有误!"); + } + ComActWorkGuideVO vo = new ComActWorkGuideVO(); + BeanUtils.copyProperties(workGuideDO, vo); + List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); + workGuideMaterialDOS.forEach(workGuideMaterialDO -> { + ComActWorkGuideMaterialVO workGuideMaterialVO = new ComActWorkGuideMaterialVO(); + workGuideMaterialVO.setId(workGuideMaterialDO.getId()); + workGuideMaterialVO.setMaterialName(workGuideMaterialDO.getMaterialName()); + vo.getMaterials().add(workGuideMaterialVO); + }); + return R.ok(vo); + } + + @Override + public R pageWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO) { + Page page = new Page<>(); + Long pageNum = pageActWorkGuideDTO.getPageNum(); + Long pageSize = pageActWorkGuideDTO.getPageSize(); + if (null == pageNum || 0 == pageNum) { + pageNum = 1l; + } + if (null == pageSize || 0 == pageSize) { + pageSize = 10l; + } + page.setSize(pageSize); + page.setCurrent(pageNum); + IPage<ComActWorkGuideVO> iPage = this.baseMapper.pageWorkGuide(page, pageActWorkGuideDTO); + return R.ok(iPage); + } + + @Override + public R delectWorkGuide(Long workGuideId) { + this.baseMapper.deleteById(workGuideId); + workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); + return R.ok(); + } +} -- Gitblit v1.7.1