package com.doumee.cloud.web;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.doumee.api.BaseController;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.dao.business.model.Bookings;
|
import com.doumee.dao.system.vo.UserResponse;
|
import com.doumee.dao.web.request.BookingsRequest;
|
import com.doumee.dao.web.request.MeetingPageRequest;
|
import com.doumee.dao.web.request.UserPageRequest;
|
import com.doumee.dao.web.response.MeetingDetailResponse;
|
import com.doumee.dao.web.response.MeetingListResponse;
|
import com.doumee.dao.web.response.MonthDataResponse;
|
import com.doumee.service.business.BookingsService;
|
import com.doumee.service.system.SystemUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* Created by IntelliJ IDEA.
|
*
|
* @Author : Rk
|
* @create 2023/5/6 10:16
|
*/
|
|
@Api(tags = "2、预定会议业务")
|
@Trace(exclude = true)
|
@RestController
|
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/meeting")
|
@Slf4j
|
public class MeetingApi extends BaseController {
|
|
@Autowired
|
private BookingsService bookingsService;
|
|
@Autowired
|
private SystemUserService systemUserService;
|
|
|
|
@ApiOperation(value = "当月会议表", notes = "当月会议表")
|
@GetMapping("/monthMeeting")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "yearMonth", value = "年月 yyyy-MM", required = true)
|
})
|
public ApiResponse<List<MonthDataResponse>> monthDay(@RequestParam String yearMonth
|
,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
List<String> dataList = DateUtil.getDayByMonth(yearMonth);
|
List<MonthDataResponse> monthDataResponseList = new ArrayList<>();
|
List<Bookings> bookings = bookingsService.getMyBookings(user.getId(),yearMonth);
|
for (String str:dataList) {
|
MonthDataResponse monthDataResponse = new MonthDataResponse();
|
monthDataResponse.setWeekMsg(DateUtil.getWeek(DateUtil.StringToDate(str,"yyyy-MM-dd")).getChineseName());
|
monthDataResponse.setMonthDate(str);
|
monthDataResponse.setMeetingNum(bookings.stream()
|
.filter(b-> DateUtil.dateToString(b.getStartTime(),"yyyy-MM-dd").equals(str)).collect(Collectors.toList()).size());
|
monthDataResponseList.add(monthDataResponse);
|
}
|
return ApiResponse.success("查询成功",monthDataResponseList);
|
}
|
|
@ApiOperation("我的会议列表")
|
@PostMapping("/myMeetingPage")
|
public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap
|
,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
pageWrap.getModel().setUserId(user.getId());
|
IPage<MeetingListResponse> page = bookingsService.getMyMeetingPage(pageWrap);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
|
@ApiOperation("会议详情")
|
@GetMapping("/meetingDetail")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
|
})
|
public ApiResponse<MeetingDetailResponse> meetingDetail(@RequestParam Integer id) {
|
return ApiResponse.success("查询成功", bookingsService.getMeetingDetail(id));
|
}
|
|
|
/* @ApiOperation("获取会议开门二维码")
|
@GetMapping("/getQrCode")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
|
})
|
public ApiResponse<String> getQrCode(@RequestParam Integer id) {
|
return ApiResponse.success("查询成功", bookingsService.getQrCode(id,getMemberId()));
|
}
|
// @LoginRequired
|
@ApiOperation("获取会议开门二维码-图片流")
|
@GetMapping("/getQrCodeImg")
|
@ApiImplicitParams({
|
// @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public void getQrCodeImg(@RequestParam Integer id,@RequestParam String token, HttpServletResponse response) throws Exception {
|
Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
|
response.setHeader("Cache-Control", "no-store, no-cache");
|
response.setContentType("image/jpeg");
|
String content =bookingsService.getQrCode(id,memberId);
|
QrCodeUtils.encode(content,null, response.getOutputStream(), true);
|
}*/
|
|
|
@ApiOperation("参会人员分页")
|
@PostMapping("/userPage")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<IPage<UserResponse>> userPage(@RequestBody PageWrap<UserPageRequest> pageWrap) {
|
IPage<UserResponse> page = bookingsService.getUserPage(pageWrap);
|
return ApiResponse.success("查询成功", page);
|
}
|
|
|
@ApiOperation("会议预约")
|
@PostMapping("/reservationMeeting")
|
public ApiResponse<Integer> reservationMeeting(@RequestBody BookingsRequest bookingsRequest ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
bookingsRequest.setCreator(user.getId());
|
bookingsRequest.setEditor(user.getId());
|
bookingsRequest.setLoginUserInfo(user);
|
return ApiResponse.success("操作成功",bookingsService.reservationMeeting(bookingsRequest));
|
}
|
|
@ApiOperation("取消会议预约")
|
@GetMapping("/reservationCancel")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
|
})
|
public ApiResponse reservationCancel(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
bookingsService.reservationCancel(id,user.getId());
|
return ApiResponse.success("操作成功");
|
}
|
|
|
|
}
|