package com.hollywood.applet.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hollywood.applet.dto.SpotDto; import com.hollywood.applet.service.TScenicSpotService; import com.hollywood.applet.utils.DistanceCalculator; import com.hollywood.common.basic.ApiResult; import com.hollywood.common.basic.PageInfo; import com.hollywood.common.model.TInformation; import com.hollywood.common.model.TScenicSpot; import com.hollywood.common.model.TVideo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Collections; import java.util.Comparator; import java.util.List; /** *

* 景区管理 前端控制器 *

* * @author xiaochen * @since 2024-02-29 */ @RestController @RequestMapping("/tScenicSpot") @Api(tags = "景区") public class TScenicSpotController { @Autowired private TScenicSpotService tScenicSpotService; @ApiOperation(value = "查看景区管理详情") @GetMapping(value = "/getDetailById") public ApiResult getDetailById(@RequestParam Long id) { return ApiResult.success(tScenicSpotService.getById(id)); } @ApiOperation(value = "获取景区列表") @PostMapping("/list") public ApiResult put(@RequestBody SpotDto spotDto) { QueryWrapper tScenicSpotQueryWrapper = new QueryWrapper<>(); tScenicSpotQueryWrapper.eq("status",1); if (spotDto.getName()!=null&&spotDto.getName()!=""){ tScenicSpotQueryWrapper.like("scenicName",spotDto.getName()); } if (spotDto.getCityCode()!=null&&spotDto.getCityCode()!=""){ tScenicSpotQueryWrapper.eq("cityCode",spotDto.getCityCode()); } tScenicSpotQueryWrapper.orderByDesc("sortBy"); PageInfo pageInfo = new PageInfo<>(spotDto.getPageNum(), 1000); List page = tScenicSpotService.list(tScenicSpotQueryWrapper); if (spotDto.getLat()!=null){ for (TScenicSpot tScenicSpot : page) { double v = DistanceCalculator.calculateDistance(spotDto.getLat(), spotDto.getLon(), tScenicSpot.getLat(), tScenicSpot.getLon()); tScenicSpot.setDistance(v); } } if (spotDto.getDistanceOrder()!=null){ if (spotDto.getDistanceOrder()==1) { Collections.sort(page, new Comparator() { @Override public int compare(TScenicSpot spot1, TScenicSpot spot2) { return Double.compare(spot1.getDistance(), spot2.getDistance()); } }); }else { Collections.sort(page, new Comparator() { @Override public int compare(TScenicSpot spot1, TScenicSpot spot2) { return Double.compare(spot2.getDistance(), spot1.getDistance()); } }); } } pageInfo.setRecords(page); return ApiResult.success(pageInfo); } @ApiOperation(value = "推荐获取景区分页列表") @PostMapping("/pagelist") public ApiResult putList(@RequestBody SpotDto spotDto) { QueryWrapper tScenicSpotQueryWrapper = new QueryWrapper<>(); tScenicSpotQueryWrapper.eq("status",1); if (spotDto.getName()!=null&&spotDto.getName()!=""){ tScenicSpotQueryWrapper.like("scenicName",spotDto.getName()); } if (spotDto.getCityCode()!=null&&spotDto.getCityCode()!=""){ tScenicSpotQueryWrapper.eq("cityCode",spotDto.getCityCode()); } tScenicSpotQueryWrapper.orderByDesc("sortBy"); PageInfo pageInfo = new PageInfo<>(spotDto.getPageNum(), spotDto.getPageSize()); PageInfo page = tScenicSpotService.page(pageInfo,tScenicSpotQueryWrapper); return ApiResult.success(page); } }