package com.sinata.appointment.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; import com.sinata.appointment.common.Result; import com.sinata.appointment.common.ResultUtil; import com.sinata.appointment.dto.PassAreaCreateRequest; import com.sinata.appointment.dto.PassAreaDetailVo; import com.sinata.appointment.dto.PassAreaListVo; import com.sinata.appointment.dto.PassAreaUpdateRequest; import com.sinata.appointment.service.PassAreaManageApplicationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import java.util.Map; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; 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/sys/pass-access-areas") @RequiredArgsConstructor @Validated public class PassAreaManageController { private final PassAreaManageApplicationService passAreaManageApplicationService; @Operation(summary = "分页列表") @GetMapping @SaCheckPermission(value = {"sys:pass-areas:page", "appointments:page"}, mode = SaMode.OR) public Result> page( @RequestParam(defaultValue = "1") long page, @RequestParam(defaultValue = "10") long size, @RequestParam(defaultValue = "0") long pid, @RequestParam(required = false) String areaName) { return ResultUtil.page( passAreaManageApplicationService.page(page, size, pid, areaName)); } @Operation(summary = "详情") @GetMapping("/{id}") @SaCheckPermission("sys:pass-areas:detail") public Result detail( @PathVariable Long id, @RequestParam @NotBlank(message = "uuid 不能为空") String uuid) { return ResultUtil.data(passAreaManageApplicationService.detail(id, uuid)); } @Operation(summary = "新增") @PostMapping @SaCheckPermission("sys:pass-areas:create") public Result> create(@Valid @RequestBody PassAreaCreateRequest request) { return ResultUtil.data(passAreaManageApplicationService.create(request)); } @Operation(summary = "编辑") @PutMapping("/{id}") @SaCheckPermission("sys:pass-areas:update") public Result update(@PathVariable Long id, @Valid @RequestBody PassAreaUpdateRequest request) { passAreaManageApplicationService.update(id, request); return ResultUtil.success(); } @Operation(summary = "删除") @DeleteMapping("/{id}") @SaCheckPermission("sys:pass-areas:delete") public Result delete( @PathVariable Long id, @RequestParam @NotBlank(message = "uuid 不能为空") String uuid) { passAreaManageApplicationService.delete(id, uuid); return ResultUtil.success(); } }