package com.doumee.cloud.admin;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.doumee.api.BaseController;
|
import com.doumee.config.annotation.CloudRequiredPermission;
|
import com.doumee.core.annotation.excel.ExcelExporter;
|
import com.doumee.core.annotation.pr.PreventRepeat;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.QrCodeUtils;
|
import com.doumee.dao.business.model.RoomTime;
|
import com.doumee.dao.business.model.Rooms;
|
import com.doumee.dao.web.request.RoomTimeRequest;
|
import com.doumee.dao.web.request.RoomsRequest;
|
import com.doumee.dao.web.response.RoomsResponse;
|
import com.doumee.service.business.RoomTimeService;
|
import com.doumee.service.business.RoomsService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
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;
|
|
/**
|
* @author 江蹄蹄
|
* @date 2023/05/04 18:18
|
*/
|
@Api(tags = "会议室信息表")
|
@RestController
|
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/rooms")
|
public class RoomsCloudController extends BaseController {
|
|
@Autowired
|
private RoomsService roomsService;
|
|
@Autowired
|
private RoomTimeService roomTimeService;
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@CloudRequiredPermission("business:rooms:create")
|
public ApiResponse create(@RequestBody Rooms rooms,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
rooms.setLoginUserInfo(this.getLoginUser(token));
|
return ApiResponse.success(roomsService.create(rooms));
|
}
|
|
@ApiOperation("根据ID删除")
|
@GetMapping("/delete/{id}")
|
@CloudRequiredPermission("business:rooms:delete")
|
public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
roomsService.deleteById(id);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("批量删除")
|
@GetMapping("/delete/batch")
|
@CloudRequiredPermission("business:rooms:delete")
|
public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
String [] idArray = ids.split(",");
|
List<Integer> idList = new ArrayList<>();
|
for (String id : idArray) {
|
idList.add(Integer.valueOf(id));
|
}
|
roomsService.deleteByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("根据ID修改")
|
@PostMapping("/updateById")
|
@CloudRequiredPermission("business:rooms:update")
|
public ApiResponse updateById(@RequestBody Rooms rooms,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
rooms.setLoginUserInfo(this.getLoginUser(token));
|
roomsService.updateById(rooms);
|
return ApiResponse.success(null);
|
}
|
|
|
@ApiOperation("修改状态")
|
@PostMapping("/updateStatusById")
|
@CloudRequiredPermission("business:rooms:update")
|
public ApiResponse updateStatusById(@RequestBody Rooms rooms
|
,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = this.getLoginUser(token);
|
roomsService.updateStatusById(rooms,user);
|
return ApiResponse.success(null);
|
}
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@CloudRequiredPermission("business:rooms:query")
|
public ApiResponse<PageData<Rooms>> findPage (@RequestBody PageWrap<Rooms> pageWrap) {
|
return ApiResponse.success(roomsService.findPage(pageWrap));
|
}
|
|
@ApiOperation("查询是否存在预约记录")
|
@GetMapping("/recordisExist")
|
@CloudRequiredPermission("business:rooms:query")
|
public ApiResponse<JSONObject> recordisExist (Integer id) {
|
JSONObject jsonObject=new JSONObject();
|
Integer res=roomsService.recordisExist(id);
|
if(Constants.equalsInteger(res,Constants.ONE)){
|
jsonObject.put("code","1");
|
jsonObject.put("msg","false");
|
}else{
|
jsonObject.put("code","0");
|
jsonObject.put("msg","sucess");
|
}
|
return ApiResponse.success(jsonObject);
|
}
|
|
@ApiOperation("导出Excel")
|
@PostMapping("/exportExcel")
|
@CloudRequiredPermission("business:rooms:exportExcel")
|
public void exportExcel (@RequestBody PageWrap<Rooms> pageWrap, HttpServletResponse response) {
|
ExcelExporter.build(Rooms.class).export(roomsService.findPage(pageWrap).getRecords(), "会议室信息表", response);
|
}
|
|
@ApiOperation("根据ID查询")
|
@GetMapping("/{id}")
|
@CloudRequiredPermission("business:rooms:query")
|
public ApiResponse findById(@PathVariable Integer id) {
|
return ApiResponse.success(roomsService.findById(id));
|
}
|
|
|
@ApiOperation("查询有效的会议室记录数据")
|
@PostMapping("/findList")
|
@CloudRequiredPermission("business:rooms:query")
|
public ApiResponse<List<Rooms>> findList (@RequestBody Rooms rooms) {
|
return ApiResponse.success(roomsService.findList(rooms));
|
}
|
|
|
|
@ApiOperation("获取会议室开门二维码")
|
@GetMapping("/getQrCode")
|
@ApiImplicitParams({
|
@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 = this.getLoginUser(token);
|
return ApiResponse.success("查询成功", roomsService.getQrCode(id,user.getId()));
|
}
|
|
|
@ApiOperation("获取会议室开门二维码-图片流")
|
@GetMapping("/getQrCodeImg")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议室主键", required = true)
|
})
|
public void getQrCodeImg(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token, HttpServletResponse response) throws Exception {
|
LoginUserInfo user = this.getLoginUser(token);
|
response.setHeader("Cache-Control", "no-store, no-cache");
|
response.setContentType("image/jpeg");
|
String content =roomsService.getQrCode(id,user.getId());
|
QrCodeUtils.encode(content,null, response.getOutputStream(), true);
|
}
|
|
@ApiOperation("会议室列表")
|
@GetMapping("/roomsList")
|
public ApiResponse<List<RoomsResponse>> roomsList() {
|
return ApiResponse.success("查询成功",roomsService.getRoomsList());
|
}
|
|
@ApiOperation("会议室时间开放列表")
|
@PostMapping("/getRoomUseTime")
|
public ApiResponse<List<RoomTime>> getRoomUseTime(@RequestBody RoomTimeRequest roomTimeRequest) {
|
return ApiResponse.success("查询成功",roomTimeService.getRoomUseTime(roomTimeRequest));
|
}
|
|
@ApiOperation("我的会议室列表")
|
@PostMapping("/myRoomsPage")
|
public ApiResponse<IPage<RoomsResponse>> myRoomsPage(@RequestBody PageWrap<RoomsRequest> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
|
LoginUserInfo user = this.getLoginUser(token);
|
pageWrap.getModel().setUserId(user.getId());
|
IPage<RoomsResponse> page = roomsService.getRoomsPage(pageWrap);
|
return ApiResponse.success("查询成功",page);
|
}
|
|
|
@ApiOperation("会议室详情")
|
@GetMapping("/getRoomDetail")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "roomId", value = "会议室主键", required = true),
|
})
|
public ApiResponse<RoomsResponse> getRoomDetail(@RequestParam Integer roomId) {
|
return ApiResponse.success("查询成功",roomsService.getRoomDetail(roomId));
|
}
|
|
|
}
|