7月8日开发日志
编写实体类的VO,用于向前端返回包装好的数据
package com.rjxy.Controller;
import com.rjxy.Entity.Meeting;
import com.rjxy.Entity.MeetingResult;
import com.rjxy.Entity.User;
import com.rjxy.Enum.ErrorEnum;
import com.rjxy.Model.MyHistoryMeetingResultVo;
import com.rjxy.Model.MyMeetingVo;
import com.rjxy.Results.Result;
import com.rjxy.Service.MeetingResultService;
import com.rjxy.Service.MeetingService;
import com.rjxy.Service.UserService;
import com.rjxy.Util.SessionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@CrossOrigin
@RestController
@RequestMapping("/manage_meeting")
public class ManageMeetingController {
@Autowired
private MeetingResultService meetingResultService;
@Autowired
private MeetingService meetingService;
@Autowired
private UserService userService;
@GetMapping("/my_meeting_list")
public Result<List<MyMeetingVo>> GetMyInstantMeetingList(HttpServletRequest request) {
User user = SessionUtil.GetUser(request);
if (user == null || user.getId() == 0) {
// 返回用户不存在的错误
return Result.error(ErrorEnum.UserNotExistError);
}
List<Meeting> firstResult = meetingService.getMyMeeting(user.getId());
List<MyMeetingVo> result = new ArrayList<>();
if (firstResult != null){
for (Meeting meeting : firstResult) {
User host_user = userService.getUserById(meeting.getHostId());
MyMeetingVo aMeeting = new MyMeetingVo();
aMeeting.setMeeting(meeting, host_user);
result.add(aMeeting);
}
}
return Result.success(result);
}
@GetMapping("/historical_meeting_list")
public Result<List<MyHistoryMeetingResultVo>> GetHistoricalMeetingList(HttpServletRequest request,
@RequestParam("start_time") Long startTime,
@RequestParam("end_time") Long endTime) {
User user = SessionUtil.GetUser(request);
if (user == null || user.getId() == 0) {
return Result.error(ErrorEnum.UserNotExistError);
}
List<Meeting> userHistoryMeetingList = meetingService.getUserHistoryMeetingList(user.getId(), startTime, endTime);
List<MyHistoryMeetingResultVo> result = new ArrayList<>();
for (Meeting meeting : userHistoryMeetingList) {
result.add(new MyHistoryMeetingResultVo(meeting.getId(), meeting.getMeetingNumber(), meeting.getTopic(), meeting.getStartTime(), meeting.getEndTime(), meetingResultService.getParticipantsByMeetingId(meeting.getId())));
}
return Result.success(result);
}
@GetMapping("/meeting_record")
public Result<MeetingResult> GetMeetingResult(){
return Result.success(null);
}
}
编写sessionUtil工具类,用于向前端返回用户session
package com.rjxy.Util;
import com.rjxy.Entity.User;
import com.rjxy.Exception.UserNotExistException;
import com.rjxy.Repository.UserRepository;
import com.rjxy.Service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@Component
public class SessionUtil {
private static UserService userService;
private static UserRepository userRepository;
@Autowired
private void setUserSerService(UserService userService) {
SessionUtil.userService = userService;
}
@Autowired
private void setUserRepository(UserRepository userRepository) {
SessionUtil.userRepository = userRepository;
}
public static User GetUser(HttpServletRequest request){
HttpSession session = request.getSession(false);
if (session == null) {
return null;
}
Object userId = session.getAttribute("user_id");
if (userId != null) {
return userService.getUserById((Integer) userId);
}
return null;
}
public static void setUserId(HttpServletRequest request, Integer userId) throws UserNotExistException {
if (userId == null ) {
return;
}
System.out.println("这里是:"+userId);
System.out.println("注入"+userService);
User user = userService.getUserById(userId);
if (user == null || user.getId() == 0) {
throw new UserNotExistException();
}
HttpSession session = request.getSession(true);
session.setAttribute("user_id", userId);
session.setMaxInactiveInterval(60 * 60 * 12 * 2); // 过期时间为2天
}
}