| | |
| | | import com.tourguide.common.api.ApiResponse; |
| | | import com.tourguide.common.api.PageResponse; |
| | | import com.tourguide.modules.user.dto.*; |
| | | import com.tourguide.modules.user.service.GuideAutoDisableService; |
| | | import com.tourguide.modules.user.service.GuideUserService; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | @RequestMapping("/api/admin/guide-users") |
| | | public class AdminGuideUserController { |
| | | private final GuideUserService userService; |
| | | public AdminGuideUserController(GuideUserService userService) { this.userService = userService; } |
| | | private final GuideAutoDisableService autoDisableService; |
| | | |
| | | public AdminGuideUserController(GuideUserService userService, |
| | | GuideAutoDisableService autoDisableService) { |
| | | this.userService = userService; |
| | | this.autoDisableService = autoDisableService; |
| | | } |
| | | |
| | | /** |
| | | * 分页查询导游账号,支持基础关键字、状态、日期、评级、团队类型和白名单筛选。 |
| | |
| | | @PutMapping("/{id}/status") |
| | | public ApiResponse<Void> updateStatus(@PathVariable Long id, @Valid @RequestBody UserStatusRequest request) { |
| | | userService.updateStatus(id, request.getStatus()); |
| | | if (request.getStatus() == GuideUserService.STATUS_ENABLED) { |
| | | autoDisableService.disableGuideIfEligible(id); |
| | | } |
| | | return ApiResponse.success(); |
| | | } |
| | | |
| | |
| | | @PutMapping("/{id}/whitelist") |
| | | public ApiResponse<Void> updateWhitelist(@PathVariable Long id, @Valid @RequestBody GuideWhitelistRequest request) { |
| | | userService.updateWhitelist(id, request.getEnabled()); |
| | | if (!request.getEnabled()) { |
| | | autoDisableService.disableGuideIfEligible(id); |
| | | } |
| | | return ApiResponse.success(); |
| | | } |
| | | |
| | |
| | | @PutMapping("/auto-disable/config") |
| | | public ApiResponse<GuideAutoDisableConfigResponse> updateAutoDisableConfig( |
| | | @Valid @RequestBody GuideAutoDisableConfigRequest request) { |
| | | return ApiResponse.success(userService.updateAutoDisableConfig(request)); |
| | | GuideAutoDisableConfigResponse config = userService.updateAutoDisableConfig(request); |
| | | autoDisableService.disableEligibleGuides(); |
| | | return ApiResponse.success(config); |
| | | } |
| | | } |