package com.sinata.appointment.controller; import com.sinata.appointment.common.Result; import com.sinata.appointment.common.ResultUtil; import com.sinata.appointment.dto.MiniFieldConfigVo; import com.sinata.appointment.dto.MiniLocalUnitVo; import com.sinata.appointment.dto.MiniPassAccessAreaTreeVo; import com.sinata.appointment.dto.MiniVisitReasonVo; import com.sinata.appointment.dto.MiniVisitedUserVo; import com.sinata.appointment.service.MiniLookupApplicationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @Tag(name = "小程序字典") @RestController @RequestMapping("/api/mini/lookups") @RequiredArgsConstructor public class MiniLookupController { private final MiniLookupApplicationService miniLookupApplicationService; @Operation(summary = "获取预约字段配置列表(优先缓存)") @GetMapping("/field-configs") public Result> listFieldConfigs() { return ResultUtil.data(miniLookupApplicationService.listFieldConfigs()); } @Operation(summary = "获取来访事由列表(优先缓存)") @GetMapping("/visit-reasons") public Result> listVisitReasons() { return ResultUtil.data(miniLookupApplicationService.listVisitReasons()); } @Operation(summary = "按被访人姓名精确匹配搜索") @GetMapping("/visited-users") public Result> searchVisitedUsers( @RequestParam(required = false) String realName) { return ResultUtil.data(miniLookupApplicationService.searchVisitedUsersByExactName(realName)); } @Operation(summary = "按属地单位名称精确匹配搜索") @GetMapping("/local-units") public Result> searchLocalUnits( @RequestParam(required = false) String unitName) { return ResultUtil.data(miniLookupApplicationService.searchLocalUnitsByExactName(unitName)); } @Operation(summary = "获取通行区域树") @GetMapping("/pass-access-area-tree") public Result> passAccessAreaTree() { return ResultUtil.data(miniLookupApplicationService.listPassAccessAreaTree()); } }