|  |  |  | 
|---|
|  |  |  | 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.ComActWorkGuideDTO; | 
|---|
|  |  |  | 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.ComActDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActWorkGuideDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActWorkGuideMaterialDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComActDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComActWorkGuideDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComActWorkGuideMaterialDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.service.ComActWorkGuideService; | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | public class ComActWorkGuideServiceImpl extends ServiceImpl<ComActWorkGuideDAO, ComActWorkGuideDO> implements ComActWorkGuideService { | 
|---|
|  |  |  | static String AK = "W3x8DhCWKc2UFIwYgclpRBdL6BeGLLQt"; // 百度地图密钥 | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | ComActWorkGuideMaterialDAO workGuideMaterialDAO; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | ComActDAO comActDAO; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R addWorkGuide(ComActWorkGuideVO workGuideVO, Long userId) { | 
|---|
|  |  |  | public R addWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId) { | 
|---|
|  |  |  | ComActWorkGuideDO comActWorkGuideDO = new ComActWorkGuideDO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(workGuideVO, comActWorkGuideDO); | 
|---|
|  |  |  | BeanUtils.copyProperties(workGuideDTO, comActWorkGuideDO); | 
|---|
|  |  |  | comActWorkGuideDO.setCreateBy(userId); | 
|---|
|  |  |  | this.baseMapper.insert(comActWorkGuideDO); | 
|---|
|  |  |  | //保存办事指南材料 | 
|---|
|  |  |  | workGuideVO.getMaterials().forEach(material -> { | 
|---|
|  |  |  | workGuideDTO.getMaterials().forEach(material -> { | 
|---|
|  |  |  | ComActWorkGuideMaterialDO workGuideMaterialDO = new ComActWorkGuideMaterialDO(); | 
|---|
|  |  |  | workGuideMaterialDO.setMaterialName(material.getMaterialName()); | 
|---|
|  |  |  | workGuideMaterialDO.setWorkGuideId(comActWorkGuideDO.getId()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R editWorkGuide(ComActWorkGuideVO workGuideVO, Long userId) { | 
|---|
|  |  |  | if (workGuideVO.getId() == 0L) { | 
|---|
|  |  |  | public R editWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId) { | 
|---|
|  |  |  | if (workGuideDTO.getId() == 0L) { | 
|---|
|  |  |  | return R.fail("Id有误!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideVO.getId()); | 
|---|
|  |  |  | ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideDTO.getId()); | 
|---|
|  |  |  | if (workGuideDO == null) { | 
|---|
|  |  |  | return R.fail("Id有误!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BeanUtils.copyProperties(workGuideVO, workGuideDO); | 
|---|
|  |  |  | BeanUtils.copyProperties(workGuideDTO, workGuideDO); | 
|---|
|  |  |  | workGuideDO.setUpdateBy(userId); | 
|---|
|  |  |  | this.baseMapper.updateById(workGuideDO); | 
|---|
|  |  |  | if (workGuideVO.getMaterials().size() == 0) {//若编辑材料为null,执行删除操作 | 
|---|
|  |  |  | if (workGuideDTO.getMaterials().size() == 0) {//若编辑材料为null,执行删除操作 | 
|---|
|  |  |  | workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() | 
|---|
|  |  |  | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideVO.getId())); | 
|---|
|  |  |  | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId())); | 
|---|
|  |  |  | } else {//若材料不为空,但是少了数据条数,也要执行删除 | 
|---|
|  |  |  | List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() | 
|---|
|  |  |  | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideVO.getId())); | 
|---|
|  |  |  | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId())); | 
|---|
|  |  |  | //1、筛选vo里面和db里,需要删除的材料数据 | 
|---|
|  |  |  | List<Long> voMaterialIds = workGuideVO.getMaterials().stream() | 
|---|
|  |  |  | List<Long> voMaterialIds = workGuideDTO.getMaterials().stream() | 
|---|
|  |  |  | .filter(materialVo -> materialVo.getId() != null) | 
|---|
|  |  |  | .map(ComActWorkGuideMaterialVO::getId) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (deleteMaterialIds.size() != 0) { | 
|---|
|  |  |  | workGuideMaterialDAO.deleteBatchIds(deleteMaterialIds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | workGuideVO.getMaterials().forEach(materialsVO -> { | 
|---|
|  |  |  | workGuideDTO.getMaterials().forEach(materialsVO -> { | 
|---|
|  |  |  | if (materialsVO.getId() != null && materialsVO.getId() != 0L) { | 
|---|
|  |  |  | ComActWorkGuideMaterialDO workGuideMaterialDO1 = workGuideMaterialDOS.stream().filter(workGuideMaterialDO -> workGuideMaterialDO.getId() | 
|---|
|  |  |  | .equals(materialsVO.getId())).findFirst().orElse(null); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R detailWorkGuide(Long workGuideId) { | 
|---|
|  |  |  | public R detailWorkGuide(Long workGuideId, Long conmunityId) { | 
|---|
|  |  |  | ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideId); | 
|---|
|  |  |  | if (workGuideDO == null) { | 
|---|
|  |  |  | return R.fail("Id有误!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ComActWorkGuideVO vo = new ComActWorkGuideVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(workGuideDO, vo); | 
|---|
|  |  |  | ComActDO comActDO = comActDAO.selectById(conmunityId); | 
|---|
|  |  |  | if (comActDO != null){ | 
|---|
|  |  |  | vo.setAddress(comActDO.getAddress()); | 
|---|
|  |  |  | vo.setPhone(comActDO.getContactsPhone()); | 
|---|
|  |  |  | vo.setLon(comActDO.getLng()); | 
|---|
|  |  |  | vo.setLat(comActDO.getLat()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() | 
|---|
|  |  |  | .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); | 
|---|
|  |  |  | workGuideMaterialDOS.forEach(workGuideMaterialDO -> { | 
|---|