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<UserFeedbackResponse> create(@AuthenticationPrincipal AppUserPrincipal principal,
|
@Valid @RequestBody MiniFeedbackCreateRequest request) {
|
MiniUser user = userService.findEnabledById(principal.getUserId());
|
return ApiResponse.success(feedbackService.createVisitor(user, request.getContent()));
|
}
|
}
|