From 43f0578e80af82ecae6c61b51bd0539c6b960603 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期二, 16 八月 2022 19:08:32 +0800 Subject: [PATCH] 服务范围优化 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java | 143 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 106 insertions(+), 37 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 index bde8b41..d5dc0c5 100644 --- 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 @@ -1,43 +1,62 @@ 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 com.panzhihua.common.utlis.AgeUtils; +import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO; +import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO; +import com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO; +import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO; +import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO; +import com.panzhihua.service_community.service.ComActWorkGuideClassifyService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + 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.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; -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 { +public class ComActWorkGuideServiceImpl extends ServiceImpl<ComActWorkGuideDAO, ComActWorkGuideDO> + implements ComActWorkGuideService { + static String AK = "W3x8DhCWKc2UFIwYgclpRBdL6BeGLLQt"; // 百度地图密钥 @Resource ComActWorkGuideMaterialDAO workGuideMaterialDAO; + @Resource + private ComActWorkGuideClassifyDAO comActWorkGuideClassifyDAO; + @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()); @@ -47,44 +66,44 @@ } @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())); - } 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()); + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId())); + } else {// 若材料不为空,但是少了数据条数,也要执行删除 + List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = + workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId())); + // 1、筛选vo里面和db里,需要删除的材料数据 + List<Long> voMaterialIds = + workGuideDTO.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()); + .filter(workGuideMaterialDO -> !voMaterialIds.contains(workGuideMaterialDO.getId())) + .map(ComActWorkGuideMaterialDO::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); - if (workGuideMaterialDO1 != null) {//2、如果db有,执行编辑 + 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没有,执行新增 + } else {// 3、如果db没有,执行新增 ComActWorkGuideMaterialDO newWorkGuideMaterialDO = new ComActWorkGuideMaterialDO(); newWorkGuideMaterialDO.setMaterialName(materialsVO.getMaterialName()); newWorkGuideMaterialDO.setWorkGuideId(workGuideDO.getId()); @@ -96,14 +115,23 @@ } @Override - public R detailWorkGuide(Long workGuideId) { + public R detailWorkGuide(Long workGuideId, Long communityId) { 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>() + ComActDO comActDO = comActDAO.selectById(communityId); + 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 -> { ComActWorkGuideMaterialVO workGuideMaterialVO = new ComActWorkGuideMaterialVO(); @@ -128,6 +156,14 @@ page.setSize(pageSize); page.setCurrent(pageNum); IPage<ComActWorkGuideVO> iPage = this.baseMapper.pageWorkGuide(page, pageActWorkGuideDTO); + if (!iPage.getRecords().isEmpty()) { + iPage.getRecords().forEach(comActWorkGuideVO -> { + ComActWorkGuideClassifyDO comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(comActWorkGuideVO.getClassify()); + if (comActWorkGuideClassifyDO != null) { + comActWorkGuideVO.setClassifyName(comActWorkGuideClassifyDO.getClassifyName()); + } + }); + } return R.ok(iPage); } @@ -135,7 +171,40 @@ public R delectWorkGuide(Long workGuideId) { this.baseMapper.deleteById(workGuideId); workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() - .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); return R.ok(); } + + /** + * 办事指南列表-按分类查询 + * @param pageActWorkGuideDTO 请求参数 + * @return 办事指南分类列表 + */ + @Override + public R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO){ + //结果数据集合 + List<ComActWorkGuideAppletsVO> resultList = new ArrayList<>(); + + List<ComActWorkGuideAppletsVO> workGuideClassifyList = comActWorkGuideClassifyDAO.listWorkGuideClassify(pageActWorkGuideDTO.getAreaCode()); + //通过办事指南分类查询分类下办事指南 + workGuideClassifyList.forEach(workGuideClassify -> { + List<ComActWorkGuideDetailAppletsVO> workGuideList = this.baseMapper.getWorkGuideListByClassifyId(workGuideClassify.getId(),10L); + if(workGuideList != null && workGuideList.size() > 0){ + workGuideClassify.setGuideDetailList(workGuideList); + //分类下办事指南数据大于0加入到结果集中向小程序展示 + resultList.add(workGuideClassify); + } + }); + return R.ok(resultList); + } + + /** + * 根据办事指南分类id查询办事指南列表 + * @param classifyId 办事指南分类id + * @return 办事指南列表数据 + */ + @Override + public R listWorkGuideByClassifyId(Long classifyId){ + return R.ok(this.baseMapper.getWorkGuideListByClassifyId(classifyId,null)); + } } -- Gitblit v1.7.1