package com.doumee.cloud.admin;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.doumee.api.BaseController;
|
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.core.utils.QrCodeUtils;
|
import com.doumee.dao.admin.request.BusinessOverDTO;
|
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 io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.shiro.SecurityUtils;
|
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 2024/4/29 9:42
|
*/
|
@Api(tags = "会议室预定信息表")
|
@RestController
|
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/meeting")
|
public class MeetingCloudController extends BaseController {
|
|
@Autowired
|
private BookingsService bookingsService;
|
|
|
@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, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
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")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = this.getLoginUser(token);
|
//(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
pageWrap.getModel().setUserId(user.getId());
|
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( @RequestHeader(Constants.HEADER_USER_TOKEN) String token,@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,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
return ApiResponse.success("查询成功", bookingsService.getQrCode(id,user.getId()));
|
}
|
|
@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,@RequestHeader(Constants.HEADER_USER_TOKEN) String token, HttpServletResponse response) throws Exception {
|
LoginUserInfo user = getLoginUser(token);
|
response.setHeader("Cache-Control", "no-store, no-cache");
|
response.setContentType("image/jpeg");
|
String content =bookingsService.getQrCode(id,user.getId());
|
QrCodeUtils.encode(content,null, response.getOutputStream(), true);
|
}
|
|
|
@ApiOperation("会议预约")
|
@PostMapping("/reservationMeeting")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
|
})
|
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(this.getLoginUser(token));
|
return ApiResponse.success("操作成功",bookingsService.reservationMeeting(bookingsRequest));
|
}
|
|
|
@ApiOperation("取消会议预约")
|
@PostMapping("/reservationCancel")
|
public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
businessOverDTO.setUserId(user.getId()) ;
|
bookingsService.reservationCancel(businessOverDTO);
|
return ApiResponse.success("操作成功");
|
}
|
|
@ApiOperation("提前结束会议")
|
@PostMapping("/reservationOver")
|
public ApiResponse reservationOver(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = getLoginUser(token);
|
businessOverDTO.setUserId(user.getId());
|
bookingsService.reservationOver(businessOverDTO);
|
return ApiResponse.success("操作成功");
|
}
|
|
|
|
}
|