From 0b43e8e01325a2908357270f206e08f35ca170a0 Mon Sep 17 00:00:00 2001 From: chendaze <1824191732@qq.com> Date: Mon, 4 Mar 2024 16:43:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=AF=B9=E6=8E=A5=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BC=9A=E8=AE=AE=E5=AE=A4=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ics/admin/domain/meeting/Reservation.java | 67 ++++++++- .../admin/domain/meeting/ReservationDTO.java | 14 ++ .../impl/meeting/ReservationServiceImpl.java | 50 +++++++ .../impl/meeting/RoomContentServiceImpl.java | 47 +++++- .../service/meeting/IReservationService.java | 2 + .../service/meeting/IRoomContentService.java | 4 + .../admin/meeting/ReservationMapper.xml | 18 +-- .../core/domain/dto/DevicePersonDto.java | 23 +++ .../core/domain/dto/DevicePersonsDto.java | 11 ++ .../ics/common/core/domain/dto/FacesDto.java | 11 ++ .../com/ics/common/utils/DeviceUtils.java | 138 ++++++++++++++++++ .../meeting/ApiRoomContentController.java | 36 ++++- 12 files changed, 395 insertions(+), 26 deletions(-) create mode 100644 ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationDTO.java create mode 100644 ics-common/ics-common-core/src/main/java/com/ics/common/core/domain/dto/DevicePersonDto.java create mode 100644 ics-common/ics-common-core/src/main/java/com/ics/common/core/domain/dto/DevicePersonsDto.java create mode 100644 ics-common/ics-common-core/src/main/java/com/ics/common/core/domain/dto/FacesDto.java create mode 100644 ics-common/ics-common-core/src/main/java/com/ics/common/utils/DeviceUtils.java diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Reservation.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Reservation.java index f0b4f0e..242c774 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Reservation.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Reservation.java @@ -1,5 +1,7 @@ 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; import lombok.Data; @@ -31,8 +33,65 @@ public class Reservation extends BaseEntity { /** 主题(会议主题、展厅主题) */ private String title; - /** 预约状态 */ - private Integer stauts; + @TableField(exist = false) + private String statusName; + + @TableField(exist = false) + private Integer statusValue; + + /** 预约状态 0待支付,1.已预约,2.进行中,3已结束,4.已取消 */ + private Status stauts; + public enum Status implements IEnum { + TO_BE_PAID("待支付", 0), + + /** + * 报名中 + */ + APPOINTMENT("已预约", 1), + + /** + * 活动未开始 + */ + ONGOING("进行中", 2), + + + /** + * 已满额 + */ + ENDED("已结束", 3), + + /** + * 已满额 + */ + CANCELED("已取消", 4); + + + private String name; + private int value; + + Status(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 Status parse(Integer value) { + for (Status status : values()) { + if (status.getValue().equals(value)) { + return status; + } + } + return null; + } + } /** 是否申请售后0否1是 */ private String isAfterSale; @@ -59,7 +118,7 @@ public class Reservation extends BaseEntity { private String meetingNeedType; /** 会议室id */ - private Long meetingId; +// private Long meetingId; /** 摄影需求:1需要,0不需要 */ private String photographType; @@ -68,7 +127,7 @@ public class Reservation extends BaseEntity { private Date startTime; /** 预约-结束时间 */ -// private Date endTime; + private Date endDate; /** 备注 */ private String remake; diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationDTO.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationDTO.java new file mode 100644 index 0000000..aaf1223 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationDTO.java @@ -0,0 +1,14 @@ +package com.ics.admin.domain.meeting; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class ReservationDTO { + + private Date nowDate; + + private List reservations; +} 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 838847c..643edc7 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 @@ -1,7 +1,9 @@ package com.ics.admin.service.impl.meeting; +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; @@ -89,4 +91,52 @@ public class ReservationServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + + queryWrapper.eq("room_content_id",reservation.getRoomContentId()); + queryWrapper.gt("start_time",new Date()); + + Date startTime = reservation.getStartTime(); + Date endDate = reservation.getEndDate(); + List reservations = reservationMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(reservations)){ + for (Reservation reservation1 : reservations) { + Boolean judge = judge(reservation1.getStartTime(), reservation1.getEndDate(), startTime, endDate); + if (judge){ + return true; + }else { + continue; + } + } + } + return false; + + + } + /** + * 判断一个时间段是否包含另一个时间段,包含:TRUE,不包含:FALSE + * + * @param date1 + * @param date2 + * @param startTime + * @param endTime + * @return + */ + public static Boolean judge(Date date1, Date date2, Date startTime, Date endTime) { + long d1 = date1.getTime(); + long d2 = date2.getTime(); + long v = d2 - d1; + long start = startTime.getTime(); + long end = endTime.getTime(); + if (((d1 - start) <= 0) && ((end - d2) <= 0) || ((d2 - start) >= 0) && ((d1 - end) <= 0)) { + return true; + } + return false; + } + + } 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 28f3c25..d018d35 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 @@ -1,12 +1,12 @@ 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.*; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ics.admin.domain.BuildingDetail; import com.ics.admin.domain.Room; import com.ics.admin.domain.meeting.*; +import com.ics.admin.mapper.meeting.ReservationMapper; import com.ics.admin.service.IBuildingDetailService; import com.ics.admin.service.IRoomService; import com.ics.admin.service.meeting.*; @@ -51,6 +52,9 @@ public class RoomContentServiceImpl extends ServiceImpl roomContents = roomContentMapper.selectRoomContentList(roomContent); List roomItemList = roomContent.getRoomItemList(); List collect = roomItemList.stream().map(item -> { @@ -250,4 +253,38 @@ public class RoomContentServiceImpl extends ServiceImpl selectMeetingRoomRecord(Long meetingRoomId) { + + ArrayList list = new ArrayList<>(); + + // 根据最近七天查询数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("room_content_id",meetingRoomId); + queryWrapper.gt("start_time",new Date()); + queryWrapper.groupBy("start_time"); + List reservations = reservationMapper.selectList(queryWrapper); + List collect = reservations.stream().map(item -> { + return item.getStartTime(); + }).collect(Collectors.toList()); + for (Date dateTime : collect) { + ReservationDTO reservationDTO = new ReservationDTO(); + reservationDTO.setNowDate(dateTime); + // 查询会议室记录 + QueryWrapper wrapper = new QueryWrapper<>(); + String dateStr = dateTime.toString(); + queryWrapper.eq("room_content_id",meetingRoomId); + queryWrapper.gt("start_time",dateStr.split(" ")[0] + " 00:00:00"); + queryWrapper.lt("start_time",dateStr.split(" ")[0] + " 23:59:59"); + List reservation = reservationMapper.selectList(wrapper); + for (Reservation reservation1 : reservation) { + reservation1.setStatusValue(reservation1.getStauts().getValue()); + reservation1.setStatusName(reservation1.getStauts().getName()); + } + reservationDTO.setReservations(reservation); + list.add(reservationDTO); + } + return list; + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationService.java index b284f27..471fb83 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationService.java @@ -58,4 +58,6 @@ public interface IReservationService extends IService { * @return 结果 */ int deleteReservationById(Long id); + + boolean selectFreeMeetingRoom(Reservation reservation); } 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 cd668e5..2a42459 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 @@ -1,5 +1,7 @@ package com.ics.admin.service.meeting; +import com.ics.admin.domain.meeting.Reservation; +import com.ics.admin.domain.meeting.ReservationDTO; import com.ics.admin.domain.meeting.RoomContent; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -65,4 +67,6 @@ public interface IRoomContentService extends IService { RoomContent selectInfoById(Long id); Map selectSearchInfoByType(Integer type); + + List selectMeetingRoomRecord(Long meetingRoomId); } diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml index 8915c75..153b2f7 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml @@ -21,10 +21,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + @@ -34,7 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT id, room_content_id, user_id, ticket_id, customer_id, title, stauts,serve_id, is_after_sale, oder_number, order_money, cancel_time, cancel_resaon, visit_type, explain_need_type, meeting_need_type, meeting_id, photograph_type, start_time, end_time, delete_flag, create_by, create_time, update_by, update_time, remake FROM tb_reservation + SELECT id, room_content_id, user_id, ticket_id, customer_id, title, stauts,serve_id,end_date, is_after_sale, oder_number, order_money, cancel_time, cancel_resaon, visit_type, explain_need_type, meeting_need_type, photograph_type, start_time, end_time, delete_flag, create_by, create_time, update_by, update_time, remake FROM tb_reservation @@ -37,6 +39,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" num, is_verification, create_time, + staff_id, + type, #{id}, @@ -45,6 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{num}, #{isVerification}, #{createTime}, + #{staffId}, + #{type}, @@ -56,6 +62,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" num = #{num}, is_verification = #{isVerification}, create_time = #{createTime}, + staff_id = #{staffId}, + staff_id = #{type}, WHERE id = #{id} diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml index 153b2f7..eb75b2e 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationMapper.xml @@ -17,8 +17,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -34,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT id, room_content_id, user_id, ticket_id, customer_id, title, stauts,serve_id,end_date, is_after_sale, oder_number, order_money, cancel_time, cancel_resaon, visit_type, explain_need_type, meeting_need_type, photograph_type, start_time, end_time, delete_flag, create_by, create_time, update_by, update_time, remake FROM tb_reservation + SELECT id, room_content_id, user_id, ticket_id, customer_id, title, stauts,serve_id,end_date, is_after_sale, oder_number,reservation_number, order_money, cancel_time, cancel_resaon, visit_type, explain_need_type, meeting_need_type, photograph_type, start_time, end_time, delete_flag, create_by, create_time, update_by, update_time, remake FROM tb_reservation - + + INSERT INTO tb_reservation @@ -63,14 +69,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" oder_number, order_money, cancel_time, + order_time, cancel_resaon, visit_type, explain_need_type, meeting_need_type, --- meeting_id, photograph_type, start_time, end_date, + reservation_number, delete_flag, create_by, create_time, @@ -87,15 +94,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{serveId}, #{title}, #{stauts}, + #{reservationNumber}, #{isAfterSale}, #{oderNumber}, #{orderMoney}, #{cancelTime}, + #{orderTime}, #{cancelResaon}, #{visitType}, #{explainNeedType}, #{meetingNeedType}, --- #{meetingId}, #{photographType}, #{startTime}, #{endDate}, @@ -122,6 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" oder_number = #{oderNumber}, order_money = #{orderMoney}, cancel_time = #{cancelTime}, + reservation_number = #{reservationNumber}, cancel_resaon = #{cancelResaon}, visit_type = #{visitType}, explain_need_type = #{explainNeedType}, @@ -130,6 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" photograph_type = #{photographType}, start_time = #{startTime}, end_date = #{endDate}, + order_time = #{orderTime}, delete_flag = #{deleteFlag}, create_by = #{createBy}, create_time = #{createTime}, diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/ReservationPersonMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationPersonMapper.xml new file mode 100644 index 0000000..c3a6a1e --- /dev/null +++ b/ics-admin/src/main/resources/mapper/admin/meeting/ReservationPersonMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + SELECT id, user_id, participant_id, status, join_time, reservation_id, participant_name, participant_phone FROM tb_reservation_person + + + + + + + + INSERT INTO tb_reservation_person + + id, + user_id, + participant_id, + status, + join_time, + reservation_id, + participant_name, + participant_phone, + + + #{id}, + #{userId}, + #{participantId}, + #{status}, + #{joinTime}, + #{reservationId}, + #{participantName}, + #{participantPhone}, + + + + + UPDATE tb_reservation_person + + user_id = #{userId}, + participant_id = #{participantId}, + status = #{status}, + join_time = #{joinTime}, + reservation_id = #{reservationId}, + participant_name = #{participantName}, + participant_phone = #{participantPhone}, + + WHERE id = #{id} + + + + DELETE FROM tb_reservation_person WHERE id = #{id} + + + + DELETE FROM tb_reservation_person where id in + + #{id} + + + + \ No newline at end of file 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 f07e80e..bd0094b 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/RoomContentMapper.xml @@ -11,11 +11,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - + + + + @@ -23,11 +27,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + + + - SELECT id, type, meeting_name, capacity_num, expand_num, indoor_pic_url, start_time, end_date, price_unit, money, is_show, create_by, create_time, update_by, update_time, version, delete_flag, room_id, shape FROM tb_room_content + SELECT id, type, meeting_name, capacity_num, expand_num, indoor_pic_url, address, start_time, end_date, duration, shape, money, is_show, head_name, head_phone, create_by, create_time, update_by, update_time, version, delete_flag, room_id, is_toll, is_ticket, content FROM tb_room_content @@ -44,19 +45,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" serve_time, remake, create_by, + money, + content, create_time, update_by, update_time, version, delete_flag, pic, - content, #{serveName}, #{serveType}, #{serveTime}, #{remake}, + #{content}, + #{money}, #{createBy}, #{createTime}, #{updateBy}, @@ -64,7 +68,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{version}, #{deleteFlag}, #{pic}, - #{content}, @@ -76,13 +79,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" serve_time = #{serveTime}, remake = #{remake}, create_by = #{createBy}, + money = #{money}, + content = #{content}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, version = #{version}, delete_flag = #{deleteFlag}, pic = #{pic}, - content = #{content}, WHERE id = #{id} diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/TicketMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/TicketMapper.xml index 6d4a350..ae6b67c 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/TicketMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/TicketMapper.xml @@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT id, title, content, type, money, address, is_verification, is_show, start_time, end_date, remark, is_default, version, delete_flag, create_by, create_time, update_by, update_time FROM tb_ticket + SELECT id, title, content, type, duration, address, is_verification, is_show, start_time, end_date, remark, is_default, version, delete_flag, create_by, create_time, update_by, update_time FROM tb_ticket + DELETE FROM sys_user WHERE id = #{id} @@ -293,6 +307,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mobile, gender, password, + customer_id, salt, status, create_by, @@ -312,6 +327,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{avatar}, #{email}, #{mobile}, + #{customerId}, #{gender}, #{password}, #{salt}, @@ -336,6 +352,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" openid, avatar, email, + customer_id, mobile, gender, password, @@ -358,6 +375,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{avatar}, #{email}, #{mobile}, + #{customerId}, #{gender}, #{password}, #{salt}, @@ -381,6 +399,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" email = #{email}, mobile = #{mobile}, gender = #{gender}, + customer_id = #{customerId}, avatar = #{avatar}, password = #{password}, salt = #{salt}, diff --git a/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiEquipmentController.java b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiEquipmentController.java new file mode 100644 index 0000000..217b05b --- /dev/null +++ b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiEquipmentController.java @@ -0,0 +1,30 @@ +package com.ics.controller.mobile.meeting; + +import com.ics.admin.controller.meeting.UserEquipmentController; +import com.ics.admin.domain.meeting.UserEquipment; +import com.ics.admin.service.meeting.IUserEquipmentService; +import com.ics.common.core.controller.BaseController; +import com.ics.common.core.domain.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/equipment") +public class ApiEquipmentController extends BaseController { + + + @Autowired + private IUserEquipmentService userEquipmentService; + + //根据用户id查询对应的设备, 楼层分割,房间,设备信息, + @GetMapping("/getEquipmentByUserId/{userId}") + public R getEquipmentByUserId(String userId){ + + return R.ok().put("data",userEquipmentService.getEquipmentByUserId(userId)); + + } + + +} diff --git a/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiRoomContentController.java b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiRoomContentController.java index 155db9c..9665f77 100644 --- a/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiRoomContentController.java +++ b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiRoomContentController.java @@ -1,16 +1,30 @@ package com.ics.controller.mobile.meeting; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ics.admin.domain.BuildingDetail; +import com.ics.admin.domain.IcsCustomerStaff; +import com.ics.admin.domain.Park; +import com.ics.admin.domain.Room; import com.ics.admin.domain.meeting.*; -import com.ics.admin.service.IRoomService; +import com.ics.admin.domain.meeting.vo.MeetingAmountVo; +import com.ics.admin.domain.meeting.vo.UserCustomerVo; +import com.ics.admin.mapper.meeting.RoomContentMapper; +import com.ics.admin.service.*; import com.ics.admin.service.meeting.*; import com.ics.common.core.controller.BaseController; import com.ics.common.core.domain.R; +import com.ics.common.core.page.PageDomain; +import com.ics.common.core.page.TableSupport; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -28,6 +42,30 @@ public class ApiRoomContentController extends BaseController { @Autowired private IReservationService reservationService; + @Autowired + private IReservationPersonService reservationPersonService; + + @Autowired + private ICustomerService customerService; + + @Autowired + private RoomContentMapper roomContentMapper; + + @Autowired + private IRoomService roomService; + + @Autowired + private IBuildingDetailService buildingDetailService; + + @Autowired + private IIcsCustomerStaffService customerStaffService; + + @Autowired + private ITicketService ticketService; + + @Autowired + private IParkService parkService; + /** * 查询条件筛选 @@ -63,12 +101,11 @@ public class ApiRoomContentController extends BaseController { /** * 优惠卷列表 */ - @GetMapping("/getCustomerTicket") - public R getCustomerTicket() { + @PostMapping("/getCustomerTicket") + public R getCustomerTicket(@RequestBody UserCustomerVo userCustomerVo) { //根据用户获取对应的企业id,查询该企业下对应的优惠卷 - long userId = getCurrentUserId(); - List list = customerTicketService.getCustomerTicket(userId); + List list = customerTicketService.getCustomerTicket(userCustomerVo); return R.ok().put("data",list); } @@ -93,13 +130,177 @@ public class ApiRoomContentController extends BaseController { */ @PostMapping("/selectFreeMeetingRoom") public R selectFreeMeetingRoom(@RequestBody Reservation reservation) { - boolean count =reservationService.selectFreeMeetingRoom(reservation); - String msg =count?"会议室不可用":"会议室可用"; return R.ok().put("count",count).put("msg",msg); } + + /** + * 会议预约记录 + */ + @PostMapping("/saveMeetingRecord") + public R getMeetingRoomRecord(@RequestBody Reservation reservation) { + //根据用户获取对应的企业id,查询该企业下对应的优惠卷 + reservation.setStauts(Reservation.Status.TO_BE_PAID); + reservation.setOderNumber(RandomUtil.randomNumbers(8)); + boolean b = reservationService.selectFreeMeetingRoom(reservation); + Assert.isFalse(b, "会议室不可用"); + boolean save = reservationService.save(reservation); + if (save){ + if (null !=reservation.getTicketId()){ + CustomerTicket customerTicket =new CustomerTicket(); + customerTicket.setTicketId(reservation.getTicketId()); + customerTicket.setCustomerId(reservation.getCustomerId()); + customerTicket.setStaffId(reservation.getUserId()); + customerTicketService.updateCustomerTicketBYUserId(customerTicket); + } + } + Long id = reservation.getId(); + return toAjax(save).put("reservationId",id); + } + + /** + * 根据会议室id查询所有的会议室服务与设备 + */ + @GetMapping("/getMeetingRoomServiceAndEquipment/{meetingRoomId}") + public R getMeetingRoomServiceAndEquipment(@PathVariable("meetingRoomId") Long meetingRoomId) { + //根据用户获取对应的企业id,查询该企业下对应的优惠卷 + Map map = roomContentService.selectMeetingRoomServiceAndEquipment(meetingRoomId); + return R.ok().put("data",map); + } + + /** + * 计算会议室金额 + */ + @PostMapping("/calculateMeetingRoomAmount") + public R calculateMeetingRoomAmount(@RequestBody Reservation reservation) { + //根据用户获取对应的企业id,查询该企业下对应的优惠卷 + MeetingAmountVo amount = reservationService.calculateMeetingRoomAmount(reservation); + return R.ok().put("amount",amount); + } + + /** + * 预约列表 + */ + @PostMapping("selectReservationListByUserId") + public R selectReservationListByUserId(@RequestBody Reservation reservation){ + + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + IPage list = reservationService.selectReservationListByUserId(reservation,pageNum,pageSize); + + return R.ok().put("page",list); + } + + // 根据id查询预约信息 + @GetMapping("selectReservationById/{id}") + public R selectReservationById(@PathVariable("id") Long id){ + Reservation reservation = reservationService.selectReservationById(id); + reservation.setStatusValue(reservation.getStauts().getValue()); + reservation.setStatusName(reservation.getStauts().getName()); + IcsCustomerStaff icsCustomerStaff = customerStaffService.selectIcsCustomerStaffById(reservation.getUserId()); + if(null != icsCustomerStaff){ + reservation.setUserName(icsCustomerStaff.getUsername()); + reservation.setPhone(icsCustomerStaff.getMobile()); + reservation.setAvatar(icsCustomerStaff.getAvatar()); + } + + Ticket ticket = ticketService.selectTicketById(reservation.getTicketId()); + if(null != ticket){ + reservation.setTicketName(ticket.getTitle()); + } + + Long roomContentId = reservation.getRoomContentId(); + RoomContent roomContent = roomContentMapper.selectById(roomContentId); + Room room = roomService.selectRoomById(roomContent.getRoomId()); + if (room != null) { + roomContent.setTypeValue(roomContent.getType().getValue()); + roomContent.setTypeName(roomContent.getType().getName()); + roomContent.setRoomName(room.getName()); + roomContent.setArea(room.getArea()); + roomContent.setRenArea(room.getRentArea()); + //查询楼层号 + BuildingDetail buildingDetail = buildingDetailService.selectBuildingDetailById(room.getBuildingDetailId()); + if (buildingDetail != null) { + roomContent.setBuildingName(buildingDetail.getFloorName() +"F"); + } + } + reservation.setRoomContent(roomContent); + return R.ok().put("data",reservation); + } + + /* + 获取坐标信息 + */ + @GetMapping("/selectCoordinate") + public R selectCoordinate() { + //根据用户获取对应的企业id,查询该企业下对应的优惠卷 + Park park = parkService.selectParkById(1L); + + return R.ok().put("lat",park.getLat()).put("lng",park.getLng()).put("address",park.getAddress()); + } + + + /** + * 判断预约参观人员 + */ + @PostMapping("/isVisitor") + public R isVisitor(@RequestBody ReservationPerson reservationPerson) { + + ReservationPerson visitor = reservationPersonService.isVisitor(reservationPerson); + if (visitor != null){ + return R.error(500,"该人员已预约"); + } + return R.ok("该人员未预约"); + } + + /** + * 添加 预约参观人员 + */ + @PostMapping("/addVisitor") + public R addVisitor(@RequestBody ReservationPerson reservationPerson) { + + reservationPerson.setStatus("1"); + reservationPerson.setJoinTime(new Date()); + int i = reservationPersonService.insertReservationPerson(reservationPerson); + if (i > 0){ + return R.ok("预约成功"); + } + return R.ok("该人员未预约"); + } + + //取消订单 + @PostMapping("/cancelOrder") + public R cancelOrder(@RequestBody Reservation reservation) { + + Assert.notNull(reservation.getId(),"当前预约信息不存在"); + reservation.setStauts(Reservation.Status.CANCELED); + reservation.setCancelTime(new Date()); + int i = reservationService.updateReservation(reservation); + return toAjax(i); + } + + //支付订单 + @PostMapping("/payOrder") + public R payOrder(@RequestBody Reservation reservation) { + Reservation reservation1 = reservationService.selectReservationById(reservation.getId()); + Reservation.Status stauts = reservation1.getStauts(); + System.out.println(stauts); + Assert.isFalse(reservation1.getStauts().equals(Reservation.Status.APPOINTMENT),"您已经支付成功,请勿重复支付"); + + Assert.notNull(reservation.getId(),"当前预约信息不存在"); + reservation.setStauts(Reservation.Status.APPOINTMENT); + reservation.setOrderTime(new Date()); + int i = reservationService.updateReservation(reservation); + return toAjax(i); + } + + + + + } diff --git a/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiVisitorController.java b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiVisitorController.java index d6291e9..9998653 100644 --- a/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiVisitorController.java +++ b/ics-web/src/main/java/com/ics/controller/mobile/meeting/ApiVisitorController.java @@ -1,21 +1,33 @@ package com.ics.controller.mobile.meeting; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ics.admin.domain.BuildingDetail; import com.ics.admin.domain.Customer; import com.ics.admin.domain.IcsCustomerStaff; +import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.Reservation; +import com.ics.admin.domain.meeting.ReservationPerson; import com.ics.admin.domain.meeting.RoomContent; import com.ics.admin.domain.meeting.VisitorPerson; +import com.ics.admin.mapper.meeting.RoomContentMapper; +import com.ics.admin.service.IBuildingDetailService; import com.ics.admin.service.ICustomerService; import com.ics.admin.service.IIcsCustomerStaffService; +import com.ics.admin.service.IRoomService; +import com.ics.admin.service.meeting.IReservationPersonService; import com.ics.admin.service.meeting.IRoomContentService; import com.ics.admin.service.meeting.IVisitorPersonService; import com.ics.common.core.controller.BaseController; import com.ics.common.core.domain.R; +import com.ics.common.core.page.PageDomain; +import com.ics.common.core.page.TableSupport; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** @@ -35,6 +47,19 @@ public class ApiVisitorController extends BaseController { @Autowired private IVisitorPersonService visitorPersonService; + @Autowired + private IReservationPersonService reservationPersonService; + + @Autowired + private RoomContentMapper roomContentMapper; + + + @Autowired + private IRoomService roomService; + + @Autowired + private IBuildingDetailService buildingDetailService; + /** * 获取所有的企业 */ @@ -93,6 +118,21 @@ public class ApiVisitorController extends BaseController { return toAjax(update); } + /** + * 访客邀请记录 + */ + @GetMapping("selectVisitorInvitationRecord/{userId}") + public R selectVisitorInvitationRecord(@PathVariable("userId") Long userId) { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + + IPage list = reservationPersonService.selectListByParticipantId(userId,pageNum,pageSize); + + + return R.ok().put("page",list); + } + }