package com.tourguide.api.guide; import com.tourguide.common.api.ApiResponse; import com.tourguide.modules.feedback.dto.MiniFeedbackCreateRequest; import com.tourguide.modules.feedback.dto.UserFeedbackResponse; import com.tourguide.modules.feedback.service.UserFeedbackService; import com.tourguide.modules.user.entity.GuideUser; import com.tourguide.modules.user.service.GuideUserService; import com.tourguide.security.AppUserPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; /** 导游端意见反馈接口。 */ @RestController @RequestMapping("/api/guide/feedback") public class GuideFeedbackController { private final UserFeedbackService feedbackService; private final GuideUserService guideUserService; public GuideFeedbackController(UserFeedbackService feedbackService, GuideUserService guideUserService) { this.feedbackService = feedbackService; this.guideUserService = guideUserService; } /** 提交当前登录导游的意见反馈。 */ @PostMapping public ApiResponse create(@AuthenticationPrincipal AppUserPrincipal principal, @Valid @RequestBody MiniFeedbackCreateRequest request) { GuideUser guide = guideUserService.findEnabledById(principal.getUserId()); return ApiResponse.success(feedbackService.createGuide(guide, request.getContent())); } }