From f75e3a4b3e9f53bfaddf89ab4bc1d45101d46279 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 10 五月 2024 15:54:17 +0800
Subject: [PATCH] 代码初始化

---
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsController.java |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 211 insertions(+), 0 deletions(-)

diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsController.java
new file mode 100644
index 0000000..68a756e
--- /dev/null
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsController.java
@@ -0,0 +1,211 @@
+package com.doumee.cloud.admin;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.api.BaseController;
+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.DateUtil;
+import com.doumee.dao.business.model.Bookings;
+import com.doumee.dao.business.vo.RoomStatisticsVo;
+import com.doumee.dao.system.dto.UserStatisticsDTO;
+import com.doumee.dao.system.vo.UserStatisticsVo;
+import com.doumee.dao.web.response.DateTimeResourceDate;
+import com.doumee.dao.web.response.MeetingDetailResponse;
+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.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/05/04 18:18
+ */
+@Api(tags = "浼氳瀹ら瀹氫俊鎭〃")
+@RestController 
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/bookings")
+public class BookingsController extends BaseController {
+
+    @Autowired
+    private BookingsService bookingsService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:bookings:create")
+    public ApiResponse create(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo user = getLoginUser(token);
+        bookings.setCreator(user.getId());
+        return ApiResponse.success(bookingsService.create(bookings));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:bookings:delete")
+    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        bookingsService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:bookings: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));
+        }
+        bookingsService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:bookings:update")
+    public ApiResponse updateById(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        LoginUserInfo user = getLoginUser(token);
+        bookings.setCreator(user.getId());
+        bookingsService.updateById(bookings);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:bookings:query")
+    public ApiResponse<PageData<Bookings>> findPage (@RequestBody PageWrap<Bookings> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(bookingsService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:bookings:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<Bookings> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(Bookings.class).export(bookingsService.findPage(pageWrap).getRecords(), "浼氳瀹ら瀹氫俊鎭〃", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:bookings:query")
+    public ApiResponse<MeetingDetailResponse> findById(@PathVariable Integer id) {
+        return ApiResponse.success(bookingsService.getMeetingDetail(id));
+    }
+
+
+    @ApiOperation("鍙栨秷")
+    @PostMapping("/cancelById")
+    @RequiresPermissions("business:bookings:update")
+    public ApiResponse cancelById(@RequestBody Bookings bookings) {
+        bookingsService.cancelById(bookings);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("浼氳瀹や娇鐢ㄦ椂闀跨粺璁�")
+    @GetMapping("/getRoomStatistics")
+    @RequiresPermissions("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")
+    public ApiResponse<PageData<UserStatisticsVo>> getUserStatistics(@RequestBody PageWrap<UserStatisticsDTO> pageWrap ){
+        return ApiResponse.success(bookingsService.getUserStatistics(pageWrap));
+    }
+
+    @ApiOperation("浜哄憳鍙備細鏃堕暱缁熻瀵煎嚭Excel")
+    @PostMapping("/exportUserStatistics")
+    @RequiresPermissions("business:bookings:exportExcel")
+    public void exportUserStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response) {
+
+        List<UserStatisticsVo> records = bookingsService.getUserStatistics(pageWrap).getRecords();
+        if (!CollectionUtils.isEmpty(records)){
+            JSONArray o = (JSONArray) JSON.toJSON(records);
+            o.forEach(s->{
+                JSONObject jsonObject = (JSONObject) s;
+                Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
+                for (Map.Entry<String, Object> entry:entries){
+
+                    if (entry.getValue() instanceof BigDecimal){
+                        BigDecimal value = (BigDecimal) entry.getValue();
+                        entry.setValue(value.compareTo(value.setScale(0, RoundingMode.DOWN)) > 0 ? value : value.setScale(0, RoundingMode.DOWN));
+                    }
+                }
+            });
+            records = o.toJavaList(UserStatisticsVo.class);
+        }
+        ExcelExporter.build(UserStatisticsVo.class).export(records, "浜哄憳鍙備細鏃堕暱缁熻", response);
+    }
+
+    @ApiOperation("浼氳瀹や娇鐢ㄦ椂闀跨粺璁″鍑篍xcel")
+    @PostMapping("/exportRoomStatistics")
+    @RequiresPermissions("business:bookings:exportExcel")
+    public void exportRoomStatistics (@RequestBody PageWrap<UserStatisticsDTO> pageWrap,HttpServletResponse response) {
+        List<RoomStatisticsVo> roomStatistics = bookingsService.getRoomStatistics(pageWrap.getModel().getYearNum());
+        if (!CollectionUtils.isEmpty(roomStatistics)){
+            JSONArray o = (JSONArray) JSON.toJSON(roomStatistics);
+            o.forEach(s->{
+                JSONObject jsonObject = (JSONObject) s;
+                Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
+                for (Map.Entry<String, Object> entry:entries){
+
+                    if (entry.getValue() instanceof BigDecimal){
+                        BigDecimal value = (BigDecimal) entry.getValue();
+                        entry.setValue(value.compareTo(value.setScale(0, RoundingMode.DOWN)) > 0 ? value : value.setScale(0, RoundingMode.DOWN));
+                    }
+                }
+            });
+            roomStatistics = o.toJavaList(RoomStatisticsVo.class);
+        }
+        ExcelExporter.build(RoomStatisticsVo.class).export(roomStatistics, "浼氳瀹や娇鐢ㄦ椂闀跨粺璁�", response);
+    }
+
+    @ApiOperation("鍙備笌鐨勯绾︿細璁�")
+    @GetMapping("/reservationCancel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "1 浠婂ぉ 2 鏈懆", required = true),
+    })
+    public ApiResponse<List<Bookings>> getMyJoinBookingMeet(@RequestParam Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+
+        LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(00,00,00));
+        LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.of(23,59,59));
+        if(Constants.equalsInteger(type,Constants.TWO)){
+            startTime =  DateUtil.getMonday();
+            endTime = DateUtil.getSunday();
+        }
+        return ApiResponse.success(bookingsService.getMyJoinBookingMeet(getLoginUser(token).getId(), null,startTime,endTime));
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛褰撳綋鏈堥绾︿細璁儏鍐�
+     * @return
+     */
+    @ApiOperation("鑾峰彇鐢ㄦ埛褰撳綋鏈堥绾︿細璁儏鍐�")
+    @PostMapping("/findMothBookingMeet")
+    public ApiResponse<List<DateTimeResourceDate>> findMothBookingMeet( @RequestParam(required = false) Integer roomId,String dateMonth,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(bookingsService.findMothBookingMeet(getLoginUser(token).getId(),roomId,dateMonth));
+    }
+}

--
Gitblit v1.9.3