|  |  | 
 |  |  | import com.alibaba.fastjson.JSONArray; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | 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.service.business.third.model.ApiResponse; | 
 |  |  | import com.doumee.service.business.third.model.LoginUserInfo; | 
 |  |  | import com.doumee.service.business.third.model.PageData; | 
 |  |  | import com.doumee.service.business.third.model.PageWrap; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.core.utils.DateUtil; | 
 |  |  | import com.doumee.dao.business.model.Bookings; | 
 |  |  | 
 |  |  | 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.util.CollectionUtils; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | 
 |  |  |     @PreventRepeat | 
 |  |  |     @ApiOperation("新建") | 
 |  |  |     @PostMapping("/create") | 
 |  |  |     @RequiresPermissions("business:bookings:create") | 
 |  |  |     @CloudRequiredPermission("business:bookings:create") | 
 |  |  |     public ApiResponse create(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         LoginUserInfo user = getLoginUser(token); | 
 |  |  |         bookings.setLoginUserInfo(user); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("根据ID删除") | 
 |  |  |     @GetMapping("/delete/{id}") | 
 |  |  |     @RequiresPermissions("business:bookings:delete") | 
 |  |  |     @CloudRequiredPermission("business:bookings:delete") | 
 |  |  |     public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         bookingsService.deleteById(id,this.getLoginUser(token)); | 
 |  |  |         return ApiResponse.success(null); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("批量删除") | 
 |  |  |     @GetMapping("/delete/batch") | 
 |  |  |     @RequiresPermissions("business:bookings:delete") | 
 |  |  |     @CloudRequiredPermission("business:bookings:delete") | 
 |  |  |     public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         String [] idArray = ids.split(","); | 
 |  |  |         List<Integer> idList = new ArrayList<>(); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("根据ID修改") | 
 |  |  |     @PostMapping("/updateById") | 
 |  |  |     @RequiresPermissions("business:bookings:update") | 
 |  |  |     @CloudRequiredPermission("business:bookings:update") | 
 |  |  |     public ApiResponse updateById(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         LoginUserInfo user = getLoginUser(token); | 
 |  |  |         bookings.setLoginUserInfo(user); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("分页查询") | 
 |  |  |     @PostMapping("/page") | 
 |  |  |     @RequiresPermissions("business:bookings:query") | 
 |  |  |     @CloudRequiredPermission("business:bookings:query") | 
 |  |  |     public ApiResponse<PageData<Bookings>> findPage (@RequestBody PageWrap<Bookings> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token)); | 
 |  |  |         return ApiResponse.success(bookingsService.findPage(pageWrap)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("导出Excel") | 
 |  |  |     @PostMapping("/exportExcel") | 
 |  |  |     @RequiresPermissions("business:bookings:exportExcel") | 
 |  |  |     @CloudRequiredPermission("business:bookings:exportExcel") | 
 |  |  |     public void exportExcel (@RequestBody PageWrap<Bookings> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token)); | 
 |  |  |         ExcelExporter.build(Bookings.class).export(bookingsService.findPage(pageWrap).getRecords(), "会议室预定信息表", response); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("根据ID查询") | 
 |  |  |     @GetMapping("/{id}") | 
 |  |  |     @RequiresPermissions("business:bookings:query") | 
 |  |  |     @CloudRequiredPermission("business:bookings:query") | 
 |  |  |     public ApiResponse<MeetingDetailResponse> findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         return ApiResponse.success(bookingsService.getMeetingDetail(id)); | 
 |  |  |         return ApiResponse.success(bookingsService.getMeetingDetail(id,getLoginUser(token).getId())); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("根据日期和会议室主键查询占用信息") | 
 |  |  |     @PostMapping("/getMeetingDetailByDate") | 
 |  |  |     @CloudRequiredPermission("business:bookings:query") | 
 |  |  |     public ApiResponse<MeetingDetailResponse> getMeetingDetailByDate(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         return ApiResponse.success(bookingsService.getMeetingDetailByDate(bookings)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("取消") | 
 |  |  |     @PostMapping("/cancelById") | 
 |  |  |     @RequiresPermissions("business:bookings:update") | 
 |  |  |     @CloudRequiredPermission("business:bookings:update") | 
 |  |  |     public ApiResponse cancelById(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         bookings.setLoginUserInfo(this.getLoginUser(token)); | 
 |  |  |         bookingsService.cancelById(bookings); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("会议室使用时长统计") | 
 |  |  |     @GetMapping("/getRoomStatistics") | 
 |  |  |     @RequiresPermissions("business:bookings:update") | 
 |  |  |     @CloudRequiredPermission("business:bookings:update") | 
 |  |  |     public ApiResponse<List<RoomStatisticsVo>> getRoomStatistics(@RequestParam Integer yearNum, @RequestParam Integer roomId){ | 
 |  |  |         return ApiResponse.success(bookingsService.getRoomStatistics(yearNum)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("人员参加会议时常") | 
 |  |  |     @PostMapping("/getUserStatistics") | 
 |  |  |     @RequiresPermissions("business:bookings:update") | 
 |  |  |     @CloudRequiredPermission("business:bookings:update") | 
 |  |  |     public ApiResponse<PageData<UserStatisticsVo>> getUserStatistics(@RequestBody PageWrap<UserStatisticsDTO> pageWrap ){ | 
 |  |  |         return ApiResponse.success(bookingsService.getUserStatistics(pageWrap)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @ApiOperation("人员参会时长统计导出Excel") | 
 |  |  |     @PostMapping("/exportUserStatistics") | 
 |  |  |     @RequiresPermissions("business:bookings:exportExcel") | 
 |  |  |     @CloudRequiredPermission("business:bookings:exportExcel") | 
 |  |  |     public void exportUserStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |  | 
 |  |  |         List<UserStatisticsVo> records = bookingsService.getUserStatistics(pageWrap).getRecords(); | 
 |  |  |         if (!CollectionUtils.isEmpty(records)){ | 
 |  |  |             JSONArray o = (JSONArray) JSON.toJSON(records); | 
 |  |  | 
 |  |  |  | 
 |  |  |     @ApiOperation("会议室使用时长统计导出Excel") | 
 |  |  |     @PostMapping("/exportRoomStatistics") | 
 |  |  |     @RequiresPermissions("business:bookings:exportExcel") | 
 |  |  |     @CloudRequiredPermission("business:bookings:exportExcel") | 
 |  |  |     public void exportRoomStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ | 
 |  |  |         List<RoomStatisticsVo> roomStatistics = bookingsService.getRoomStatistics(pageWrap.getModel().getYearNum()); | 
 |  |  |         if (!CollectionUtils.isEmpty(roomStatistics)){ |