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;
|
|
/**
|
* <p>
|
* 景区管理 前端控制器
|
* </p>
|
*
|
* @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<TScenicSpot> getDetailById(@RequestParam Long id) {
|
return ApiResult.success(tScenicSpotService.getById(id));
|
}
|
|
@ApiOperation(value = "获取景区列表")
|
@PostMapping("/list")
|
public ApiResult put(@RequestBody SpotDto spotDto)
|
{
|
|
QueryWrapper<TScenicSpot> 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<TScenicSpot> pageInfo = new PageInfo<>(spotDto.getPageNum(), 1000);
|
List<TScenicSpot> 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<TScenicSpot>() {
|
@Override
|
public int compare(TScenicSpot spot1, TScenicSpot spot2) {
|
return Double.compare(spot1.getDistance(), spot2.getDistance());
|
}
|
});
|
}else {
|
Collections.sort(page, new Comparator<TScenicSpot>() {
|
@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<TScenicSpot> 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<TScenicSpot> pageInfo = new PageInfo<>(spotDto.getPageNum(), spotDto.getPageSize());
|
PageInfo<TScenicSpot> page = tScenicSpotService.page(pageInfo,tScenicSpotQueryWrapper);
|
return ApiResult.success(page);
|
}
|
|
|
}
|