| package com.doumee.api.business; | 
|   | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.doumee.api.BaseController; | 
| import com.doumee.core.annotation.excel.ExcelExporter; | 
| import com.doumee.core.annotation.pr.PreventRepeat; | 
| import com.doumee.service.business.third.model.ApiResponse; | 
| import com.doumee.service.business.third.model.LoginUserInfo; | 
| import com.doumee.service.business.third.model.PageWrap; | 
| import com.doumee.service.business.third.model.PageData; | 
| 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.apache.shiro.authz.annotation.RequiresPermissions; | 
| 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("/business/rooms") | 
| public class RoomsController extends BaseController { | 
|   | 
|     @Autowired | 
|     private RoomsService roomsService; | 
|   | 
|     @Autowired | 
|     private RoomTimeService roomTimeService; | 
|     @PreventRepeat | 
|     @ApiOperation("新建") | 
|     @PostMapping("/create") | 
|     @RequiresPermissions("business:rooms:create") | 
|     public ApiResponse create(@RequestBody Rooms rooms) { | 
|         return ApiResponse.success(roomsService.create(rooms)); | 
|     } | 
|   | 
|     @ApiOperation("根据ID删除") | 
|     @GetMapping("/delete/{id}") | 
|     @RequiresPermissions("business:rooms:delete") | 
|     public ApiResponse deleteById(@PathVariable Integer id) { | 
|         roomsService.deleteById(id); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|     @ApiOperation("批量删除") | 
|     @GetMapping("/delete/batch") | 
|     @RequiresPermissions("business:rooms:delete") | 
|     public ApiResponse deleteByIdInBatch(@RequestParam String ids) { | 
|         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") | 
|     @RequiresPermissions("business:rooms:update") | 
|     public ApiResponse updateById(@RequestBody Rooms rooms) { | 
|         roomsService.updateById(rooms); | 
|         return ApiResponse.success(null); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("修改状态") | 
|     @PostMapping("/updateStatusById") | 
|     @RequiresPermissions("business:rooms:update") | 
|     public ApiResponse updateStatusById(@RequestBody Rooms rooms) { | 
|         roomsService.updateStatusById(rooms,this.getLoginUser(null)); | 
|         return ApiResponse.success(null); | 
|     } | 
|     @ApiOperation("分页查询") | 
|     @PostMapping("/page") | 
|     @RequiresPermissions("business:rooms:query") | 
|     public ApiResponse<PageData<Rooms>> findPage (@RequestBody PageWrap<Rooms> pageWrap) { | 
|         return ApiResponse.success(roomsService.findPage(pageWrap)); | 
|     } | 
|   | 
|     @ApiOperation("查询是否存在预约记录") | 
|     @GetMapping("/recordisExist") | 
|     @RequiresPermissions("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") | 
|     @RequiresPermissions("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}") | 
|     @RequiresPermissions("business:rooms:query") | 
|     public ApiResponse findById(@PathVariable Integer id) { | 
|         return ApiResponse.success(roomsService.findById(id)); | 
|     } | 
|   | 
|   | 
|     @ApiOperation("查询有效的会议室记录数据") | 
|     @PostMapping("/findList") | 
|     @RequiresPermissions("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) { | 
|         LoginUserInfo user = getLoginUser(null); | 
|         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,@RequestParam String token, HttpServletResponse response) throws  Exception { | 
|         LoginUserInfo user = getLoginUser(null); | 
|         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) { | 
|         LoginUserInfo user = getLoginUser(null); | 
|         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)); | 
|     } | 
|   | 
|   | 
| } |