Selaa lähdekoodia

小程序接口联调

S0025136190 1 vuosi sitten
vanhempi
sitoutus
e4a3fbafd6

+ 4 - 0
takai-modules/takai-system/src/main/java/org/dromara/system/domain/bo/FacilitiesBo.java

@@ -54,5 +54,9 @@ public class FacilitiesBo extends BaseEntity {
 
     private List<SysImgBo> sysimg;
 
+    private String dictType;
+
+    private List<String> facilitiesIds;
+
 
 }

+ 4 - 0
takai-modules/takai-system/src/main/java/org/dromara/system/mapper/FacilitiesMapper.java

@@ -16,4 +16,8 @@ public interface FacilitiesMapper extends BaseMapperPlus<Facilities, FacilitiesV
 
     List<FacilitiesVo> selectByFacilitiesId(List<String> list);
 
+    List<FacilitiesVo> selectByRegionId(List<String> list);
+
+    List<FacilitiesVo> selectByFacilitiesId(String regionType);
+
 }

+ 4 - 0
takai-modules/takai-system/src/main/java/org/dromara/system/mapper/RegionMapper.java

@@ -1,6 +1,8 @@
 package org.dromara.system.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.dromara.system.domain.Region;
+import org.dromara.system.domain.vo.FacilitiesVo;
 import org.dromara.system.domain.vo.RegionVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
@@ -17,4 +19,6 @@ public interface RegionMapper extends BaseMapperPlus<Region, RegionVo> {
     List<RegionVo> selectByRegionId(List<String> list);
 
     List<RegionVo> selectByRoomId(String roomId);
+
+    List<String> selectByRegionType(String regionType);
 }

+ 43 - 11
takai-modules/takai-system/src/main/java/org/dromara/system/service/impl/FacilitiesServiceImpl.java

@@ -8,9 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.system.domain.Region;
 import org.dromara.system.domain.bo.*;
 import org.dromara.system.domain.vo.*;
 import org.dromara.system.mapper.RegionFacilitiesMapper;
+import org.dromara.system.mapper.RegionMapper;
 import org.dromara.system.service.*;
 import org.springframework.stereotype.Service;
 import org.dromara.system.domain.Facilities;
@@ -20,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
+import java.util.stream.Collectors;
 
 /**
  * 【请填写功能名称】Service业务层处理
@@ -44,6 +47,8 @@ public class FacilitiesServiceImpl implements IFacilitiesService {
     private final ISysOssService sysOssService;
 
     private final IRegionFacilitiesService regionFacilitiesService;
+
+    private final RegionMapper regionMapper;
     /**
      * 查询【请填写功能名称】
      */
@@ -60,20 +65,44 @@ public class FacilitiesServiceImpl implements IFacilitiesService {
      */
     @Override
     public TableDataInfo<FacilitiesVo> queryPageList(FacilitiesBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<Facilities> lqw = buildQueryWrapper(bo);
-        Page<FacilitiesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        List<FacilitiesVo> list = result.getRecords();
-        for (FacilitiesVo facilitiesVo: list){
-            List<SysImgVo> sysimg = this.querySysImg(facilitiesVo.getFacilitiesId());
-            for (SysImgVo sysImgVo: sysimg){
-                if(StringUtils.isNotBlank(sysImgVo.getEnumC()) && sysImgVo.getEnumC().equals("0")){
-                    facilitiesVo.setUrl(sysImgVo.getUrl());
-                    break;
+        if("0".equals(bo.getDictType()) || org.apache.commons.lang3.StringUtils.isBlank(bo.getDictType())){
+            LambdaQueryWrapper<Facilities> lqw = buildQueryWrapper(bo);
+            Page<FacilitiesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+            List<FacilitiesVo> list = result.getRecords();
+            for (FacilitiesVo facilitiesVo: list){
+                List<SysImgVo> sysimg = this.querySysImg(facilitiesVo.getFacilitiesId());
+                for (SysImgVo sysImgVo: sysimg){
+                    if(StringUtils.isNotBlank(sysImgVo.getEnumC()) && sysImgVo.getEnumC().equals("0")){
+                        facilitiesVo.setUrl(sysImgVo.getUrl());
+                        break;
+                    }
+                }
+                facilitiesVo.setSysimg(sysimg);
+            }
+            return TableDataInfo.build(result);
+        }else{
+            RegionBo s = new RegionBo();
+            s.setRegionType(bo.getDictType());
+            List<String> regionVoList = regionMapper.selectByRegionType(bo.getDictType());
+            if(regionVoList.size() > 0){
+                bo.setFacilitiesIds(regionVoList);
+                LambdaQueryWrapper<Facilities> lqw = buildQueryWrapper(bo);
+                Page<FacilitiesVo> result2 = baseMapper.selectVoPage(pageQuery.build(), lqw);
+                List<FacilitiesVo> list = result2.getRecords();
+                for (FacilitiesVo facilitiesVo: list){
+                    List<SysImgVo> sysimg = this.querySysImg(facilitiesVo.getFacilitiesId());
+                    for (SysImgVo sysImgVo: sysimg){
+                        if(StringUtils.isNotBlank(sysImgVo.getEnumC()) && sysImgVo.getEnumC().equals("0")){
+                            facilitiesVo.setUrl(sysImgVo.getUrl());
+                            break;
+                        }
+                    }
+                    facilitiesVo.setSysimg(sysimg);
                 }
+                return TableDataInfo.build(result2);
             }
-            facilitiesVo.setSysimg(sysimg);
+            return null;
         }
-        return TableDataInfo.build(result);
     }
 
     /**
@@ -88,6 +117,9 @@ public class FacilitiesServiceImpl implements IFacilitiesService {
     private LambdaQueryWrapper<Facilities> buildQueryWrapper(FacilitiesBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<Facilities> lqw = Wrappers.lambdaQuery();
+        if(bo.getFacilitiesIds() != null && bo.getFacilitiesIds().size() > 0){
+            lqw.in(true, Facilities::getFacilitiesId, bo.getFacilitiesIds());
+        }
         lqw.like(StringUtils.isNotBlank(bo.getFacilitiesId()), Facilities::getFacilitiesId, bo.getFacilitiesId());
         lqw.like(StringUtils.isNotBlank(bo.getFacilitiesName()), Facilities::getFacilitiesName, bo.getFacilitiesName());
         lqw.eq(StringUtils.isNotBlank(bo.getFacilitiesTitle()), Facilities::getFacilitiesTitle, bo.getFacilitiesTitle());

+ 29 - 0
takai-modules/takai-system/src/main/resources/mapper/system/FacilitiesMapper.xml

@@ -4,6 +4,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.FacilitiesMapper">
 
+    <resultMap id="facListMap" type="org.dromara.system.domain.vo.FacilitiesVo">
+        <id column="facilities_id" property="facilities_id" jdbcType="VARCHAR"/>
+        <result column="facilities_name" property="facilities_name" jdbcType="VARCHAR"/>
+        <result column="facilities_title" property="facilities_title" jdbcType="VARCHAR"/>
+        <result column="facilities_desc" property="facilities_desc" jdbcType="VARCHAR"/>
+        <result column="facilities_type" property="facilities_type" jdbcType="VARCHAR"/>
+    </resultMap>
+
     <select id="selectByFacilitiesId" parameterType="list" resultType="org.dromara.system.domain.vo.FacilitiesVo">
         select * FROM facilities WHERE facilities_id IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
@@ -11,4 +19,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </select>
 
+    <select id="selectByRegionId" parameterType="list" resultType="org.dromara.system.domain.vo.FacilitiesVo">
+        select * FROM region_facilities rr
+            LEFT JOIN facilities fa on fa.facilities_id = rr.facilities_id
+        WHERE rr.region_id IN
+        <foreach item="item" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="selectByRegionId"  resultMap="facListMap">
+        SELECT DISTINCT
+            fa.*
+        FROM
+            region r
+                LEFT JOIN region_facilities rr ON r.region_id = rr.region_id
+                LEFT JOIN facilities fa on fa.facilities_id = rr.facilities_id
+
+        where r.region_type = #{regionType}
+
+    </select>
+
 </mapper>

+ 16 - 0
takai-modules/takai-system/src/main/resources/mapper/system/RegionMapper.xml

@@ -12,6 +12,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result column="region_type" property="region_type" jdbcType="VARCHAR"/>
     </resultMap>
 
+    <resultMap id="facListMap" type="org.dromara.system.domain.vo.FacilitiesVo">
+        <id column="facilities_id" property="facilitiesId" jdbcType="VARCHAR"/>
+    </resultMap>
+
     <select id="selectByRegionId" parameterType="list" resultType="org.dromara.system.domain.vo.RegionVo">
         select * FROM region WHERE region_id IN
         <foreach item="item" collection="list" open="(" separator="," close=")">
@@ -37,4 +41,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+
+    <select id="selectByRegionType"  resultType="string">
+        SELECT
+            r.facilities_id
+        FROM
+            region rg
+            left join region_facilities r on rg.region_id = r.region_id
+        WHERE
+            rg.region_type = #{regionType}
+
+    </select>
+
 </mapper>