package com.doumee.cloud.web;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.doumee.config.Jwt.JwtTokenUtil;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.core.utils.QrCodeUtils;
|
import com.doumee.dao.business.model.Bookings;
|
import com.doumee.dao.web.request.BookingsRequest;
|
import com.doumee.dao.web.request.MeetingPageRequest;
|
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 javax.servlet.http.HttpServletResponse;
|
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("/web/meeting")
|
@Slf4j
|
public class MeetingApi extends ApiController{
|
|
@Autowired
|
private BookingsService bookingsService;
|
|
@Autowired
|
private SystemUserService systemUserService;
|
|
|
@ApiOperation(value = "当月会议表", notes = "当月会议表")
|
@GetMapping("/monthMeeting")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "String", name = "yearMonth", value = "年月 yyyy-MM", required = true)
|
})
|
public ApiResponse<List<MonthDataResponse>> monthDay(@RequestParam String yearMonth) {
|
List<String> dataList = DateUtil.getDayByMonth(yearMonth);
|
List<MonthDataResponse> monthDataResponseList = new ArrayList<>();
|
List<Bookings> bookings = bookingsService.getMyBookings(getMemberId(),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")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap) {
|
pageWrap.getModel().setUserId(getMemberId());
|
IPage<MeetingListResponse> page = bookingsService.getMyMeetingPage(pageWrap);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
|
@ApiOperation("会议详情")
|
@GetMapping("/meetingDetail")
|
@ApiImplicitParams({
|
// @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@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);
|
}
|
|
/*
|
@LoginRequired
|
@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 = systemUserService.getUserPage(pageWrap);
|
return ApiResponse.success("查询成功", page);
|
}
|
*/
|
|
|
@ApiOperation("会议预约")
|
@PostMapping("/reservationMeeting")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<Integer> reservationMeeting(@RequestBody BookingsRequest bookingsRequest) {
|
bookingsRequest.setCreator(getMemberId());
|
bookingsRequest.setEditor(getMemberId());
|
return ApiResponse.success("操作成功",bookingsService.reservationMeeting(bookingsRequest));
|
}
|
|
@ApiOperation("取消会议预约")
|
@GetMapping("/reservationCancel")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
|
})
|
public ApiResponse reservationCancel(@RequestParam Integer id) {
|
bookingsService.reservationCancel(id,getMemberId());
|
return ApiResponse.success("操作成功");
|
}
|
|
|
|
}
|