From 1a22b6de6cd2f76d80692e61459c414fb267eb7c Mon Sep 17 00:00:00 2001 From: chendaze <1824191732@qq.com> Date: Tue, 12 Mar 2024 14:09:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E5=B1=95=E5=8E=85?= =?UTF-8?q?=E9=A2=84=E7=BA=A6=E7=9A=84=E5=8A=9F=E8=83=BD=E5=92=8C=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/EquipmentController.java | 56 +++++- .../meeting/RoomContentController.java | 15 ++ .../meeting/RoomRecordController.java | 76 ++++++++ .../meeting/ShowroomController.java | 76 ++++++++ .../meeting/ShowroomRecordController.java | 76 ++++++++ .../ics/admin/domain/meeting/Equipment.java | 15 +- .../ics/admin/domain/meeting/RoomContent.java | 3 + .../ics/admin/domain/meeting/RoomRecord.java | 31 +++ .../ics/admin/domain/meeting/Showroom.java | 75 ++++++++ .../admin/domain/meeting/ShowroomRecord.java | 53 +++++ .../domain/meeting/ShowroomRecordDTO.java | 25 +++ .../admin/domain/meeting/UserEquipment.java | 10 + .../admin/domain/meeting/VisitorPerson.java | 24 ++- .../domain/meeting/vo/VisitorPersonVo.java | 79 ++++++++ .../mapper/meeting/RoomRecordMapper.java | 64 ++++++ .../admin/mapper/meeting/ShowroomMapper.java | 64 ++++++ .../mapper/meeting/ShowroomRecordMapper.java | 67 +++++++ .../impl/RoomEquipmentServiceImpl.java | 9 + .../impl/UserEquipmentServiceImpl.java | 128 ++++++++++-- .../meeting/IVisitorPersonServiceImpl.java | 17 +- .../impl/meeting/ReservationServiceImpl.java | 2 - .../impl/meeting/RoomRecordServiceImpl.java | 108 +++++++++++ .../meeting/ShowroomRecordServiceImpl.java | 147 ++++++++++++++ .../impl/meeting/ShowroomServiceImpl.java | 92 +++++++++ .../meeting/IRoomEquipmentService.java | 2 + .../service/meeting/IRoomRecordService.java | 64 ++++++ .../meeting/IShowroomRecordService.java | 68 +++++++ .../service/meeting/IShowroomService.java | 61 ++++++ .../meeting/IUserEquipmentService.java | 2 +- .../meeting/IVisitorPersonService.java | 6 +- .../mapper/admin/meeting/EquipmentMapper.xml | 8 +- .../admin/meeting/ReservationMapper.xml | 8 +- .../admin/meeting/RoomEquipmentMapper.xml | 3 +- .../mapper/admin/meeting/RoomRecordMapper.xml | 78 ++++++++ .../mapper/admin/meeting/ShowroomMapper.xml | 134 +++++++++++++ .../admin/meeting/ShowroomRecordMapper.xml | 136 +++++++++++++ .../admin/meeting/VisitorPersonMapper.xml | 6 +- .../com/ics/common/utils/DeviceUtils.java | 101 ++++++++-- .../java/com/ics/common/utils/IpUtils.java | 14 ++ .../com/ics/common/utils/ServletUtils.java | 7 + .../ics/common/utils/spring/BeanContext.java | 30 +++ .../utils/spring/SpringContextHolder.java | 11 ++ .../system/handlers/MyParkLineHandler.java | 2 +- .../system/handlers/MyTenantLineHandler.java | 2 +- .../meeting/ApiEquipmentController.java | 74 ++++++- .../meeting/ApiRoomContentController.java | 19 +- .../mobile/meeting/ApiShowroomController.java | 149 ++++++++++++++ .../mobile/meeting/ApiVisitorController.java | 182 +++++++++++++----- 48 files changed, 2374 insertions(+), 105 deletions(-) create mode 100644 ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomRecordController.java create mode 100644 ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomController.java create mode 100644 ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomRecordController.java create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomRecord.java create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/Showroom.java create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecord.java create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecordDTO.java create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/VisitorPersonVo.java create mode 100644 ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomRecordMapper.java create mode 100644 ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomMapper.java create mode 100644 ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomRecordMapper.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/impl/meeting/RoomRecordServiceImpl.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomRecordServiceImpl.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomServiceImpl.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomRecordService.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomRecordService.java create mode 100644 ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomService.java create mode 100644 ics-admin/src/main/resources/mapper/admin/meeting/RoomRecordMapper.xml create mode 100644 ics-admin/src/main/resources/mapper/admin/meeting/ShowroomMapper.xml create mode 100644 ics-admin/src/main/resources/mapper/admin/meeting/ShowroomRecordMapper.xml create mode 100644 ics-common/ics-common-core/src/main/java/com/ics/common/utils/spring/BeanContext.java create mode 100644 ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiShowroomController.java diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/EquipmentController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/EquipmentController.java index 5f21881..111185b 100644 --- a/ics-admin/src/main/java/com/ics/admin/controller/meeting/EquipmentController.java +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/EquipmentController.java @@ -1,5 +1,12 @@ package com.ics.admin.controller.meeting; +import cn.hutool.core.lang.Assert; +import com.ics.admin.domain.BuildingDetail; +import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.RoomEquipment; +import com.ics.admin.service.IBuildingDetailService; +import com.ics.admin.service.IRoomService; +import com.ics.admin.service.meeting.IRoomEquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -12,8 +19,11 @@ import com.ics.common.core.domain.R; import com.ics.common.core.controller.BaseController; import com.ics.admin.domain.meeting.Equipment; import com.ics.admin.service.meeting.IEquipmentService; +import org.wf.jwtp.annotation.Ignore; import org.wf.jwtp.annotation.RequiresPermissions; +import java.util.List; + /** * 设备 提供者 * @@ -27,12 +37,29 @@ public class EquipmentController extends BaseController { @Autowired private IEquipmentService equipmentService; + @Autowired + private IRoomEquipmentService roomEquipmentService; + + @Autowired + private IBuildingDetailService buildingDetailService; + + @Autowired + private IRoomService roomService; + /** * 查询设备 */ + @Ignore @GetMapping("get/{id}") public Equipment get(@PathVariable("id") Long id) { - return equipmentService.selectEquipmentById(id); + Equipment equipment = equipmentService.selectEquipmentById(id); + RoomEquipment roomEquipment = roomEquipmentService.selectByEquipmentId(equipment.getId()); + Room room = roomService.selectRoomById(roomEquipment.getRoomId()); + equipment.setBuildId(room.getBuildingId()); + equipment.setRoomName(room.getName()); + BuildingDetail buildingDetail = buildingDetailService.selectBuildingDetailById(room.getBuildingDetailId()); + equipment.setBuildName(buildingDetail.getFloorName()); + return equipment; } /** @@ -42,7 +69,16 @@ public class EquipmentController extends BaseController { @GetMapping("list") public R list(Equipment equipment) { startPage(); - return result(equipmentService.selectEquipmentList(equipment)); + List equipment1 = equipmentService.selectEquipmentList(equipment); + for (Equipment equipment2 : equipment1) { + RoomEquipment roomEquipment = roomEquipmentService.selectByEquipmentId(equipment2.getId()); + Room room = roomService.selectRoomById(roomEquipment.getRoomId()); + equipment2.setBuildId(room.getBuildingId()); + equipment2.setRoomName(room.getName()); + BuildingDetail buildingDetail = buildingDetailService.selectBuildingDetailById(room.getBuildingDetailId()); + equipment2.setBuildName(buildingDetail.getFloorName()); + } + return result(equipment1); } @@ -52,7 +88,17 @@ public class EquipmentController extends BaseController { @RequiresPermissions("meeting:equipment:add") @PostMapping("save") public R addSave(@RequestBody Equipment equipment) { - return toAjax(equipmentService.insertEquipment(equipment)); + int i = equipmentService.insertEquipment(equipment); + Assert.isTrue(i > 0, "添加失败"); + + RoomEquipment roomEquipment = new RoomEquipment(); + roomEquipment.setEquipmentId(equipment.getId()); + roomEquipment.setRoomId(equipment.getRoomId()); + int i1 = roomEquipmentService.insertRoomEquipment(roomEquipment); + Assert.isTrue(i1 > 0, "添加失败"); + + + return toAjax(i); } /** @@ -61,6 +107,10 @@ public class EquipmentController extends BaseController { @RequiresPermissions("meeting:equipment:edit") @PostMapping("update") public R editSave(@RequestBody Equipment equipment) { + RoomEquipment roomEquipment = new RoomEquipment(); + roomEquipment.setEquipmentId(equipment.getId()); + roomEquipment.setRoomId(equipment.getRoomId()); + roomEquipmentService.updateRoomEquipment(roomEquipment); return toAjax(equipmentService.updateEquipment(equipment)); } 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 f4c7681..0ddba8d 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 @@ -2,9 +2,11 @@ package com.ics.admin.controller.meeting; import cn.hutool.core.lang.Assert; import com.ics.admin.domain.BuildingDetail; +import com.ics.admin.domain.Customer; import com.ics.admin.domain.Room; import com.ics.admin.domain.meeting.*; import com.ics.admin.service.IBuildingDetailService; +import com.ics.admin.service.ICustomerService; import com.ics.admin.service.IRoomService; import com.ics.admin.service.meeting.IRoomContentService; import com.ics.admin.service.meeting.IRoomItemByRoomService; @@ -53,12 +55,16 @@ public class RoomContentController extends BaseController { @Autowired private IRoomService roomService; + + @Autowired + private ICustomerService customerService; /** * 查询房间主体内容 */ @Ignore @GetMapping("get/{id}") public RoomContent get(@PathVariable("id") Long id) { + RoomContent roomContent = roomContentService.selectRoomContentById(id); roomContent.setTypeName(roomContent.getType().getName()); roomContent.setTypeValue(roomContent.getType().getValue()); @@ -208,4 +214,13 @@ public class RoomContentController extends BaseController { public R selectRoomById(Room room) { return R.ok().put("data",roomService.selectRoomById(room.getId())); } + + + + @Ignore + @GetMapping("/customerList") + public R list(Customer customer) { + List customers = customerService.selectCustomerList(customer); + return result(customers); + } } \ No newline at end of file diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomRecordController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomRecordController.java new file mode 100644 index 0000000..e16a111 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/RoomRecordController.java @@ -0,0 +1,76 @@ +package com.ics.admin.controller.meeting; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.ics.common.core.domain.R; +import com.ics.common.core.controller.BaseController; +import com.ics.admin.domain.meeting.RoomRecord; +import com.ics.admin.service.meeting.IRoomRecordService; +import org.wf.jwtp.annotation.RequiresPermissions; + +/** + * 用户开门记录 提供者 + * + * @author ics + * @date 2024-03-11 + */ +@RestController +@RequestMapping("record") +public class RoomRecordController extends BaseController { + + @Autowired + private IRoomRecordService roomRecordService; + + /** + * 查询用户开门记录 + */ + @GetMapping("get/{id}") + public RoomRecord get(@PathVariable("id") Long id) { + return roomRecordService.selectRoomRecordById(id); + } + + /** + * 查询用户开门记录列表 + */ + @RequiresPermissions("meeting:record:list") + @GetMapping("list") + public R list(RoomRecord roomRecord) { + startPage(); + return result(roomRecordService.selectRoomRecordList(roomRecord)); + } + + + /** + * 新增保存用户开门记录 + */ + @RequiresPermissions("meeting:record:add") + @PostMapping("save") + public R addSave(@RequestBody RoomRecord roomRecord) { + return toAjax(roomRecordService.insertRoomRecord(roomRecord)); + } + + /** + * 修改保存用户开门记录 + */ + @RequiresPermissions("meeting:record:edit") + @PostMapping("update") + public R editSave(@RequestBody RoomRecord roomRecord) { + return toAjax(roomRecordService.updateRoomRecord(roomRecord)); + } + + /** + * 删除用户开门记录 + */ + @RequiresPermissions("meeting:record:remove") + @PostMapping("remove") + public R remove(String ids) { + return toAjax(roomRecordService.deleteRoomRecordByIds(ids)); + } + +} diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomController.java new file mode 100644 index 0000000..ea48d87 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomController.java @@ -0,0 +1,76 @@ +package com.ics.admin.controller.meeting; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.ics.common.core.domain.R; +import com.ics.common.core.controller.BaseController; +import com.ics.admin.domain.meeting.Showroom; +import com.ics.admin.service.meeting.IShowroomService; +import org.wf.jwtp.annotation.RequiresPermissions; + +/** + * 展厅管理 提供者 + * + * @author ics + * @date 2024-03-12 + */ +@RestController +@RequestMapping("showroom") +public class ShowroomController extends BaseController { + + @Autowired + private IShowroomService showroomService; + + /** + * 查询展厅管理 + */ + @GetMapping("get/{id}") + public Showroom get(@PathVariable("id") Long id) { + return showroomService.selectShowroomById(id); + } + + /** + * 查询展厅管理列表 + */ + @RequiresPermissions("meeting:showroom:list") + @GetMapping("list") + public R list(Showroom showroom) { + startPage(); + return result(showroomService.selectShowroomList(showroom)); + } + + + /** + * 新增保存展厅管理 + */ + @RequiresPermissions("meeting:showroom:add") + @PostMapping("save") + public R addSave(@RequestBody Showroom showroom) { + return toAjax(showroomService.insertShowroom(showroom)); + } + + /** + * 修改保存展厅管理 + */ + @RequiresPermissions("meeting:showroom:edit") + @PostMapping("update") + public R editSave(@RequestBody Showroom showroom) { + return toAjax(showroomService.updateShowroom(showroom)); + } + + /** + * 删除展厅管理 + */ + @RequiresPermissions("meeting:showroom:remove") + @PostMapping("remove") + public R remove(String ids) { + return toAjax(showroomService.deleteShowroomByIds(ids)); + } + +} diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomRecordController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomRecordController.java new file mode 100644 index 0000000..7411346 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ShowroomRecordController.java @@ -0,0 +1,76 @@ +package com.ics.admin.controller.meeting; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.ics.common.core.domain.R; +import com.ics.common.core.controller.BaseController; +import com.ics.admin.domain.meeting.ShowroomRecord; +import com.ics.admin.service.meeting.IShowroomRecordService; +import org.wf.jwtp.annotation.RequiresPermissions; + +/** + * 展厅预约记录 提供者 + * + * @author ics + * @date 2024-03-12 + */ +@RestController +@RequestMapping("/showroom/record") +public class ShowroomRecordController extends BaseController { + + @Autowired + private IShowroomRecordService showroomRecordService; + + /** + * 查询展厅预约记录 + */ + @GetMapping("get/{id}") + public ShowroomRecord get(@PathVariable("id") Long id) { + return showroomRecordService.selectShowroomRecordById(id); + } + + /** + * 查询展厅预约记录列表 + */ + @RequiresPermissions("meeting:record:list") + @GetMapping("list") + public R list(ShowroomRecord showroomRecord) { + startPage(); + return result(showroomRecordService.selectShowroomRecordList(showroomRecord)); + } + + + /** + * 新增保存展厅预约记录 + */ + @RequiresPermissions("meeting:record:add") + @PostMapping("save") + public R addSave(@RequestBody ShowroomRecord showroomRecord) { + return toAjax(showroomRecordService.insertShowroomRecord(showroomRecord)); + } + + /** + * 修改保存展厅预约记录 + */ + @RequiresPermissions("meeting:record:edit") + @PostMapping("update") + public R editSave(@RequestBody ShowroomRecord showroomRecord) { + return toAjax(showroomRecordService.updateShowroomRecord(showroomRecord)); + } + + /** + * 删除展厅预约记录 + */ + @RequiresPermissions("meeting:record:remove") + @PostMapping("remove") + public R remove(String ids) { + return toAjax(showroomRecordService.deleteShowroomRecordByIds(ids)); + } + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Equipment.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Equipment.java index e252d97..0ec54ed 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Equipment.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Equipment.java @@ -1,8 +1,12 @@ package com.ics.admin.domain.meeting; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ics.common.core.domain.BaseEntity; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; + import java.util.Date; /** @@ -34,6 +38,15 @@ public class Equipment extends BaseEntity { private String ip; - private String roomId; + private Long roomId; + + @TableField(exist = false) + private Long buildId; + + @TableField(exist = false) + private String roomName; + + @TableField(exist = false) + private String buildName; } 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 06d7db9..2a7bcab 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 @@ -41,6 +41,9 @@ public class RoomContent extends BaseEntity { /** 地址 */ private String address; + @TableField(exist = false) + private Long equipmentId; + /** 开始时间 */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomRecord.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomRecord.java new file mode 100644 index 0000000..8c94e86 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomRecord.java @@ -0,0 +1,31 @@ +package com.ics.admin.domain.meeting; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ics.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * 用户开门记录对象 tb_room_record + * + * @author ics + * @date 2024-03-11 + */ +@Data +@TableName("tb_room_record") +public class RoomRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 房间id */ + private Long roomId; + + /** 设备id */ + private Long deviceId; + + @TableField(exist = false) + private String deviceName; + + /** 用户id */ + private Long userId; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Showroom.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Showroom.java new file mode 100644 index 0000000..4e0d529 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Showroom.java @@ -0,0 +1,75 @@ +package com.ics.admin.domain.meeting; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ics.common.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 展厅管理对象 tb_showroom + * + * @author ics + * @date 2024-03-12 + */ +@Data +@TableName("tb_showroom") +public class Showroom extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 展厅编码 */ + private String showroomCode; + + /** 展厅名称 */ + private String meetingName; + + /** 容纳人数 */ + private Integer capacityNum; + + /** 扩充人数 */ + private Integer expandNum; + + /** 室内图片url */ + private String indoorPicUrl; + + /** 地址 */ + private String address; + + /** 开始时间 */ + private Date startTime; + + /** 结束时间 */ + private Date endDate; + + /** 是否展示 */ + private Integer isShow; + + + + /** 负责人姓名 */ + private String headName; + + /** 负责人手机号 */ + private String headPhone; + + /** 会议描述 */ + private String content; + + /** 房间id */ + private Long roomId; + + @TableField(exist = false) + private String roomName; + + /** 展厅面积 */ + private String area; + + @TableField(exist = false) + private BigDecimal renArea; + + @TableField(exist = false) + private String buildingName; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecord.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecord.java new file mode 100644 index 0000000..8488d1f --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecord.java @@ -0,0 +1,53 @@ +package com.ics.admin.domain.meeting; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ics.common.core.domain.BaseEntity; +import lombok.Data; +import java.util.Date; + +/** + * 展厅预约记录对象 tb_showroom_record + * + * @author ics + * @date 2024-03-12 + */ +@Data +@TableName("tb_showroom_record") +public class ShowroomRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 会议主体id */ + private Long showroomId; + + /** 用户id */ + private Long userId; + + /** 主题(会议主题、展厅主题) */ + private String title; + + /** 预约状态 */ + private Integer stauts; + + /** 预约编号 */ + private String reservationNumber; + + /** 订单取消时间 */ + private Date cancelTime; + + /** 订单取消原因 */ + private String cancelResaon; + + /** 预约-开始时间 */ + private Date startTime; + + private Integer explainNeedType; + private Integer meetingNeedType; + private Integer photographType; + + /** 预约-结束时间 */ + private Date endDate; + + /** 备注 */ + private String remake; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecordDTO.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecordDTO.java new file mode 100644 index 0000000..107c020 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ShowroomRecordDTO.java @@ -0,0 +1,25 @@ +package com.ics.admin.domain.meeting; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.ics.common.core.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 展厅预约记录对象 tb_showroom_record + * + * @author ics + * @date 2024-03-12 + */ +@Data +@TableName("tb_showroom_record") +public class ShowroomRecordDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + + private String nowDate; + + private List showroomRecords; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/UserEquipment.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/UserEquipment.java index ab58ec2..df62a6f 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/UserEquipment.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/UserEquipment.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ics.common.core.domain.BaseEntity; import lombok.Data; +import lombok.RequiredArgsConstructor; /** * 用户设备关联对象 tb_user_equipment @@ -13,16 +14,25 @@ import lombok.Data; */ @Data @TableName("tb_user_equipment") +@RequiredArgsConstructor public class UserEquipment extends BaseEntity { private static final long serialVersionUID = 1L; /** 用户id */ private Long userId; + @TableField(exist = false) + private Long roomId; + /** 设备id */ private Long equipmentId; @TableField(exist = false) private String roomName; + @TableField(exist = false) + private String equipmentName; + @TableField(exist = false) + private String equipmentStatus; + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/VisitorPerson.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/VisitorPerson.java index 37ce601..fad2d0a 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/VisitorPerson.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/VisitorPerson.java @@ -1,5 +1,6 @@ package com.ics.admin.domain.meeting; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ics.common.core.domain.BaseEntity; import lombok.Data; @@ -19,16 +20,29 @@ public class VisitorPerson extends BaseEntity { /** 访客id */ private Long userId; + @TableField(exist = false) + private String userName; + + + + + @TableField(exist = false) + private String mobile; + + /** 被访人id */ private Long intervieweeId; private Long customerId; + @TableField(exist = false) + private String customerName; + /** 姓名 */ private String name; /** 手机号 */ - private Integer phone; + private String phone; /** 加入时间 */ private Date joinTime; @@ -51,7 +65,15 @@ public class VisitorPerson extends BaseEntity { /** 状态 */ private Integer status; + @TableField(exist = false) + private String statusName; + private String photo; + @TableField(exist = false) + private String url; + + private String rejectContent; + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/VisitorPersonVo.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/VisitorPersonVo.java new file mode 100644 index 0000000..5dd3e70 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/VisitorPersonVo.java @@ -0,0 +1,79 @@ +package com.ics.admin.domain.meeting.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ics.common.core.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; + +/** + * 访客预约人员对象 tb_reservation_person + * + * @author chen + * @date 2024-02-25 + */ +@Data +@TableName("tb_visitor_person") +public class VisitorPersonVo extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 访客id */ + private Long userId; + + + @TableField(exist = false) + private String username; + + + @TableField(exist = false) + private String mobile; + + + /** 被访人id */ + private Long intervieweeId; + + private Long customerId; + + @TableField(exist = false) + private String customerName; + + /** 姓名 */ + private String name; + + /** 手机号 */ + private String phone; + + /** 加入时间 */ + private Date joinTime; + + /** 到访时间 */ + private Date visitTime; + + /** 离开时间 */ + private Date leaveTime; + + /** 来访是由 */ + private String visitContent; + + /** 证件类型 */ + private String cardType; + + /** 证件号码 */ + private String cardNo; + + /** 状态 */ + private Integer status; + + @TableField(exist = false) + private String statusName; + + + private String photo; + + @TableField(exist = false) + private String url; + + private String rejectContent; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomRecordMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomRecordMapper.java new file mode 100644 index 0000000..78cde89 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomRecordMapper.java @@ -0,0 +1,64 @@ +package com.ics.admin.mapper.meeting; + +import com.ics.admin.domain.meeting.RoomRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 用户开门记录Mapper接口 + * + * @author ics + * @date 2024-03-11 + */ +@Mapper +public interface RoomRecordMapper extends BaseMapper { + /** + * 查询用户开门记录 + * + * @param id 用户开门记录ID + * @return 用户开门记录 + */ + RoomRecord selectRoomRecordById(Long id); + + /** + * 查询用户开门记录列表 + * + * @param roomRecord 用户开门记录 + * @return 用户开门记录集合 + */ + List selectRoomRecordList(RoomRecord roomRecord); + + /** + * 新增用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + int insertRoomRecord(RoomRecord roomRecord); + + /** + * 修改用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + int updateRoomRecord(RoomRecord roomRecord); + + /** + * 删除用户开门记录 + * + * @param id 用户开门记录ID + * @return 结果 + */ + int deleteRoomRecordById(Long id); + + /** + * 批量删除用户开门记录 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteRoomRecordByIds(String[] ids); +} diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomMapper.java new file mode 100644 index 0000000..dd2b6af --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomMapper.java @@ -0,0 +1,64 @@ +package com.ics.admin.mapper.meeting; + +import com.ics.admin.domain.meeting.Showroom; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 展厅管理Mapper接口 + * + * @author ics + * @date 2024-03-12 + */ +@Mapper +public interface ShowroomMapper extends BaseMapper { + /** + * 查询展厅管理 + * + * @param id 展厅管理ID + * @return 展厅管理 + */ + Showroom selectShowroomById(Long id); + + /** + * 查询展厅管理列表 + * + * @param showroom 展厅管理 + * @return 展厅管理集合 + */ + List selectShowroomList(Showroom showroom); + + /** + * 新增展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + int insertShowroom(Showroom showroom); + + /** + * 修改展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + int updateShowroom(Showroom showroom); + + /** + * 删除展厅管理 + * + * @param id 展厅管理ID + * @return 结果 + */ + int deleteShowroomById(Long id); + + /** + * 批量删除展厅管理 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteShowroomByIds(String[] ids); +} diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomRecordMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomRecordMapper.java new file mode 100644 index 0000000..c95e45b --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ShowroomRecordMapper.java @@ -0,0 +1,67 @@ +package com.ics.admin.mapper.meeting; + +import com.ics.admin.domain.meeting.ShowroomRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Date; +import java.util.List; + +/** + * 展厅预约记录Mapper接口 + * + * @author ics + * @date 2024-03-12 + */ +@Mapper +public interface ShowroomRecordMapper extends BaseMapper { + /** + * 查询展厅预约记录 + * + * @param id 展厅预约记录ID + * @return 展厅预约记录 + */ + ShowroomRecord selectShowroomRecordById(Long id); + + /** + * 查询展厅预约记录列表 + * + * @param showroomRecord 展厅预约记录 + * @return 展厅预约记录集合 + */ + List selectShowroomRecordList(ShowroomRecord showroomRecord); + + /** + * 新增展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + int insertShowroomRecord(ShowroomRecord showroomRecord); + + /** + * 修改展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + int updateShowroomRecord(ShowroomRecord showroomRecord); + + /** + * 删除展厅预约记录 + * + * @param id 展厅预约记录ID + * @return 结果 + */ + int deleteShowroomRecordById(Long id); + + /** + * 批量删除展厅预约记录 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteShowroomRecordByIds(String[] ids); + + List selectListByDate(Long showroomId); +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomEquipmentServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomEquipmentServiceImpl.java index 9c4f549..db21616 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomEquipmentServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomEquipmentServiceImpl.java @@ -89,4 +89,13 @@ public class RoomEquipmentServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); + wrapper.eq("equipment_id",id); + return roomEquipmentMapper.selectOne(wrapper); + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/UserEquipmentServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/UserEquipmentServiceImpl.java index d8da831..40ee8fa 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/UserEquipmentServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/UserEquipmentServiceImpl.java @@ -1,29 +1,53 @@ package com.ics.admin.service.impl; +import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.Equipment; import com.ics.admin.domain.meeting.RoomEquipment; +import com.ics.admin.mapper.meeting.EquipmentMapper; import com.ics.admin.mapper.meeting.RoomEquipmentMapper; import com.ics.admin.service.IRoomService; +import com.ics.admin.service.meeting.IEquipmentService; import com.ics.admin.service.meeting.IRoomEquipmentService; +import com.ics.common.utils.DeviceUtils; +import com.ics.common.utils.IpUtils; +import com.ics.common.utils.spring.BeanContext; +import com.ics.common.utils.spring.SpringContextHolder; +import com.ics.common.utils.spring.SpringUtils; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; import com.ics.admin.mapper.meeting.UserEquipmentMapper; import com.ics.admin.domain.meeting.UserEquipment; import com.ics.admin.service.meeting.IUserEquipmentService; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; + +import javax.annotation.Resource; +import javax.swing.*; /** * 用户设备关联Service业务层处理 - * + * * @author chen * @date 2024-02-25 */ +@RequiredArgsConstructor @Service public class UserEquipmentServiceImpl extends ServiceImpl implements IUserEquipmentService { @Autowired @@ -38,9 +62,14 @@ public class UserEquipmentServiceImpl extends ServiceImpl getEquipmentByUserId(String userId) { + public List getEquipmentByUserId(Long userId) { + List list = baseMapper.selectList(new QueryWrapper().eq("user_id", userId)); - if(CollUtil.isEmpty(list)){ + if (CollUtil.isEmpty(list)) { return list; } + List equipment = equipmentService.selectEquipmentList(new Equipment()); + + updateDeviceDataSource(equipment); + + + ArrayList equipments = new ArrayList<>(); // 查出所有用户的设备,然后根据设备id 查出所在的房间号 for (UserEquipment userEquipment : list) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("equipment_id",userEquipment.getEquipmentId()); + wrapper.eq("equipment_id", userEquipment.getEquipmentId()); RoomEquipment roomEquipment = roomEquipmentMapper.selectOne(wrapper); - if (null != roomEquipment){ + if (null != roomEquipment) { Room room = roomService.selectRoomById(roomEquipment.getRoomId()); userEquipment.setRoomName(room.getName()); + userEquipment.setRoomId(room.getId()); + } + Equipment equipment1 = equipmentService.selectEquipmentById(userEquipment.getEquipmentId()); + if (null != equipment1) { + equipments.add(equipment1); + userEquipment.setEquipmentName(equipment1.getEquipmentName()); + if (equipment1.getStatus() == 0L) { + userEquipment.setEquipmentStatus("在线"); + } else { + userEquipment.setEquipmentStatus("离线"); + } } } return list; - } + + + public void updateDeviceDataSource(List equipments) { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + + RequestContextHolder.setRequestAttributes(requestAttributes,true); + + + // 创建线程池 + ExecutorService executorService = Executors.newFixedThreadPool(1); + CountDownLatch countDownLatch = new CountDownLatch(equipments.size()); + // 开始任务 + for (Equipment equipment : equipments) { + + executorService.submit(() -> { + EquipmentMapper equipmentMapper = BeanContext.getApplicationContext().getBean(EquipmentMapper.class); + + try { +// Equipment equipment1 = equipmentMapper.selectEquipmentById(equipment.getId()); +// System.out.println(equipment1); + // + Boolean isHost = DeviceUtils.ping(equipment.getIp(), 1,3000); + if (!isHost) { + equipment.setStatus(2L); + equipmentMapper.updateEquipment(equipment); + } else { + String active = DeviceUtils.getActive(equipment.getIp()); + JSONObject jsonObject = JSONUtil.parseObj(active); + JSONObject data = (JSONObject) jsonObject.get("data"); + String aBoolean = (String) data.get("isActivated"); + Boolean aBoolean1 = Boolean.valueOf(aBoolean); + if (aBoolean1) { + equipment.setStatus(0L); + } else { + equipment.setStatus(2L); + } + equipmentMapper.updateEquipment(equipment); + } + + } catch (Exception e) { + e.printStackTrace(); + // 处理异常 + } finally { + countDownLatch.countDown(); + } + }); + } + // 等待所有线程执行完成 + try { + countDownLatch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/IVisitorPersonServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/IVisitorPersonServiceImpl.java index ce6a10d..fe3c4f5 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/IVisitorPersonServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/IVisitorPersonServiceImpl.java @@ -4,7 +4,10 @@ import java.util.List; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ics.admin.domain.meeting.Reservation; import com.ics.admin.service.meeting.IVisitorPersonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -91,14 +94,20 @@ public class IVisitorPersonServiceImpl extends ServiceImpl selectVisitorRecord(Long customerId) { - return visitorPersonMapper.selectList(new QueryWrapper().eq("user_id", customerId)); + public IPage selectVisitorRecord(Long userId, Integer pageNum, Integer pageSize) { + QueryWrapper wrapper = new QueryWrapper().eq("user_id", userId); + IPage pages = new Page<>(pageNum,pageSize); + IPage userIPage = visitorPersonMapper.selectPage(pages,wrapper); + return userIPage; } @Override - public List selectVisitorRecordByIntervieweeId(Long intervieweeId) { + public IPage selectVisitorRecordByIntervieweeId(Long intervieweeId, Integer pageNum, Integer pageSize) { + QueryWrapper wrapper = new QueryWrapper().eq("interviewee_id", intervieweeId); + IPage pages = new Page<>(pageNum,pageSize); + IPage userIPage = visitorPersonMapper.selectPage(pages,wrapper); - return visitorPersonMapper.selectList(new QueryWrapper().eq("interviewee_id", intervieweeId)); + return userIPage; } @Override diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationServiceImpl.java index 4d810a2..05f4b41 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationServiceImpl.java @@ -140,8 +140,6 @@ public class ReservationServiceImpl extends ServiceImpl implements IRoomRecordService { + @Autowired + private RoomRecordMapper roomRecordMapper; + + /** + * 查询用户开门记录 + * + * @param id 用户开门记录ID + * @return 用户开门记录 + */ + @Override + public RoomRecord selectRoomRecordById(Long id) { + return roomRecordMapper.selectById(id); + } + + /** + * 查询用户开门记录列表 + * + * @param roomRecord 用户开门记录 + * @return 用户开门记录 + */ + @Override + public List selectRoomRecordList(RoomRecord roomRecord) { + QueryWrapper queryWrapper = new QueryWrapper(); + return roomRecordMapper.selectList(queryWrapper); + } + + /** + * 新增用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + @Override + public int insertRoomRecord(RoomRecord roomRecord) { + return roomRecordMapper.insert(roomRecord); + } + + /** + * 修改用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + @Override + public int updateRoomRecord(RoomRecord roomRecord) { + return roomRecordMapper.updateById(roomRecord); + } + + /** + * 删除用户开门记录对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteRoomRecordByIds(String ids) { + String[] idsArray = StrUtil.split(ids,","); + return roomRecordMapper.deleteBatchIds(CollUtil.toList(idsArray)); + } + + /** + * 删除用户开门记录信息 + * + * @param id 用户开门记录ID + * @return 结果 + */ + @Override + public int deleteRoomRecordById(Long id) { + return roomRecordMapper.deleteRoomRecordById(id); + } + + + + @Override + public IPage getOpenDoorRecord(RoomRecord roomRecord, Integer pageNum, Integer pageSize) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", roomRecord.getUserId()); + queryWrapper.orderByDesc("create_time"); + IPage pages = new Page<>(pageNum,pageSize); + + return roomRecordMapper.selectPage(pages,queryWrapper); + + } +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomRecordServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomRecordServiceImpl.java new file mode 100644 index 0000000..bd9d303 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomRecordServiceImpl.java @@ -0,0 +1,147 @@ +package com.ics.admin.service.impl.meeting; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ics.admin.domain.meeting.Reservation; +import com.ics.admin.domain.meeting.ReservationDTO; +import com.ics.admin.domain.meeting.ShowroomRecordDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ics.admin.mapper.meeting.ShowroomRecordMapper; +import com.ics.admin.domain.meeting.ShowroomRecord; +import com.ics.admin.service.meeting.IShowroomRecordService; + +import static com.ics.admin.service.impl.meeting.ReservationServiceImpl.judge; + +/** + * 展厅预约记录Service业务层处理 + * + * @author ics + * @date 2024-03-12 + */ +@Service +public class ShowroomRecordServiceImpl extends ServiceImpl implements IShowroomRecordService { + @Autowired + private ShowroomRecordMapper showroomRecordMapper; + + /** + * 查询展厅预约记录 + * + * @param id 展厅预约记录ID + * @return 展厅预约记录 + */ + @Override + public ShowroomRecord selectShowroomRecordById(Long id) { + return showroomRecordMapper.selectById(id); + } + + /** + * 查询展厅预约记录列表 + * + * @param showroomRecord 展厅预约记录 + * @return 展厅预约记录 + */ + @Override + public List selectShowroomRecordList(ShowroomRecord showroomRecord) { + QueryWrapper queryWrapper = new QueryWrapper(); + return showroomRecordMapper.selectList(queryWrapper); + } + + /** + * 新增展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + @Override + public int insertShowroomRecord(ShowroomRecord showroomRecord) { + return showroomRecordMapper.insert(showroomRecord); + } + + /** + * 修改展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + @Override + public int updateShowroomRecord(ShowroomRecord showroomRecord) { + return showroomRecordMapper.updateById(showroomRecord); + } + + /** + * 删除展厅预约记录对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteShowroomRecordByIds(String ids) { + String[] idsArray = StrUtil.split(ids,","); + return showroomRecordMapper.deleteBatchIds(CollUtil.toList(idsArray)); + } + + /** + * 删除展厅预约记录信息 + * + * @param id 展厅预约记录ID + * @return 结果 + */ + @Override + public int deleteShowroomRecordById(Long id) { + return showroomRecordMapper.deleteShowroomRecordById(id); + } + + @Override + public List appointmentRecord(ShowroomRecord showroomRecord) { + ArrayList list = new ArrayList<>(); + + // 根据最近七天查询数据 + + List dates = showroomRecordMapper.selectListByDate(showroomRecord.getShowroomId()); + for (Date dateTime : dates) { + ShowroomRecordDTO showroomRecordDTO = new ShowroomRecordDTO(); + showroomRecordDTO.setNowDate(DateUtil.format(dateTime,"yyyy-MM-dd")); + // 查询会议室记录 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("showroom_id",showroomRecord.getShowroomId()); + wrapper.gt("start_time", DateUtil.format(dateTime,"yyyy-MM-dd")+ " 00:00:00"); + wrapper.lt("end_date",DateUtil.format(dateTime,"yyyy-MM-dd") + " 23:59:59"); + List showroomRecords = showroomRecordMapper.selectList(wrapper); + + showroomRecordDTO.setShowroomRecords(showroomRecords); + list.add(showroomRecordDTO); + } + return list; + + } + + @Override + public boolean selectFreeMeetingRoom(ShowroomRecord showroomRecord) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + + queryWrapper.eq("showroom_id",showroomRecord.getShowroomId()); + + Date startTime = showroomRecord.getStartTime(); + Date endDate = showroomRecord.getEndDate(); + List reservations = showroomRecordMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(reservations)){ + for (ShowroomRecord reservation1 : reservations) { + Boolean judge = judge(reservation1.getStartTime(), reservation1.getEndDate(), startTime, endDate); + if (judge){ + return true; + }else { + continue; + } + } + } + return false; + } +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomServiceImpl.java new file mode 100644 index 0000000..e421bf3 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ShowroomServiceImpl.java @@ -0,0 +1,92 @@ +package com.ics.admin.service.impl.meeting; + +import java.util.List; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ics.admin.mapper.meeting.ShowroomMapper; +import com.ics.admin.domain.meeting.Showroom; +import com.ics.admin.service.meeting.IShowroomService; + +/** + * 展厅管理Service业务层处理 + * + * @author ics + * @date 2024-03-12 + */ +@Service +public class ShowroomServiceImpl extends ServiceImpl implements IShowroomService { + @Autowired + private ShowroomMapper showroomMapper; + + /** + * 查询展厅管理 + * + * @param id 展厅管理ID + * @return 展厅管理 + */ + @Override + public Showroom selectShowroomById(Long id) { + return showroomMapper.selectById(id); + } + + /** + * 查询展厅管理列表 + * + * @param showroom 展厅管理 + * @return 展厅管理 + */ + @Override + public List selectShowroomList(Showroom showroom) { + QueryWrapper queryWrapper = new QueryWrapper(); + return showroomMapper.selectList(queryWrapper); + } + + /** + * 新增展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + @Override + public int insertShowroom(Showroom showroom) { + return showroomMapper.insert(showroom); + } + + /** + * 修改展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + @Override + public int updateShowroom(Showroom showroom) { + return showroomMapper.updateById(showroom); + } + + /** + * 删除展厅管理对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteShowroomByIds(String ids) { + String[] idsArray = StrUtil.split(ids,","); + return showroomMapper.deleteBatchIds(CollUtil.toList(idsArray)); + } + + /** + * 删除展厅管理信息 + * + * @param id 展厅管理ID + * @return 结果 + */ + @Override + public int deleteShowroomById(Long id) { + return showroomMapper.deleteShowroomById(id); + } +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomEquipmentService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomEquipmentService.java index 32d8c55..09966d5 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomEquipmentService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomEquipmentService.java @@ -58,4 +58,6 @@ public interface IRoomEquipmentService extends IService { * @return 结果 */ int deleteRoomEquipmentById(Long id); + + RoomEquipment selectByEquipmentId(Long id); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomRecordService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomRecordService.java new file mode 100644 index 0000000..10d5c69 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IRoomRecordService.java @@ -0,0 +1,64 @@ +package com.ics.admin.service.meeting; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ics.admin.domain.meeting.RoomRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 用户开门记录Service接口 + * + * @author ics + * @date 2024-03-11 + */ +public interface IRoomRecordService extends IService { + /** + * 查询用户开门记录 + * + * @param id 用户开门记录ID + * @return 用户开门记录 + */ + RoomRecord selectRoomRecordById(Long id); + + /** + * 查询用户开门记录列表 + * + * @param roomRecord 用户开门记录 + * @return 用户开门记录集合 + */ + List selectRoomRecordList(RoomRecord roomRecord); + + /** + * 新增用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + int insertRoomRecord(RoomRecord roomRecord); + + /** + * 修改用户开门记录 + * + * @param roomRecord 用户开门记录 + * @return 结果 + */ + int updateRoomRecord(RoomRecord roomRecord); + + /** + * 批量删除用户开门记录 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteRoomRecordByIds(String ids); + + /** + * 删除用户开门记录信息 + * + * @param id 用户开门记录ID + * @return 结果 + */ + int deleteRoomRecordById(Long id); + + IPage getOpenDoorRecord(RoomRecord roomRecord, Integer pageNum, Integer pageSize); +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomRecordService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomRecordService.java new file mode 100644 index 0000000..4dc403a --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomRecordService.java @@ -0,0 +1,68 @@ +package com.ics.admin.service.meeting; + +import com.ics.admin.domain.meeting.ShowroomRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ics.admin.domain.meeting.ShowroomRecordDTO; + +import java.util.List; + +/** + * 展厅预约记录Service接口 + * + * @author ics + * @date 2024-03-12 + */ +public interface IShowroomRecordService extends IService { + /** + * 查询展厅预约记录 + * + * @param id 展厅预约记录ID + * @return 展厅预约记录 + */ + ShowroomRecord selectShowroomRecordById(Long id); + + /** + * 查询展厅预约记录列表 + * + * @param showroomRecord 展厅预约记录 + * @return 展厅预约记录集合 + */ + List selectShowroomRecordList(ShowroomRecord showroomRecord); + + /** + * 新增展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + int insertShowroomRecord(ShowroomRecord showroomRecord); + + /** + * 修改展厅预约记录 + * + * @param showroomRecord 展厅预约记录 + * @return 结果 + */ + int updateShowroomRecord(ShowroomRecord showroomRecord); + + /** + * 批量删除展厅预约记录 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteShowroomRecordByIds(String ids); + + /** + * 删除展厅预约记录信息 + * + * @param id 展厅预约记录ID + * @return 结果 + */ + int deleteShowroomRecordById(Long id); + + List appointmentRecord(ShowroomRecord showroomRecord); + + boolean selectFreeMeetingRoom(ShowroomRecord showroomRecord); + +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomService.java new file mode 100644 index 0000000..0877106 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IShowroomService.java @@ -0,0 +1,61 @@ +package com.ics.admin.service.meeting; + +import com.ics.admin.domain.meeting.Showroom; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 展厅管理Service接口 + * + * @author ics + * @date 2024-03-12 + */ +public interface IShowroomService extends IService { + /** + * 查询展厅管理 + * + * @param id 展厅管理ID + * @return 展厅管理 + */ + Showroom selectShowroomById(Long id); + + /** + * 查询展厅管理列表 + * + * @param showroom 展厅管理 + * @return 展厅管理集合 + */ + List selectShowroomList(Showroom showroom); + + /** + * 新增展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + int insertShowroom(Showroom showroom); + + /** + * 修改展厅管理 + * + * @param showroom 展厅管理 + * @return 结果 + */ + int updateShowroom(Showroom showroom); + + /** + * 批量删除展厅管理 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteShowroomByIds(String ids); + + /** + * 删除展厅管理信息 + * + * @param id 展厅管理ID + * @return 结果 + */ + int deleteShowroomById(Long id); +} diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IUserEquipmentService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IUserEquipmentService.java index f74d7e8..88c8567 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IUserEquipmentService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IUserEquipmentService.java @@ -59,5 +59,5 @@ public interface IUserEquipmentService extends IService { */ int deleteUserEquipmentById(Long id); - List getEquipmentByUserId(String userId); + List getEquipmentByUserId(Long userId); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IVisitorPersonService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IVisitorPersonService.java index 1004fad..58fa10a 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IVisitorPersonService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IVisitorPersonService.java @@ -1,5 +1,7 @@ package com.ics.admin.service.meeting; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ics.admin.domain.meeting.Reservation; import com.ics.admin.domain.meeting.VisitorPerson; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -59,9 +61,9 @@ public interface IVisitorPersonService extends IService { */ int deleteReservationPersonById(Long id); - List selectVisitorRecord(Long customerId); + IPage selectVisitorRecord(Long userId, Integer pageNum, Integer pageSize); - List selectVisitorRecordByIntervieweeId(Long intervieweeId); + IPage selectVisitorRecordByIntervieweeId(Long intervieweeId, Integer pageNum, Integer pageSize); int updateVisitorPersonStatus(VisitorPerson person); } diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/EquipmentMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/EquipmentMapper.xml index 0cb4c1c..aed74a2 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/EquipmentMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/EquipmentMapper.xml @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT id, type, equipment_name, status, create_date, equipment_num,room_id,ip, pic, delete_flag, create_by, create_time, update_by, update_time FROM tb_equipment + SELECT id, type, equipment_name, status, equipment_num,room_id,ip, pic, delete_flag, create_by, create_time, update_by, update_time FROM tb_equipment @@ -51,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -135,7 +136,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" visit_type = #{visitType}, explain_need_type = #{explainNeedType}, meeting_need_type = #{meetingNeedType}, --- meeting_id = #{meetingId}, photograph_type = #{photographType}, start_time = #{startTime}, end_date = #{endDate}, diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/RoomEquipmentMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/RoomEquipmentMapper.xml index 84f42bd..24c8ad4 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/RoomEquipmentMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomEquipmentMapper.xml @@ -17,7 +17,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/RoomRecordMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/RoomRecordMapper.xml new file mode 100644 index 0000000..a5825b2 --- /dev/null +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomRecordMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + SELECT id, room_id, device_id, user_id, create_time, create_by, delete_flag FROM tb_room_record + + + + + + + + INSERT INTO tb_room_record + + id, + room_id, + device_id, + user_id, + create_time, + create_by, + delete_flag, + + + #{id}, + #{roomId}, + #{deviceId}, + #{userId}, + #{createTime}, + #{createBy}, + #{deleteFlag}, + + + + + UPDATE tb_room_record + + room_id = #{roomId}, + device_id = #{deviceId}, + user_id = #{userId}, + create_time = #{createTime}, + create_by = #{createBy}, + delete_flag = #{deleteFlag}, + + WHERE id = #{id} + + + + DELETE FROM tb_room_record WHERE id = #{id} + + + + DELETE FROM tb_room_record where id in + + #{id} + + + + \ No newline at end of file diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomMapper.xml new file mode 100644 index 0000000..36fbc34 --- /dev/null +++ b/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT id, showroom_code, meeting_name, capacity_num, expand_num, indoor_pic_url, address, start_time, end_date, is_show, head_name, head_phone, content, create_by, create_time, update_by, update_time, version, delete_flag, room_id, area FROM tb_showroom + + + + + + + + INSERT INTO tb_showroom + + showroom_code, + meeting_name, + capacity_num, + expand_num, + indoor_pic_url, + address, + start_time, + end_date, + is_show, + head_name, + head_phone, + content, + create_by, + create_time, + update_by, + update_time, + version, + delete_flag, + room_id, + area, + + + #{showroomCode}, + #{meetingName}, + #{capacityNum}, + #{expandNum}, + #{indoorPicUrl}, + #{address}, + #{startTime}, + #{endDate}, + #{isShow}, + #{headName}, + #{headPhone}, + #{content}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{version}, + #{deleteFlag}, + #{roomId}, + #{area}, + + + + + UPDATE tb_showroom + + showroom_code = #{showroomCode}, + meeting_name = #{meetingName}, + capacity_num = #{capacityNum}, + expand_num = #{expandNum}, + indoor_pic_url = #{indoorPicUrl}, + address = #{address}, + start_time = #{startTime}, + end_date = #{endDate}, + is_show = #{isShow}, + head_name = #{headName}, + head_phone = #{headPhone}, + content = #{content}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + version = #{version}, + delete_flag = #{deleteFlag}, + room_id = #{roomId}, + area = #{area}, + + WHERE id = #{id} + + + + DELETE FROM tb_showroom WHERE id = #{id} + + + + DELETE FROM tb_showroom where id in + + #{id} + + + + \ No newline at end of file diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomRecordMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomRecordMapper.xml new file mode 100644 index 0000000..66b60e1 --- /dev/null +++ b/ics-admin/src/main/resources/mapper/admin/meeting/ShowroomRecordMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT id, showroom_id, user_id, title, stauts, reservation_number,, explain_need_type, meeting_need_type, photograph_type, cancel_time, cancel_resaon, start_time, end_date, delete_flag, create_by, create_time, update_by, update_time, remake FROM tb_showroom_record + + + + + + + + + INSERT INTO tb_showroom_record + + showroom_id, + user_id, + title, + stauts, + reservation_number, + cancel_time, + cancel_resaon, + start_time, + end_date, + explain_need_type, + meeting_need_type, + photograph_type, + persons, + visit_type, + delete_flag, + create_by, + create_time, + update_by, + update_time, + remake, + + + #{showroomId}, + #{userId}, + #{title}, + #{stauts}, + #{reservationNumber}, + #{cancelTime}, + #{cancelResaon}, + #{startTime}, + #{explainNeedType}, + #{meetingNeedType}, + #{photographType}, + #{persons}, + #{visitType}, + #{endDate}, + #{deleteFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remake}, + + + + + UPDATE tb_showroom_record + + showroom_id = #{showroomId}, + user_id = #{userId}, + title = #{title}, + stauts = #{stauts}, + reservation_number = #{reservationNumber}, + cancel_time = #{cancelTime}, + cancel_resaon = #{cancelResaon}, + start_time = #{startTime}, + explain_need_type = #{explainNeedType}, + meeting_need_type = #{meetingNeedType}, + photograph_type = #{photographType}, + persons = #{persons}, + visit_type = #{visitType}, + end_date = #{endDate}, + delete_flag = #{deleteFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remake = #{remake}, + + WHERE id = #{id} + + + + DELETE FROM tb_showroom_record WHERE id = #{id} + + + + DELETE FROM tb_showroom_record where id in + + #{id} + + + + \ No newline at end of file diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/VisitorPersonMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/VisitorPersonMapper.xml index 3ba87fd..87d44ca 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/VisitorPersonMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/VisitorPersonMapper.xml @@ -13,6 +13,7 @@ + @@ -22,7 +23,7 @@ - SELECT id, user_id, interviewee_id, name, phone, join_time, visit_time,photo,customer_id, leave_time, visit_content, card_type, card_no, status FROM tb_visitor_person + SELECT id, user_id, interviewee_id, name, phone,reject_content, join_time, visit_time,photo,customer_id, leave_time, visit_content, card_type, card_no, status FROM tb_visitor_person