package com.ylx.web.controller.massage; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ylx.common.core.domain.R; import com.ylx.massage.domain.Area; import com.ylx.massage.domain.dto.CoordinateDTO; import com.ylx.massage.domain.vo.AreaTreeNode; import com.ylx.massage.domain.vo.CityInfoVo; import com.ylx.massage.service.AreaService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.Serializable; import java.util.List; /** * 区域数据(Area)表控制层 * * @author makejava * @since 2024-07-01 09:22:27 */ @RestController @Api(tags = {"区域数据表控制层"}) @RequestMapping("area") public class AreaController { /** * 服务对象 */ @Resource private AreaService areaService; /** * 分页查询所有数据 * * @param page 分页对象 * @param area 查询实体 * @return 所有数据 */ @GetMapping public R selectAll(Page page, Area area) { return R.ok(this.areaService.page(page, new QueryWrapper<>(area))); } @GetMapping("/select") @ApiOperation("按层级查询") public R select(Area area) { LambdaQueryWrapper objectLambdaQueryWrapper = new LambdaQueryWrapper<>(); objectLambdaQueryWrapper.eq(null != area.getLevel(),Area::getLevel, area.getLevel()) .eq(StringUtils.isNotBlank(area.getParentCode()),Area::getParentCode, area.getParentCode()); return R.ok(this.areaService.list(objectLambdaQueryWrapper)); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("{id}") public R selectOne(@PathVariable Serializable id) { return R.ok(this.areaService.getById(id)); } /** * 新增数据 * * @param area 实体对象 * @return 新增结果 */ @PostMapping public R insert(@RequestBody Area area) { return R.ok(this.areaService.save(area)); } /** * 修改数据 * * @param area 实体对象 * @return 修改结果 */ @PutMapping public R update(@RequestBody Area area) { return R.ok(this.areaService.updateById(area)); } /** * 删除数据 * * @param idList 主键结合 * @return 删除结果 */ @DeleteMapping public R delete(@RequestParam("idList") List idList) { return R.ok(this.areaService.removeByIds(idList)); } /** * 根据城市名称查询编码 * @param name * @return R */ @GetMapping("/code") @ApiOperation("name获取code") public R getCodeByName(@RequestParam String name) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Area::getName, name); List list = this.areaService.list(queryWrapper); if (CollectionUtil.isEmpty(list)) { return R.fail("未找到此数据"); } return R.ok(CollectionUtil.getFirst(list).getCode()); } @GetMapping("/tree") @ApiOperation("获取全量区域树形结构") public R> getAreaTree() { List tree = this.areaService.getAreaTree(); return R.ok(tree); } @PostMapping("/city") @ApiOperation("根据经纬度获取城市信息") public R getCityInfoByCoordinates(@RequestBody CoordinateDTO dto) { CityInfoVo cityInfoVo = this.areaService.getCityInfoByCoordinates(dto); return R.ok(cityInfoVo); } }