From fc093b0724b0c8979c0896f2bdc4cf8c4af27a1f Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Sun, 23 Apr 2023 15:21:40 +0800 Subject: [PATCH] fix --- src/main/resources/mapper/modules/MallShopMapper.xml | 23 ++++++++++++++++++++--- src/main/java/cc/mrbird/febs/mall/mapper/MallShopMapper.java | 5 +++++ src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java | 3 ++- src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java | 13 ++++++++----- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallShopMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallShopMapper.java index 2f3ce8c..9d16cd7 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallShopMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallShopMapper.java @@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.mapper; +import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.entity.MallShop; import cc.mrbird.febs.mall.vo.AdminMallNewsInfoVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -7,7 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface MallShopMapper extends BaseMapper<MallShop> { IPage<MallShop> selectShopListInPage(@Param("record") MallShop mallShop, Page<MallShop> page); + + List<MallShop> selectShopDistanceList(@Param("record") MallShop mallShop, @Param("page") QueryRequest queryRequest); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java index a3612c0..780b214 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java @@ -3,6 +3,7 @@ import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.dto.ApiShopDto; import cc.mrbird.febs.mall.entity.MallShop; +import cc.mrbird.febs.mall.vo.ApiShopVo; import cc.mrbird.febs.mall.vo.ShopListVo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,5 +14,5 @@ IPage<MallShop> findShopListInPage(MallShop mallShop, QueryRequest request); - List<ShopListVo> findShopList(ApiShopDto apiShopDto); + List<ApiShopVo> findShopList(ApiShopDto apiShopDto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java index 6d5d39d..1597c50 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java @@ -5,6 +5,7 @@ import cc.mrbird.febs.mall.entity.MallShop; import cc.mrbird.febs.mall.mapper.MallShopMapper; import cc.mrbird.febs.mall.service.IMallShopService; +import cc.mrbird.febs.mall.vo.ApiShopVo; import cc.mrbird.febs.mall.vo.ShopListVo; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; @@ -28,11 +29,13 @@ } @Override - public List<ShopListVo> findShopList(ApiShopDto apiShopDto) { - Page<MallShop> page = new Page<>(apiShopDto.getPageNum(), apiShopDto.getPageSize()); - + public List<ApiShopVo> findShopList(ApiShopDto apiShopDto) { + QueryRequest page = new QueryRequest(); + page.setPageNum(apiShopDto.getPageNum() - 1); + page.setPageSize(apiShopDto.getPageSize()); MallShop mallShop = BeanUtil.copyProperties(apiShopDto, MallShop.class); - IPage<MallShop> list = this.baseMapper.selectShopListInPage(mallShop, page); - return BeanUtil.copyToList(list.getRecords(), ShopListVo.class); + List<MallShop> list = this.baseMapper.selectShopDistanceList(mallShop, page); + + return BeanUtil.copyToList(list, ApiShopVo.class); } } diff --git a/src/main/resources/mapper/modules/MallShopMapper.xml b/src/main/resources/mapper/modules/MallShopMapper.xml index 413eb6b..3a47643 100644 --- a/src/main/resources/mapper/modules/MallShopMapper.xml +++ b/src/main/resources/mapper/modules/MallShopMapper.xml @@ -18,11 +18,28 @@ </if> </if> </where> + </select> + + + <select id="selectShopDistanceList" resultType="cc.mrbird.febs.mall.entity.MallShop"> + select + a.*, + lat_lng_distance(#{record.latitude}, #{record.longitude}, a.latitude, a.longitude) distance + from mall_shop a + <where> + 1=1 + <if test="record != null"> + <if test="record.shopName != null and record.shopName != ''"> + and shop_name like concat('%', concat(#{record.shopName}, '%')) + </if> + <if test="record.state != null"> + and state = #{record.state} + </if> + </if> + </where> <if test="record.longitude != null and record.latitude != null"> order by lat_lng_distance(#{record.latitude}, #{record.longitude}, a.latitude, a.longitude) desc </if> - <if test="record.longitude == null or record.latitude == null"> - order by id desc - </if> + limit #{page.pageNum},#{page.pageSize} </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1