pom.xml | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/controller/ApiMallShopController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/dto/ApiShopDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/entity/MallShop.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/ApiShopVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/modules/MallShopMapper.xml | ●●●●● patch | view | raw | blame | history |
pom.xml
@@ -21,7 +21,7 @@ <mybatis.plus.version>3.3.1</mybatis.plus.version> <swagger.ui>2.9.2</swagger.ui> <tomcat.version>9.0.31</tomcat.version> <hutool.version>5.3.1</hutool.version> <hutool.version>5.7.22</hutool.version> <aliyun-oss.version>3.8.0</aliyun-oss.version> <ijapy.version>2.7.8</ijapy.version> <mapstruct.version>1.3.1.Final</mapstruct.version> src/main/java/cc/mrbird/febs/mall/controller/ApiMallShopController.java
@@ -1,11 +1,20 @@ package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.ApiShopDto; import cc.mrbird.febs.mall.service.IMallShopService; import cc.mrbird.febs.mall.vo.ApiShopVo; import cc.mrbird.febs.mall.vo.OrderListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,4 +26,15 @@ @RequestMapping(value = "/api/shop") @Api(value = "ApiMallShopController", tags = "店铺接口类") public class ApiMallShopController { private final IMallShopService mallShopService; @ApiOperation(value = "店铺列表", notes = "店铺列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiShopVo.class) }) @PostMapping(value = "/") public FebsResponse shopList(ApiShopDto apiShopDto) { return new FebsResponse().success().data(mallShopService.findShopList(apiShopDto)); } } src/main/java/cc/mrbird/febs/mall/dto/ApiShopDto.java
New file @@ -0,0 +1,28 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @author wzy * @date 2023-04-20 **/ @Data @ApiModel(value = "ApiShopDto", description = "接收参数类s") public class ApiShopDto { @ApiModelProperty(value = "一页数量", example = "10") private Integer pageSize; @ApiModelProperty(value = "第几页", example = "1") private Integer pageNum; @ApiModelProperty(value = "经度") private BigDecimal longitude; @ApiModelProperty(value = "纬度") private BigDecimal latitude; } src/main/java/cc/mrbird/febs/mall/entity/MallShop.java
@@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.entity; import cc.mrbird.febs.common.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -23,4 +24,10 @@ private BigDecimal latitude; private Integer state; /** * 距离 */ @TableField(exist = false) private BigDecimal distance; } src/main/java/cc/mrbird/febs/mall/service/IMallShopService.java
@@ -1,11 +1,17 @@ package cc.mrbird.febs.mall.service; 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.ShopListVo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface IMallShopService extends IService<MallShop> { IPage<MallShop> findShopListInPage(MallShop mallShop, QueryRequest request); List<ShopListVo> findShopList(ApiShopDto apiShopDto); } src/main/java/cc/mrbird/febs/mall/service/impl/MallShopServiceImpl.java
@@ -1,15 +1,21 @@ package cc.mrbird.febs.mall.service.impl; 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.mapper.MallShopMapper; import cc.mrbird.febs.mall.service.IMallShopService; import cc.mrbird.febs.mall.vo.ShopListVo; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service @@ -20,4 +26,13 @@ Page<MallShop> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.baseMapper.selectShopListInPage(mallShop, page); } @Override public List<ShopListVo> findShopList(ApiShopDto apiShopDto) { Page<MallShop> page = new Page<>(apiShopDto.getPageNum(), apiShopDto.getPageSize()); MallShop mallShop = BeanUtil.copyProperties(apiShopDto, MallShop.class); IPage<MallShop> list = this.baseMapper.selectShopListInPage(mallShop, page); return BeanUtil.copyToList(list.getRecords(), ShopListVo.class); } } src/main/java/cc/mrbird/febs/mall/vo/ApiShopVo.java
New file @@ -0,0 +1,38 @@ package cc.mrbird.febs.mall.vo; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @author wzy * @date 2023-04-20 **/ @Data @ApiModel(value = "ApiShopVo", description = "店铺列表") public class ApiShopVo { @ApiModelProperty(value = "店铺名称") private String shopName; @ApiModelProperty(value = "店铺缩略图") private String shopImage; @ApiModelProperty(value = "店铺地址") private String shopAddress; @ApiModelProperty(value = "联系方式") private String phone; @ApiModelProperty(value = "经度") private BigDecimal longitude; @ApiModelProperty(value = "纬度") private BigDecimal latitude; @ApiModelProperty(value = "距离") private BigDecimal distance; } src/main/resources/mapper/modules/MallShopMapper.xml
@@ -3,7 +3,10 @@ <mapper namespace="cc.mrbird.febs.mall.mapper.MallShopMapper"> <select id="selectShopListInPage" resultType="cc.mrbird.febs.mall.entity.MallShop"> select * from mall_shop 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"> @@ -15,6 +18,11 @@ </if> </if> </where> order by id desc <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> </select> </mapper>