From 5a8a90c095280fbd2106869ecd2bad10e01a57a6 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期四, 23 十二月 2021 18:10:22 +0800 Subject: [PATCH] 12/23 大屏修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java | 165 +++++++++++++++++++++++++++--------------------------- 1 files changed, 83 insertions(+), 82 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 1577a53..38913b4 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,6 +1,22 @@ package com.panzhihua.service_community.service.impl; -import com.alibaba.fastjson.JSONObject; +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; @@ -17,31 +33,19 @@ import com.panzhihua.service_community.model.dos.ComActWorkGuideDO; import com.panzhihua.service_community.model.dos.ComActWorkGuideMaterialDO; import com.panzhihua.service_community.service.ComActWorkGuideService; -import net.sf.json.xml.XMLSerializer; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.text.DecimalFormat; -import java.util.ArrayList; -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; @@ -51,7 +55,7 @@ BeanUtils.copyProperties(workGuideDTO, comActWorkGuideDO); comActWorkGuideDO.setCreateBy(userId); this.baseMapper.insert(comActWorkGuideDO); - //保存办事指南材料 + // 保存办事指南材料 workGuideDTO.getMaterials().forEach(material -> { ComActWorkGuideMaterialDO workGuideMaterialDO = new ComActWorkGuideMaterialDO(); workGuideMaterialDO.setMaterialName(material.getMaterialName()); @@ -73,33 +77,33 @@ BeanUtils.copyProperties(workGuideDTO, workGuideDO); workGuideDO.setUpdateBy(userId); this.baseMapper.updateById(workGuideDO); - if (workGuideDTO.getMaterials().size() == 0) {//若编辑材料为null,执行删除操作 + if (workGuideDTO.getMaterials().size() == 0) {// 若编辑材料为null,执行删除操作 workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId())); + } else {// 若材料不为空,但是少了数据条数,也要执行删除 + List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = + workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() .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()); + // 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); } 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()); @@ -111,24 +115,23 @@ } @Override - public R detailWorkGuide(Long workGuideId, Long conmunityId) { + 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); - ComActDO comActDO = comActDAO.selectById(conmunityId); - if (comActDO != null){ + 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<String> list = getCoordinate(vo.getAddress()); - if (list !=null && list.size() > 0){ - vo.setLon(list.get(0)); - vo.setLat(list.get(1)); - } - List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() + + List<ComActWorkGuideMaterialDO> workGuideMaterialDOS = + workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>() .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId)); workGuideMaterialDOS.forEach(workGuideMaterialDO -> { ComActWorkGuideMaterialVO workGuideMaterialVO = new ComActWorkGuideMaterialVO(); @@ -153,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); } @@ -160,50 +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(); } - // 调用百度地图API根据地址,获取坐标 - public static List<String> getCoordinate(String address) { - List<String> list = new ArrayList<>(); - if (address != null && !"".equals(address)) { - address = address.replaceAll("\\s*", "").replace("#", "栋"); - String url = "http://api.map.baidu.com/geocoder/v3/?address=" + address + "&output=json&ak=" + AK; - String json = loadJSON(url); -// json = "{" + json; -// json = json + "}"; - if (json != null && !"".equals(json)) { - XMLSerializer xmlSerializer = new XMLSerializer(); - //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识) - String result = xmlSerializer.read(json).toString(); - JSONObject obj = JSONObject.parseObject(json); - if ("0".equals(obj.getString("status"))) { - double lng = obj.getJSONObject("result").getJSONObject("location").getDouble("lng"); // 经度 - double lat = obj.getJSONObject("result").getJSONObject("location").getDouble("lat"); // 纬度 - DecimalFormat df = new DecimalFormat("#.######"); - list.add(df.format(lng)); - list.add(df.format(lat)); - return list; - } + /** + * 办事指南列表-按分类查询 + * @param pageActWorkGuideDTO 请求参数 + * @return 办事指南分类列表 + */ + @Override + public R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO){ + //结果数据集合 + List<ComActWorkGuideAppletsVO> resultList = new ArrayList<>(); + + List<ComActWorkGuideAppletsVO> workGuideClassifyList = comActWorkGuideClassifyDAO.listWorkGuideClassify(); + //通过办事指南分类查询分类下办事指南 + 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 null; + }); + return R.ok(resultList); } - public static String loadJSON(String url) { - StringBuilder json = new StringBuilder(); - try { - URL oracle = new URL(url); - URLConnection yc = oracle.openConnection(); - BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8")); - String inputLine = null; - while ((inputLine = in.readLine()) != null) { - json.append(inputLine); - } - in.close(); - } catch (MalformedURLException e) {} catch (IOException e) {} - return json.toString(); + /** + * 根据办事指南分类id查询办事指南列表 + * @param classifyId 办事指南分类id + * @return 办事指南列表数据 + */ + @Override + public R listWorkGuideByClassifyId(Long classifyId){ + return R.ok(this.baseMapper.getWorkGuideListByClassifyId(classifyId,null)); } - } -- Gitblit v1.7.1