diff --git a/src/main/java/com/sdut/labex/controller/BorrowInfoController.java b/src/main/java/com/sdut/labex/controller/BorrowInfoController.java index 7bb0b4c..771cd78 100644 --- a/src/main/java/com/sdut/labex/controller/BorrowInfoController.java +++ b/src/main/java/com/sdut/labex/controller/BorrowInfoController.java @@ -6,6 +6,7 @@ import com.sdut.labex.Factory.BorrowInfoFactory; import com.sdut.labex.entity.BorrowInfo; import com.sdut.labex.service.BorrowInfoService; import com.sdut.labex.utils.ResVo; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -20,6 +21,7 @@ import java.util.List; */ @RestController @CrossOrigin +@Slf4j public class BorrowInfoController { @Resource @@ -60,6 +62,10 @@ public class BorrowInfoController { @PathVariable("pageNum") int pageNum, @PathVariable("pageSize") int pageSize) { BorrowInfo borrowInfo = BorrowInfoFactory.createBorrowInfo(jsonObject); + if (borrowInfo != null) { + borrowInfo.setTime(jsonObject.getString("time")); + } + log.error("borrowInfo: " + borrowInfo); return borrowInfoService.getBorrowInfo(borrowInfo, pageNum, pageSize); } } diff --git a/src/main/java/com/sdut/labex/controller/TableController.java b/src/main/java/com/sdut/labex/controller/TableController.java index 1311f7d..bf0c84e 100644 --- a/src/main/java/com/sdut/labex/controller/TableController.java +++ b/src/main/java/com/sdut/labex/controller/TableController.java @@ -3,6 +3,7 @@ package com.sdut.labex.controller; import com.alibaba.fastjson.JSONObject; import com.sdut.labex.service.TableService; import com.sdut.labex.utils.ResVo; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -14,6 +15,7 @@ import javax.annotation.Resource; * Author: springforest * Description: */ +@Slf4j @RestController @CrossOrigin public class TableController { diff --git a/src/main/java/com/sdut/labex/dto/BorrowInfoDTO.java b/src/main/java/com/sdut/labex/dto/BorrowInfoDTO.java new file mode 100644 index 0000000..4ae8b15 --- /dev/null +++ b/src/main/java/com/sdut/labex/dto/BorrowInfoDTO.java @@ -0,0 +1,20 @@ +package com.sdut.labex.dto; + +import lombok.Data; + +/** + * File: BorrowInfoDTO + * Created: 2023/6/17 + * Author: springforest + * Description: + */ +@Data +public class BorrowInfoDTO { + private Integer id; + private String roomName; + private String date; + private String time; + private String applyUser; + private String applyDate; + private int isAdmit; +} diff --git a/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java b/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java index ee28bad..4ce5fe7 100644 --- a/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java +++ b/src/main/java/com/sdut/labex/mapper/BorrowInfoMapper.java @@ -22,8 +22,6 @@ public interface BorrowInfoMapper extends BaseMapper { public void addTimeTable(Map map); - public List listAllByDateAndRoom(String date, String room); - public List notBorrowedYet(@Param("timeList") List timeList, @Param("date") String date); } diff --git a/src/main/java/com/sdut/labex/service/impl/BorrowInfoServiceImpl.java b/src/main/java/com/sdut/labex/service/impl/BorrowInfoServiceImpl.java index bcec34c..7120c02 100644 --- a/src/main/java/com/sdut/labex/service/impl/BorrowInfoServiceImpl.java +++ b/src/main/java/com/sdut/labex/service/impl/BorrowInfoServiceImpl.java @@ -4,15 +4,18 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sdut.labex.dto.BorrowInfoDTO; import com.sdut.labex.entity.BorrowInfo; import com.sdut.labex.entity.Room; import com.sdut.labex.mapper.BorrowInfoMapper; import com.sdut.labex.service.BorrowInfoService; +import com.sdut.labex.utils.FormatDate; import com.sdut.labex.utils.ResVo; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -80,17 +83,28 @@ public class BorrowInfoServiceImpl extends ServiceImpl page = new Page<>(pageNum, pageSize); borrowInfoMapper.queryBorrowInfoByOptions(page, borrowInfo); + + List list = page.getRecords(); + List resList = new ArrayList<>(); + for (BorrowInfo item : list) { + BorrowInfoDTO m = new BorrowInfoDTO(); + BeanUtil.copyProperties(item, m); + m.setDate(FormatDate.formatDate(item.getDate())); + m.setApplyDate(FormatDate.formatDate(item.getApplyDate())); + resList.add(m); + } + Map res = new HashMap<>(); res.put("total", page.getTotal()); res.put("current", page.getCurrent()); - res.put("list", page.getRecords()); + res.put("list", resList); return ResVo.ok(res); } @Override public ResVo notBorrowedYet(List timeList, String date) { List RBI = borrowInfoMapper.notBorrowedYet(timeList, date); - + Map res = new HashMap<>(); res.put("list", RBI); return ResVo.ok(res); diff --git a/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java b/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java index bd482c0..50a0152 100644 --- a/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java +++ b/src/main/java/com/sdut/labex/service/impl/TableServiceImpl.java @@ -41,15 +41,17 @@ public class TableServiceImpl implements TableService { @Override public ResVo getUnUsedTable(String room, String date) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("date", date); + queryWrapper.eq("date", date) + .eq("room_name", room); List borrowedList = borrowInfoMapper.selectList(queryWrapper); - - Map> tempMap = new HashMap<>(); + Map> tempMap = new HashMap<>(); + // 获取所有教室 List roomList = roomMapper.selectList(null); - List timeOptionList = timeOptionMapper.selectList(new QueryWrapper().orderByAsc("order_number")); + // 获取所有时间(按顺序) + List timeOptionList = timeOptionMapper.selectList(null); for (TimeOption time : timeOptionList) { - Set rooms = new HashSet<>(); + List rooms = new ArrayList<>(); tempMap.put(time.getName(), rooms); } @@ -60,17 +62,21 @@ public class TableServiceImpl implements TableService { Map map = new HashMap<>(); List> res = new ArrayList<>(); + // 获取不在borrowedList中的教室 for (TimeOption key : timeOptionList) { List rooms = new ArrayList<>(); - for (Room item : roomMapper.selectList(new QueryWrapper().in("name", tempMap.get(key.getName())))) { - rooms.add(item.getName()); + for (Room item : roomList) { + if (!tempMap.get(key.getName()).contains(item.getName())) { + rooms.add(item.getName()); + } } res.add(rooms); } + // Remove rooms that are not equal to the provided room when room is not null if (room != null && !room.isEmpty()) { for (List rooms : res) { - rooms.removeIf(r -> !r.contains(room)); + rooms.removeIf(r -> !r.equals(room)); } } diff --git a/src/main/java/com/sdut/labex/utils/FormatDate.java b/src/main/java/com/sdut/labex/utils/FormatDate.java new file mode 100644 index 0000000..37a6399 --- /dev/null +++ b/src/main/java/com/sdut/labex/utils/FormatDate.java @@ -0,0 +1,29 @@ +package com.sdut.labex.utils; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * File: FormatDate + * Created: 2023/6/17 + * Author: springforest + * Description: + */ + +public class FormatDate { + public static String formatDate(Date date) { + SimpleDateFormat dateFormat; + if (isMidnightTime(date)) { + dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + } else { + dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + } + return dateFormat.format(date); + } + + private static boolean isMidnightTime(Date date) { + SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + String timeString = timeFormat.format(date); + return timeString.equals("00:00:00"); + } +} diff --git a/src/main/resources/mapper/BorrowInfoMapper.xml b/src/main/resources/mapper/BorrowInfoMapper.xml index 9b4c45b..3fcb94a 100644 --- a/src/main/resources/mapper/BorrowInfoMapper.xml +++ b/src/main/resources/mapper/BorrowInfoMapper.xml @@ -18,22 +18,22 @@ VALUES (#{applyUser}, #{time}, #{date}, #{applyDate}, 1, #{roomName}); - - select * from borrow_info - - date = #{date} + + + and date = #{borrowInfo.date} - - and room_name = #{room} + + and time = #{borrowInfo.time} + + + and room_name = #{borrowInfo.roomName} +