From 0faab4115850e9787bb6fd2ab4f279c086c1aaca Mon Sep 17 00:00:00 2001 From: chendaze <1824191732@qq.com> Date: Sat, 2 Mar 2024 17:03:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BC=9A=E8=AE=AE?= =?UTF-8?q?=E5=AE=A4=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/RoomContentController.java | 9 ++- .../RoomContentTypeEnumHandler.java | 45 +++++++++++ .../ics/admin/domain/meeting/RoomContent.java | 65 +++++++++++++++- .../ics/admin/domain/meeting/RoomServe.java | 4 + .../mapper/meeting/RoomItemByRoomMapper.java | 3 + .../impl/meeting/RoomContentServiceImpl.java | 76 ++++++++++++++++++- .../meeting/RoomItemByRoomServiceImpl.java | 7 ++ .../service/meeting/IRoomContentService.java | 3 + .../meeting/IRoomItemByRoomService.java | 3 + .../admin/meeting/RoomContentMapper.xml | 3 + .../admin/meeting/RoomItemByRoomMapper.xml | 13 +++- .../mapper/admin/meeting/RoomServeMapper.xml | 10 ++- .../meeting/ApiRoomContentController.java | 37 +++++---- 13 files changed, 256 insertions(+), 22 deletions(-) create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/enumHandler/RoomContentTypeEnumHandler.java diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomContentController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomContentController.java index 578b9a6..9bd637b 100644 --- a/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomContentController.java +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomContentController.java @@ -17,6 +17,8 @@ import com.ics.admin.domain.meeting.RoomContent; import com.ics.admin.service.meeting.IRoomContentService; import org.wf.jwtp.annotation.RequiresPermissions; +import java.util.List; + /** * 房间主体内容 提供者 * @@ -45,7 +47,12 @@ public class RoomContentController extends BaseController { @GetMapping("list") public R list(RoomContent roomContent) { startPage(); - return result(roomContentService.selectRoomContentList(roomContent)); + List roomContents = roomContentService.selectRoomContentList(roomContent); + for (RoomContent content : roomContents) { + content.setTypeValue(content.getType().getValue()); + content.setTypeName(content.getType().getName()); + } + return result(roomContents); } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/enumHandler/RoomContentTypeEnumHandler.java b/ics-admin/src/main/java/com/ics/admin/domain/enumHandler/RoomContentTypeEnumHandler.java new file mode 100644 index 0000000..486428c --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/enumHandler/RoomContentTypeEnumHandler.java @@ -0,0 +1,45 @@ +package com.ics.admin.domain.enumHandler; + +import com.ics.admin.domain.Activity; +import com.ics.admin.domain.meeting.RoomContent; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + + +/** + * @author 29361 + */ +@MappedJdbcTypes({JdbcType.INTEGER}) +@MappedTypes({RoomContent.Type.class}) +public class RoomContentTypeEnumHandler extends BaseTypeHandler { + @Override + public void setNonNullParameter(PreparedStatement preparedStatement, int i, RoomContent.Type status, JdbcType jdbcType) throws SQLException { + preparedStatement.setInt(i,status.getValue()); + } + + @Override + public RoomContent.Type getNullableResult(ResultSet resultSet, String columnName) throws SQLException { + int value = resultSet.getInt(columnName); + RoomContent.Type instance = RoomContent.Type.parse(value); + return instance; + } + + @Override + public RoomContent.Type getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException { + int value = resultSet.getInt(columnIndex); + RoomContent.Type instance = RoomContent.Type.parse(value); + return instance; + } + + @Override + public RoomContent.Type getNullableResult(CallableStatement callableStatement, int i) throws SQLException { + return null; + } +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomContent.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomContent.java index 3187135..49a27d4 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomContent.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomContent.java @@ -1,5 +1,6 @@ package com.ics.admin.domain.meeting; +import com.baomidou.mybatisplus.annotation.IEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ics.common.core.domain.BaseEntity; @@ -21,7 +22,69 @@ public class RoomContent extends BaseEntity { private static final long serialVersionUID = 1L; /** 类型(会议室、办公室、茶室、路演厅、) */ - private Integer type; + private Type type; + + @TableField(exist = false) + private String typeName; + + @TableField(exist = false) + private Integer typeValue; + + public enum Type implements IEnum { + + /** + * 报名未开始 + */ + MEETING_ROOM("会议室", 1), + + /** + * 报名中 + */ + OFFICE("办公室", 2), + + /** + * 活动未开始 + */ + TEE_ROOM("茶室", 3), + + + /** + * 已满额 + */ + ROADSHOW_HALL("路演厅", 4); + + /** + * 活动中 + */ + + + private String name; + private int value; + + Type(String name, int value) { + this.name = name; + this.value = value; + } + + @Override + public Integer getValue() { + return this.value; + } + + public String getName() { + return this.name; + } + + public static Type parse(Integer value) { + for (Type type1 : values()) { + if (type1.getValue().equals(value)) { + return type1; + } + } + return null; + } + } + /** 名称 */ private String meetingName; diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java index 3b6aadc..d23d4d1 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java @@ -24,6 +24,10 @@ public class RoomServe extends BaseEntity { /** 服务时间30分钟起步 */ private String serveTime; + private String pic; + + private String content; + /** 备注 */ private String remake; diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java index 59bb73c..1ab5aed 100644 --- a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java @@ -3,6 +3,7 @@ package com.ics.admin.mapper.meeting; import com.ics.admin.domain.meeting.RoomItemByRoom; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -61,4 +62,6 @@ public interface RoomItemByRoomMapper extends BaseMapper { * @return 结果 */ int deleteRoomItemByRoomByIds(String[] ids); + + List selectRoomContent(@Param("list") List collect,@Param("size") int size); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomContentServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomContentServiceImpl.java index 72c02fd..28f3c25 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomContentServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomContentServiceImpl.java @@ -3,6 +3,9 @@ package com.ics.admin.service.impl.meeting; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; @@ -118,10 +121,44 @@ public class RoomContentServiceImpl extends ServiceImpl selectApiRoomList(RoomContent roomContent) { + // 根据物品查询数据 + if (CollUtil.isNotEmpty(roomContent.getRoomItemList())){ + //查询出所有的 roomContent 数据, + //然后根据 roomContent.getRoomItemList() 中的数据,进行筛选 + List roomContents = roomContentMapper.selectRoomContentList(roomContent); + List roomItemList = roomContent.getRoomItemList(); + List collect = roomItemList.stream().map(item -> { + return item.getId(); + }).collect(Collectors.toList()); + int size = roomItemList.size(); + ArrayList roomContents1 = new ArrayList<>(); + //获取数据 + List roomItemByRooms = roomItemByRoomService.selectRoomContent(collect, size); + if (CollUtil.isNotEmpty(roomItemByRooms)){ + for (RoomItemByRoom roomItemByRoom : roomItemByRooms) { + RoomContent roomContent1 = roomContentMapper.selectById(roomItemByRoom.getRoomContentId()); + roomContents1.add(roomContent1); + } + } + List collect1 = roomContents.stream().filter(roomContents1::contains).collect(Collectors.toList()); + return selectRoomContentList(collect1); + }else { + if (roomContent.getType() != null) { + RoomContent.Type type = roomContent.getType(); + roomContent.setTypeValue(type.ordinal()); + } + List roomContents = roomContentMapper.selectRoomContentList(roomContent); + return selectRoomContentList(roomContents); + } - ArrayList items = new ArrayList<>(); - List roomContents = roomContentMapper.selectList(new QueryWrapper<>(roomContent)); + } + + public List selectRoomContentList(List roomContents) { for (RoomContent content : roomContents) { + content.setTypeValue(content.getType().getValue()); + content.setTypeName(content.getType().getName()); + ArrayList items = new ArrayList<>(); + //查询房间号 Room room = roomService.selectRoomById(content.getRoomId()); if (room != null) { @@ -178,4 +215,39 @@ public class RoomContentServiceImpl extends ServiceImpl selectSearchInfoByType(Integer type) { + HashMap map = new HashMap<>(); + + if (type == 3){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("name,id"); + List list =roomItemService.list(queryWrapper); + map.put("roomItem",list); + return map; + + }else { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (type == 1){ + queryWrapper.groupBy("type"); + }else if (type == 2){ + queryWrapper.groupBy("capacity_num"); + }else if (type == 4){ + queryWrapper.groupBy("shape"); + } + List roomContents = roomContentMapper.selectList(queryWrapper); + for (RoomContent roomContent : roomContents) { + roomContent.setTypeValue(roomContent.getType().getValue()); + roomContent.setTypeName(roomContent.getType().getName()); + } + map.put("roomContents",roomContents); + return map; + } + + + + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomItemByRoomServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomItemByRoomServiceImpl.java index 0ab4fa7..e47a52a 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomItemByRoomServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomItemByRoomServiceImpl.java @@ -42,6 +42,7 @@ public class RoomItemByRoomServiceImpl extends ServiceImpl selectRoomItemByRoomList(RoomItemByRoom roomItemByRoom) { QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq(roomItemByRoom.getRoomContentId() !=null,"room_content_id",roomItemByRoom.getRoomContentId()); return roomItemByRoomMapper.selectList(queryWrapper); } @@ -89,4 +90,10 @@ public class RoomItemByRoomServiceImpl extends ServiceImpl selectRoomContent(List collect, int size) { + + return roomItemByRoomMapper.selectRoomContent(collect,size); + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomContentService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomContentService.java index 3b3ecee..cd668e5 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomContentService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomContentService.java @@ -3,6 +3,7 @@ package com.ics.admin.service.meeting; import com.ics.admin.domain.meeting.RoomContent; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * 房间主体内容Service接口 @@ -62,4 +63,6 @@ public interface IRoomContentService extends IService { List selectApiRoomList(RoomContent roomContent); RoomContent selectInfoById(Long id); + + Map selectSearchInfoByType(Integer type); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomItemByRoomService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomItemByRoomService.java index e5075d6..4b8be27 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomItemByRoomService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomItemByRoomService.java @@ -1,5 +1,6 @@ package com.ics.admin.service.meeting; +import com.ics.admin.domain.meeting.RoomItem; import com.ics.admin.domain.meeting.RoomItemByRoom; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -58,4 +59,6 @@ public interface IRoomItemByRoomService extends IService { * @return 结果 */ int deleteRoomItemByRoomById(Long id); + + List selectRoomContent(List collect, int size); } diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml index d9af543..f07e80e 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml @@ -34,6 +34,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND meeting_name LIKE CONCAT('%', #{meetingName}, '%') + AND `type`= #{typeValue} + AND capacity_num =#{capacityNum} + AND shape =#{shape} diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/RoomItemByRoomMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/RoomItemByRoomMapper.xml index b0cb376..a6e95b8 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/RoomItemByRoomMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomItemByRoomMapper.xml @@ -26,7 +26,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE id = #{id} - + + INSERT INTO tb_room_item_by_room diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/RoomServeMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/RoomServeMapper.xml index 0ef1b31..c6d9af0 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/RoomServeMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomServeMapper.xml @@ -10,6 +10,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -19,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT id, serve_name, serve_type, serve_time, remake, create_by, create_time, update_by, update_time, version, delete_flag FROM tb_room_serve + SELECT id, serve_name, serve_type, serve_time, remake, create_by, create_time, update_by, update_time, version, delete_flag,pic,content FROM tb_room_serve