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