package com.tourguide.api.mini; 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.MiniUser; import com.tourguide.modules.user.service.MiniUserService; 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/mini/feedback") public class MiniFeedbackController { private final UserFeedbackService feedbackService; private final MiniUserService userService; public MiniFeedbackController(UserFeedbackService feedbackService, MiniUserService userService) { this.feedbackService = feedbackService; this.userService = userService; } /** 提交当前登录游客的意见反馈。 */ @PostMapping public ApiResponse create(@AuthenticationPrincipal AppUserPrincipal principal, @Valid @RequestBody MiniFeedbackCreateRequest request) { MiniUser user = userService.findEnabledById(principal.getUserId()); return ApiResponse.success(feedbackService.createVisitor(user, request.getContent())); } }