diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/ReservationPersonController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ReservationPersonController.java new file mode 100644 index 0000000..facd80d --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/ReservationPersonController.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.ReservationPerson; +import com.ics.admin.service.meeting.IReservationPersonService; +import org.wf.jwtp.annotation.RequiresPermissions; + +/** + * 预约参观人员 提供者 + * + * @author chen + * @date 2024-03-06 + */ +@RestController +@RequestMapping("person") +public class ReservationPersonController extends BaseController { + + @Autowired + private IReservationPersonService reservationPersonService; + + /** + * 查询预约参观人员 + */ + @GetMapping("get/{id}") + public ReservationPerson get(@PathVariable("id") Long id) { + return reservationPersonService.selectReservationPersonById(id); + } + + /** + * 查询预约参观人员列表 + */ + @RequiresPermissions("meeting:person:list") + @GetMapping("list") + public R list(ReservationPerson reservationPerson) { + startPage(); + return result(reservationPersonService.selectReservationPersonList(reservationPerson)); + } + + + /** + * 新增保存预约参观人员 + */ + @RequiresPermissions("meeting:person:add") + @PostMapping("save") + public R addSave(@RequestBody ReservationPerson reservationPerson) { + return toAjax(reservationPersonService.insertReservationPerson(reservationPerson)); + } + + /** + * 修改保存预约参观人员 + */ + @RequiresPermissions("meeting:person:edit") + @PostMapping("update") + public R editSave(@RequestBody ReservationPerson reservationPerson) { + return toAjax(reservationPersonService.updateReservationPerson(reservationPerson)); + } + + /** + * 删除预约参观人员 + */ + @RequiresPermissions("meeting:person:remove") + @PostMapping("remove") + public R remove(String ids) { + return toAjax(reservationPersonService.deleteReservationPersonByIds(ids)); + } + +} 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 9bd637b..ecc6dab 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 @@ -1,8 +1,15 @@ package com.ics.admin.controller.meeting; -import com.ics.admin.domain.meeting.RoomContent; +import com.ics.admin.domain.BuildingDetail; +import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.*; +import com.ics.admin.service.IBuildingDetailService; +import com.ics.admin.service.IRoomService; import com.ics.admin.service.meeting.IRoomContentService; +import com.ics.admin.service.meeting.IRoomItemByRoomService; +import com.ics.admin.service.meeting.IRoomServeByRoomService; import com.ics.common.core.controller.BaseController; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -15,9 +22,11 @@ import com.ics.common.core.domain.R; import com.ics.common.core.controller.BaseController; import com.ics.admin.domain.meeting.RoomContent; import com.ics.admin.service.meeting.IRoomContentService; +import org.wf.jwtp.annotation.Ignore; import org.wf.jwtp.annotation.RequiresPermissions; import java.util.List; +import java.util.Map; /** * 房间主体内容 提供者 @@ -32,12 +41,35 @@ public class RoomContentController extends BaseController { @Autowired private IRoomContentService roomContentService; + @Autowired + private IRoomServeByRoomService roomServeByRoomService; + + @Autowired + private IRoomItemByRoomService roomItemByRoomService; + + @Autowired + private IBuildingDetailService buildingDetailService; + + @Autowired + private IRoomService roomService; /** * 查询房间主体内容 */ + @Ignore @GetMapping("get/{id}") public RoomContent get(@PathVariable("id") Long id) { - return roomContentService.selectRoomContentById(id); + RoomContent roomContent = roomContentService.selectRoomContentById(id); + roomContent.setTypeName(roomContent.getType().getName()); + roomContent.setTypeValue(roomContent.getType().getValue()); + Long roomId = roomContent.getRoomId(); + Room room = roomService.selectRoomById(roomId); + roomContent.setBuildId(room.getBuildingId().toString()); + roomContent.setArea(room.getArea()); + roomContent.setRoomName(room.getName()); + BuildingDetail buildingDetail = buildingDetailService.selectBuildingDetailById(room.getBuildingDetailId()); + roomContent.setBuildingName(buildingDetail.getFloorName()); + + return roomContent; } /** @@ -49,19 +81,29 @@ public class RoomContentController extends BaseController { startPage(); List roomContents = roomContentService.selectRoomContentList(roomContent); for (RoomContent content : roomContents) { + RoomServeByRoom roomServeByRoom = new RoomServeByRoom(); + roomServeByRoom.setRomeContentId(content.getId()); + List serveByRooms = roomServeByRoomService.selectRoomServeByRoomList(roomServeByRoom); + content.setServeCount(serveByRooms.size()); + + RoomItemByRoom roomItemByRoom = new RoomItemByRoom(); + roomItemByRoom.setRoomContentId(content.getId()); + List roomItemByRooms = roomItemByRoomService.selectRoomItemByRoomList(roomItemByRoom); + content.setItemCount(roomItemByRooms.size()); + content.setTypeValue(content.getType().getValue()); content.setTypeName(content.getType().getName()); } return result(roomContents); } - /** * 新增保存房间主体内容 */ @RequiresPermissions("meeting:roomContent:add") @PostMapping("save") public R addSave(@RequestBody RoomContent roomContent) { + System.out.println(roomContent); return toAjax(roomContentService.insertRoomContent(roomContent)); } @@ -83,4 +125,75 @@ public class RoomContentController extends BaseController { return toAjax(roomContentService.deleteRoomContentByIds(ids)); } -} + + @Ignore + @GetMapping("/searchInfo/{type}") + public R searchInfo(@PathVariable("type") Integer type) { + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + + Map map = roomContentService.selectSearchInfoByType(type); + return R.ok(map); + } + + @Ignore + @PostMapping("/addRoomServe") + public R addRoomServe(@RequestBody RoomServeByRoom roomServeByRoom) { + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + + int count = roomContentService.roomServeByRoom(roomServeByRoom); + return toAjax(count); + } + + @Ignore + @PostMapping("/addRoomItem") + public R addItemServe(@RequestBody RoomItemByRoom roomItemByRoom) { + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + + int count = roomContentService.addItemServe(roomItemByRoom); + return toAjax(count); + } + + //根据会议查询服务 + @Ignore + @PostMapping("/selectRoomServeByRoom") + public R selectRoomServeByRoom(@RequestBody RoomServeByRoom roomServeByRoom) { + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + List roomServeByRooms = roomServeByRoomService.selectRoomServeByRoomList(roomServeByRoom); + return R.ok().put("data",roomServeByRooms); + } + + @Ignore + @PostMapping("/selectRoomItemByRoom") + public R selectRoomItemByRoom(@RequestBody RoomItemByRoom roomItemByRoom) { + // 1.会议室类型,2.人数,3.会议室设备,4.形式 + List roomItemByRooms = roomItemByRoomService.selectRoomItemByRoomList(roomItemByRoom); + return R.ok().put("data",roomItemByRooms); + } + + /** + * 所属楼层 + */ + + @Ignore + @GetMapping("/getFloorList") + public R list(BuildingDetail buildingDetail) { + buildingDetail.setBuildingId(165L); + return R.ok().put("data",buildingDetailService.selectBuildingDetailList(buildingDetail)); + } + + + @Ignore + @GetMapping("/getRoomListByFloorId") + public R list(Room room) { + room.setDeleteFlag(0); + room.setStatus(Room.Status.NO); + room.setBuildingDetailId(room.getBuildingDetailId()); + return R.ok().put("data",roomService.selectRoomList(room)); + } + + @Ignore + @GetMapping("/selectRoomById") + public R selectRoomById(Room room) { + return R.ok().put("data",roomService.selectRoomById(room.getId())); + } +} \ No newline at end of file diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/TicketController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/TicketController.java index 34ead5e..a479dc1 100644 --- a/ics-admin/src/main/java/com/ics/admin/controller/meeting/TicketController.java +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/TicketController.java @@ -1,5 +1,9 @@ package com.ics.admin.controller.meeting; +import com.ics.admin.domain.Customer; +import com.ics.admin.service.ICustomerService; +import com.ics.system.domain.User; +import com.ics.system.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -12,8 +16,12 @@ import com.ics.common.core.domain.R; import com.ics.common.core.controller.BaseController; import com.ics.admin.domain.meeting.Ticket; import com.ics.admin.service.meeting.ITicketService; +import org.wf.jwtp.annotation.Ignore; import org.wf.jwtp.annotation.RequiresPermissions; +import java.util.ArrayList; +import java.util.List; + /** * 优惠卷 提供者 * @@ -27,6 +35,12 @@ public class TicketController extends BaseController { @Autowired private ITicketService ticketService; + @Autowired + private ICustomerService customerService; + + @Autowired + private IUserService userService; + /** * 查询优惠卷 */ @@ -73,4 +87,28 @@ public class TicketController extends BaseController { return toAjax(ticketService.deleteTicketByIds(ids)); } + + /** + * 企业名称,企业负责人,联系电话,优惠劵数量 + */ + + @Ignore + @GetMapping("getTicketByCompany") + public R getTicketByCompany(Customer customer) { + startPage(); + + ArrayList customerArrayList = new ArrayList<>(); + List customers = customerService.selectCustomerList(customer); + for (Customer customer1 : customers) { + User user = userService.selectUserByCustomer(customer1.getId()); + if (user != null){ + customer1.setUser(user); +// customerArrayList.add(customer1); + } + } + return result(customers); + } + + + } diff --git a/ics-admin/src/main/java/com/ics/admin/controller/meeting/UserEquipmentController.java b/ics-admin/src/main/java/com/ics/admin/controller/meeting/UserEquipmentController.java index d238266..cc48a3b 100644 --- a/ics-admin/src/main/java/com/ics/admin/controller/meeting/UserEquipmentController.java +++ b/ics-admin/src/main/java/com/ics/admin/controller/meeting/UserEquipmentController.java @@ -73,4 +73,6 @@ public class UserEquipmentController extends BaseController { return toAjax(userEquipmentService.deleteUserEquipmentByIds(ids)); } + + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/Customer.java b/ics-admin/src/main/java/com/ics/admin/domain/Customer.java index 9886dc7..410746a 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/Customer.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/Customer.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.ics.admin.handler.BannerImageHandler; import com.ics.common.core.domain.BaseEntity; +import com.ics.system.domain.User; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -399,4 +400,7 @@ public class Customer extends BaseEntity { */ private Park park; + @TableField(exist = false) + private User user; + } \ No newline at end of file diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/CustomerTicket.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/CustomerTicket.java index d942b61..5da62ca 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/CustomerTicket.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/CustomerTicket.java @@ -24,6 +24,9 @@ public class CustomerTicket extends BaseEntity { /** 优惠卷id */ private Long ticketId; + + private Long staffId; + /** 数量 */ private Integer num; @@ -41,4 +44,12 @@ public class CustomerTicket extends BaseEntity { @TableField(exist = false) private String ticketName; + @TableField(exist = false) + private String content; + + @TableField(exist = false) + private Integer duration; + + private Integer type; + } 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 242c774..ff6f9c5 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 @@ -24,9 +24,21 @@ public class Reservation extends BaseEntity { /** 用户id */ private Long userId; + @TableField(exist = false) + private String userName; + + @TableField(exist = false) + private String phone; + /** 优惠卷id */ private Long ticketId; + @TableField(exist = false) + private String ticketName; + + @TableField(exist = false) + private String avatar; + /** 企业id */ private Long customerId; @@ -47,7 +59,7 @@ public class Reservation extends BaseEntity { /** * 报名中 */ - APPOINTMENT("已预约", 1), + APPOINTMENT("待使用", 1), /** * 活动未开始 @@ -105,6 +117,8 @@ public class Reservation extends BaseEntity { /** 订单取消时间 */ private Date cancelTime; + private Date orderTime; + /** 订单取消原因 */ private String cancelResaon; @@ -135,4 +149,9 @@ public class Reservation extends BaseEntity { private Long serveId; + private String reservationNumber; + + @TableField(exist = false) + private RoomContent roomContent; + } 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 index aaf1223..f07c6e5 100644 --- 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 @@ -8,7 +8,7 @@ import java.util.List; @Data public class ReservationDTO { - private Date nowDate; + private String nowDate; private List reservations; } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationPerson.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationPerson.java new file mode 100644 index 0000000..6c7a9ce --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/ReservationPerson.java @@ -0,0 +1,49 @@ +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 java.util.Date; +import java.util.List; + +/** + * 预约参观人员对象 tb_reservation_person + * + * @author chen + * @date 2024-03-06 + */ +@Data +@NoArgsConstructor + +@TableName("tb_reservation_person") +public class ReservationPerson extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 邀请人id */ + private Long userId; + + /** 参与人id */ + private Long participantId; + + /** 状态 0接受,1拒绝 */ + private String status; + + /** 创建时间 */ + private Date joinTime; + + /** 预约记录id */ + private Long reservationId; + + /** 参与人名称 */ + private String participantName; + + /** 参与人姓名 */ + private String participantPhone; + + @TableField(exist = false) + private List reservation; + +} 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 49a27d4..06d7db9 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 @@ -3,6 +3,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.fasterxml.jackson.annotation.JsonFormat; import com.ics.common.core.domain.BaseEntity; import lombok.Data; @@ -21,9 +22,66 @@ import java.util.List; public class RoomContent extends BaseEntity { private static final long serialVersionUID = 1L; - /** 类型(会议室、办公室、茶室、路演厅、) */ + + /** 类型(会议室、办公室、茶室、路演厅) */ private Type type; + /** 名称 */ + private String meetingName; + + /** 容纳人数 */ + private Integer capacityNum; + + /** 扩充人数 */ + private Integer expandNum; + + /** 室内图片url */ + private String indoorPicUrl; + + /** 地址 */ + private String address; + + /** 开始时间 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date endDate; + + /** 时长 */ + private Integer duration; + + /** 形状(U型,O型) */ + private String shape; + + /** 金额 */ + private String money; + + /** 是否展示 */ + private Integer isShow; + + /** 负责人姓名 */ + private String headName; + + /** 负责人手机号 */ + private String headPhone; + + /** 房间id */ + private Long roomId; + + /** 是否收费 */ + private Long isToll; + + /** 是否使用优惠卷 */ + private Long isTicket; + + /** 会议描述 */ + private String content; + + + + @TableField(exist = false) private String typeName; @@ -37,26 +95,18 @@ public class RoomContent extends BaseEntity { */ MEETING_ROOM("会议室", 1), + + ROADSHOW_HALL("路演厅", 2), /** * 报名中 */ - OFFICE("办公室", 2), + DATA_WAREHOUSE("数仓", 3), + COUNT_BUTTON("数纽", 4), + NEGOTIATION_ROOM("洽谈室", 5), - /** - * 活动未开始 - */ - TEE_ROOM("茶室", 3), - - - /** - * 已满额 - */ - ROADSHOW_HALL("路演厅", 4); - - /** - * 活动中 - */ + LIVE_ROOM("直播间", 6), + TEE_ROOM("茶室", 7); private String name; private int value; @@ -85,41 +135,6 @@ public class RoomContent extends BaseEntity { } } - - /** 名称 */ - private String meetingName; - - /** 容纳人数 */ - private Integer capacityNum; - - /** 扩充人数 */ - private Integer expandNum; - - /** 室内图片url */ - private String indoorPicUrl; - - /** 开始时间 */ - private Date startTime; - - /** 结束时间 */ - private Date endDate; - - /** 价格单位:1小时、2天、3半天 */ - private String priceUnit; - - /** 金额 */ - private String money; - - /** 是否展示 */ - private Integer isShow; - - /** 房间id */ - private Long roomId; - - /** 形状(U型,O型) */ - private String shape; - - @TableField(exist = false) private List roomItemList; @@ -129,6 +144,12 @@ public class RoomContent extends BaseEntity { @TableField(exist = false) private String buildingName; + @TableField(exist = false) + private String build; + + @TableField(exist = false) + private String buildId; + @TableField(exist = false) private List roomServeList; @@ -138,4 +159,11 @@ public class RoomContent extends BaseEntity { @TableField(exist = false) private BigDecimal renArea; + @TableField(exist = false) + private Integer itemCount; + + @TableField(exist = false) + private Integer serveCount; + + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomItemByRoom.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomItemByRoom.java index 02f41f7..0392c16 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomItemByRoom.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomItemByRoom.java @@ -1,9 +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 java.util.List; + /** * 房间物品关联对象 tb_room_item_by_room * @@ -24,4 +27,7 @@ public class RoomItemByRoom extends BaseEntity { /** 数量 */ private Integer num; + @TableField(exist = false) + private List itemIds; + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java index d23d4d1..3fe1e5d 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServe.java @@ -28,6 +28,8 @@ public class RoomServe extends BaseEntity { private String content; + private String money; + /** 备注 */ private String remake; diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServeByRoom.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServeByRoom.java index 027b2d8..87d7c75 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServeByRoom.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/RoomServeByRoom.java @@ -1,9 +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 java.util.List; + /** * 房间主体和服务关联对象 tb_room_serve_by_room * @@ -21,4 +24,7 @@ public class RoomServeByRoom extends BaseEntity { /** 房间主体id */ private Long romeContentId; + @TableField(exist = false) + private List serveIds; + } diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Ticket.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Ticket.java index 8ab2313..05f7724 100644 --- a/ics-admin/src/main/java/com/ics/admin/domain/meeting/Ticket.java +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/Ticket.java @@ -27,7 +27,7 @@ public class Ticket extends BaseEntity { private Integer type; /** 金额 */ - private String money; + private Integer duration; /** 地址 */ private String address; diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/MeetingAmountVo.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/MeetingAmountVo.java new file mode 100644 index 0000000..e793571 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/MeetingAmountVo.java @@ -0,0 +1,14 @@ +package com.ics.admin.domain.meeting.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class MeetingAmountVo { + + private BigDecimal totalMoney; // 总金额 + + private BigDecimal paidMoney; // 已支付金额 + +} diff --git a/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/UserCustomerVo.java b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/UserCustomerVo.java new file mode 100644 index 0000000..6504847 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/domain/meeting/vo/UserCustomerVo.java @@ -0,0 +1,14 @@ +package com.ics.admin.domain.meeting.vo; + +import lombok.Data; + +@Data +public class UserCustomerVo { + + private String userId; + + private String customerId; + + private String type; + +} diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationMapper.java index eb54d8a..f528f86 100644 --- a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationMapper.java +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationMapper.java @@ -4,6 +4,7 @@ import com.ics.admin.domain.meeting.Reservation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import java.util.Date; import java.util.List; /** @@ -61,4 +62,7 @@ public interface ReservationMapper extends BaseMapper { * @return 结果 */ int deleteReservationByIds(String[] ids); + + List selectListByDate(Long meetingRoomId); + } diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationPersonMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationPersonMapper.java new file mode 100644 index 0000000..40fc8da --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/ReservationPersonMapper.java @@ -0,0 +1,64 @@ +package com.ics.admin.mapper.meeting; + +import com.ics.admin.domain.meeting.ReservationPerson; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 预约参观人员Mapper接口 + * + * @author chen + * @date 2024-03-06 + */ +@Mapper +public interface ReservationPersonMapper extends BaseMapper { + /** + * 查询预约参观人员 + * + * @param id 预约参观人员ID + * @return 预约参观人员 + */ + ReservationPerson selectReservationPersonById(Long id); + + /** + * 查询预约参观人员列表 + * + * @param reservationPerson 预约参观人员 + * @return 预约参观人员集合 + */ + List selectReservationPersonList(ReservationPerson reservationPerson); + + /** + * 新增预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + int insertReservationPerson(ReservationPerson reservationPerson); + + /** + * 修改预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + int updateReservationPerson(ReservationPerson reservationPerson); + + /** + * 删除预约参观人员 + * + * @param id 预约参观人员ID + * @return 结果 + */ + int deleteReservationPersonById(Long id); + + /** + * 批量删除预约参观人员 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteReservationPersonByIds(String[] ids); +} diff --git a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java index 1ab5aed..38699ca 100644 --- a/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java +++ b/ics-admin/src/main/java/com/ics/admin/mapper/meeting/RoomItemByRoomMapper.java @@ -64,4 +64,5 @@ public interface RoomItemByRoomMapper extends BaseMapper { int deleteRoomItemByRoomByIds(String[] ids); List selectRoomContent(@Param("list") List collect,@Param("size") int size); + } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeByRoomServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeByRoomServiceImpl.java index 736c40a..74cfca3 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeByRoomServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeByRoomServiceImpl.java @@ -42,6 +42,7 @@ public class RoomServeByRoomServiceImpl extends ServiceImpl selectRoomServeByRoomList(RoomServeByRoom roomServeByRoom) { QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("rome_content_Id", roomServeByRoom.getRomeContentId()); return roomServeByRoomMapper.selectList(queryWrapper); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeServiceImpl.java index 02235c5..67f83dc 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/RoomServeServiceImpl.java @@ -42,6 +42,8 @@ public class RoomServeServiceImpl extends ServiceImpl selectRoomServeList(RoomServe roomServe) { QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq(roomServe.getServeType() !=null ,"serve_type",roomServe.getServeType()); + queryWrapper.like(roomServe.getServeName() !=null ,"serve_name",roomServe.getServeName()); return roomServeMapper.selectList(queryWrapper); } 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 17562a2..e6d64ea 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,10 +1,13 @@ package com.ics.admin.service.impl; import java.util.List; +import java.util.stream.Collectors; + 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 com.ics.admin.service.meeting.IRoomEquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ics.admin.mapper.meeting.UserEquipmentMapper; @@ -22,6 +25,9 @@ public class UserEquipmentServiceImpl extends ServiceImpl getEquipmentByUserId(String userId) { + + List list = baseMapper.selectList(new QueryWrapper().eq("user_id", userId)); + if(CollUtil.isEmpty(list)){ + return list; + } + for (UserEquipment userEquipment : list) { +// roomEquipmentService.s + } + return null; + + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/CustomerTicketServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/CustomerTicketServiceImpl.java index a1a505e..e5b5908 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/CustomerTicketServiceImpl.java +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/CustomerTicketServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ics.admin.domain.IcsCustomerStaff; import com.ics.admin.domain.meeting.Ticket; +import com.ics.admin.domain.meeting.vo.UserCustomerVo; import com.ics.admin.mapper.IcsCustomerStaffMapper; import com.ics.admin.mapper.meeting.TicketMapper; import org.checkerframework.checker.units.qual.A; @@ -103,23 +104,37 @@ public class CustomerTicketServiceImpl extends ServiceImpl getCustomerTicket(Long userId) { - - - IcsCustomerStaff icsCustomerStaff = customerStaffMapper.selectById(userId); - Assert.isTrue(icsCustomerStaff != null, "用户不存在,请联系管理员"); + public List getCustomerTicket(UserCustomerVo userCustomerVo) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("customer_id", icsCustomerStaff.getIcsCustomerId()); + wrapper.eq("customer_id", userCustomerVo.getCustomerId()); + wrapper.eq("type", userCustomerVo.getType()); + wrapper.isNull("staff_id"); List customerTickets = customerTicketMapper.selectList(wrapper); for (CustomerTicket customerTicket : customerTickets) { Ticket ticket = ticketMapper.selectById(customerTicket.getTicketId()); customerTicket.setTicketName(ticket.getTitle()); customerTicket.setStartTime(ticket.getStartTime()); customerTicket.setEndDate(ticket.getEndDate()); + customerTicket.setContent(ticket.getContent()); + customerTicket.setContent(ticket.getContent()); + customerTicket.setDuration(ticket.getDuration()); + customerTicket.setType(ticket.getType()); } return customerTickets; } + + @Override + public void updateCustomerTicketBYUserId(CustomerTicket customerTicket) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("customer_id", customerTicket.getCustomerId()); + wrapper.eq("ticket_id", customerTicket.getTicketId()); + wrapper.groupBy("ticket_id"); + CustomerTicket customerTicket1 = customerTicketMapper.selectOne(wrapper); + customerTicket1.setStaffId(customerTicket.getStaffId()); + customerTicket1.setIsVerification(1); + baseMapper.updateCustomerTicket(customerTicket1); + } } diff --git a/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationPersonServiceImpl.java b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationPersonServiceImpl.java new file mode 100644 index 0000000..b2fb41a --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/impl/meeting/ReservationPersonServiceImpl.java @@ -0,0 +1,180 @@ +package com.ics.admin.service.impl.meeting; + +import java.util.List; +import java.util.stream.Collectors; + +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.BuildingDetail; +import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.Reservation; +import com.ics.admin.domain.meeting.RoomContent; +import com.ics.admin.mapper.meeting.ReservationMapper; +import com.ics.admin.mapper.meeting.ReservationPersonMapper; +import com.ics.admin.mapper.meeting.RoomContentMapper; +import com.ics.admin.service.IBuildingDetailService; +import com.ics.admin.service.IRoomService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.ics.admin.domain.meeting.ReservationPerson; +import com.ics.admin.service.meeting.IReservationPersonService; + +/** + * 预约参观人员Service业务层处理 + * + * @author chen + * @date 2024-03-06 + */ +@Service +public class ReservationPersonServiceImpl extends ServiceImpl implements IReservationPersonService { + @Autowired + private ReservationPersonMapper reservationPersonMapper; + + @Autowired + private ReservationMapper reservationMapper; + + @Autowired + private RoomContentMapper roomContentMapper; + + + @Autowired + private IRoomService roomService; + + @Autowired + private IBuildingDetailService buildingDetailService; + + @Autowired + private IReservationPersonService reservationPersonService; + + /** + * 查询预约参观人员 + * + * @param id 预约参观人员ID + * @return 预约参观人员 + */ + @Override + public ReservationPerson selectReservationPersonById(Long id) { + return reservationPersonMapper.selectById(id); + } + + /** + * 查询预约参观人员列表 + * + * @param reservationPerson 预约参观人员 + * @return 预约参观人员 + */ + @Override + public List selectReservationPersonList(ReservationPerson reservationPerson) { + QueryWrapper queryWrapper = new QueryWrapper(); + return reservationPersonMapper.selectList(queryWrapper); + } + + /** + * 新增预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + @Override + public int insertReservationPerson(ReservationPerson reservationPerson) { + return reservationPersonMapper.insert(reservationPerson); + } + + /** + * 修改预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + @Override + public int updateReservationPerson(ReservationPerson reservationPerson) { + return reservationPersonMapper.updateById(reservationPerson); + } + + /** + * 删除预约参观人员对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteReservationPersonByIds(String ids) { + String[] idsArray = StrUtil.split(ids,","); + return reservationPersonMapper.deleteBatchIds(CollUtil.toList(idsArray)); + } + + /** + * 删除预约参观人员信息 + * + * @param id 预约参观人员ID + * @return 结果 + */ + @Override + public int deleteReservationPersonById(Long id) { + return reservationPersonMapper.deleteReservationPersonById(id); + } + + @Override + public ReservationPerson isVisitor(ReservationPerson reservationPerson) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("reservation_id",reservationPerson.getReservationId()); + queryWrapper.eq("user_id",reservationPerson.getUserId()); + queryWrapper.eq("participant_id",reservationPerson.getParticipantId()); + ReservationPerson reservationPerson1 = reservationPersonMapper.selectOne(queryWrapper); + return reservationPerson1; + } + + @Override + public IPage selectListByParticipantId(Long userId,Integer page,Integer limit) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("participant_id",userId); + List list = reservationPersonMapper.selectList(queryWrapper); + List collect = list.stream().map(item -> { + return item.getReservationId(); + }).collect(Collectors.toList()); + if (CollUtil.isEmpty(collect)){ + IPage iPage = new Page<>(page,limit); + return iPage ; + } + IPage iPage = new Page<>(page,limit); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",collect); + IPage iPage1 = reservationMapper.selectPage(iPage, wrapper); + List records = iPage1.getRecords(); + for (Reservation reservation1 : records) { + reservation1.setStatusValue(reservation1.getStauts().getValue()); + reservation1.setStatusName(reservation1.getStauts().getName()); + Long roomContentId = reservation1.getRoomContentId(); + RoomContent roomContent = roomContentMapper.selectById(roomContentId); + Room room = roomService.selectRoomById(roomContent.getRoomId()); + if (room != null) { + 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"); + } + } + reservation1.setRoomContent(roomContent); + } + + return iPage1; + + } + + @Override + public List selectListByReservationId(List collect) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",collect); + return reservationMapper.selectList(queryWrapper); + + } +} 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 643edc7..4d810a2 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,12 +1,28 @@ package com.ics.admin.service.impl.meeting; +import java.math.BigDecimal; import java.util.Date; import java.util.List; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; 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.BuildingDetail; +import com.ics.admin.domain.Room; +import com.ics.admin.domain.meeting.ReservationPerson; +import com.ics.admin.domain.meeting.RoomContent; +import com.ics.admin.domain.meeting.Ticket; +import com.ics.admin.domain.meeting.vo.MeetingAmountVo; +import com.ics.admin.mapper.meeting.RoomContentMapper; +import com.ics.admin.mapper.meeting.TicketMapper; +import com.ics.admin.service.IBuildingDetailService; +import com.ics.admin.service.IRoomService; +import com.ics.admin.service.meeting.IRoomContentService; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ics.admin.mapper.meeting.ReservationMapper; @@ -24,6 +40,17 @@ 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(); @@ -117,6 +143,103 @@ public class ReservationServiceImpl extends ServiceImplhour){ + //起步金额 乘以时长 + BigDecimal totalMoney = new BigDecimal(roomContent.getMoney()).multiply(new BigDecimal(duration)); + meetingAmountVo.setTotalMoney(totalMoney); + // duration去判断优惠卷 + if (null != reservation.getTicketId()){ + Ticket ticket = ticketMapper.selectTicketById(reservation.getTicketId()); + // 获取优惠卷时长 + Integer duration1 = ticket.getDuration(); + if (duration1>duration){ + BigDecimal bigDecimal = new BigDecimal("0.00"); + meetingAmountVo.setPaidMoney(bigDecimal); + return meetingAmountVo; + }else { + int i = duration - duration1; + BigDecimal paidMoney = new BigDecimal(roomContent.getMoney()).multiply(new BigDecimal(i)); + meetingAmountVo.setPaidMoney(paidMoney); + return meetingAmountVo; + } + }else { + // 没有优惠卷 duration * money + String money = roomContent.getMoney(); + BigDecimal bigDecimal = new BigDecimal(money); + BigDecimal bigDecimal1 = bigDecimal.multiply(new BigDecimal(duration)); + meetingAmountVo.setPaidMoney(bigDecimal1); + return meetingAmountVo; + } + }else { + BigDecimal totalMoney = new BigDecimal(roomContent.getMoney()).multiply(new BigDecimal(hour)); + meetingAmountVo.setTotalMoney(totalMoney); + if (null != reservation.getTicketId()) { + Ticket ticket = ticketMapper.selectTicketById(reservation.getTicketId()); + // 获取优惠卷时长 + Integer duration1 = ticket.getDuration(); + if (duration1 > hour) { + BigDecimal bigDecimal = new BigDecimal("0.00"); + meetingAmountVo.setPaidMoney(bigDecimal); + return meetingAmountVo; + } else { + long i = hour - duration1; + BigDecimal multiply = new BigDecimal(roomContent.getMoney()).multiply(new BigDecimal(i)); + meetingAmountVo.setPaidMoney(multiply); + return meetingAmountVo; + } + }else { + // 没有优惠卷 duration * money + String money = roomContent.getMoney(); + BigDecimal bigDecimal = new BigDecimal(money); + BigDecimal bigDecimal1 = bigDecimal.multiply(new BigDecimal(hour)); + meetingAmountVo.setPaidMoney(bigDecimal1); + return meetingAmountVo; + } + } + } + + @Override + public IPage selectReservationListByUserId(Reservation reservation, Integer pageNum, Integer pageSize) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id",reservation.getUserId()); + IPage pages = new Page<>(pageNum,pageSize); + IPage userIPage = reservationMapper.selectPage(pages,queryWrapper); + for (Reservation reservation1 : userIPage.getRecords()) { + reservation1.setStatusValue(reservation1.getStauts().getValue()); + reservation1.setStatusName(reservation1.getStauts().getName()); + Long roomContentId = reservation1.getRoomContentId(); + RoomContent roomContent = roomContentMapper.selectById(roomContentId); + Room room = roomService.selectRoomById(roomContent.getRoomId()); + if (room != null) { + 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"); + } + } + reservation1.setRoomContent(roomContent); + } + return userIPage; + + } + /** * 判断一个时间段是否包含另一个时间段,包含:TRUE,不包含: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 d018d35..e61a4dc 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 @@ -10,11 +10,14 @@ 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; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.mapper.meeting.RoomItemByRoomMapper; +import com.ics.admin.mapper.meeting.RoomServeByRoomMapper; import com.ics.admin.service.IBuildingDetailService; import com.ics.admin.service.IRoomService; import com.ics.admin.service.meeting.*; @@ -49,9 +52,15 @@ public class RoomContentServiceImpl extends ServiceImpl selectRoomContentList(RoomContent roomContent) { QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.like(roomContent.getMeetingName() !=null,"meeting_name", roomContent.getMeetingName()); + queryWrapper.eq(roomContent.getTypeName() !=null,"type", roomContent.getTypeName()); + queryWrapper.eq(roomContent.getShape() !=null,"shape", roomContent.getShape()); + queryWrapper.eq(roomContent.getCapacityNum() !=null,"capacity_num", roomContent.getCapacityNum()); return roomContentMapper.selectList(queryWrapper); } @@ -194,6 +207,7 @@ public class RoomContentServiceImpl extends ServiceImpl roomServe1 = new ArrayList<>(); + List roomItemList = new ArrayList<>(); List roomServeByRooms = iRoomServeByRoomService.selectRoomServeByRoomList(roomServeByRoom); if (CollUtil.isNotEmpty(roomServeByRooms)){ for (RoomServeByRoom serveByRoom : roomServeByRooms) { @@ -202,6 +216,17 @@ public class RoomContentServiceImpl extends ServiceImpl roomItemByRooms = roomItemByRoomService.selectRoomItemByRoomList(roomItemByRoom); + if (CollUtil.isNotEmpty(roomItemByRooms)){ + for (RoomItemByRoom itemByRoom : roomItemByRooms) { + RoomItem roomItem = roomItemService.selectRoomItemById(itemByRoom.getItemId()); + roomItemList.add(roomItem); + } + roomContent.setRoomItemList(roomItemList); + } + // 所在楼层,占地面积,办公面积 Room room = roomService.selectRoomById(roomContent.getRoomId()); if (room != null) { @@ -260,23 +285,18 @@ public class RoomContentServiceImpl extends ServiceImpl 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) { + + List reservations = reservationMapper.selectListByDate(meetingRoomId); + System.out.println(reservations); + for (Date dateTime : reservations) { ReservationDTO reservationDTO = new ReservationDTO(); - reservationDTO.setNowDate(dateTime); + reservationDTO.setNowDate(DateUtil.format(dateTime,"yyyy-MM-dd")); // 查询会议室记录 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"); + wrapper.eq("room_content_id",meetingRoomId); + 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 reservation = reservationMapper.selectList(wrapper); for (Reservation reservation1 : reservation) { reservation1.setStatusValue(reservation1.getStauts().getValue()); @@ -287,4 +307,71 @@ public class RoomContentServiceImpl extends ServiceImpl selectMeetingRoomServiceAndEquipment(Long id) { + + HashMap map = new HashMap<>(); + RoomServeByRoom roomServeByRoom = new RoomServeByRoom(); + roomServeByRoom.setRomeContentId(id); + List roomServe1 = new ArrayList<>(); + List roomServe2 = new ArrayList<>(); + List roomItemList = new ArrayList<>(); + List roomServeByRooms = iRoomServeByRoomService.selectRoomServeByRoomList(roomServeByRoom); + if (CollUtil.isNotEmpty(roomServeByRooms)){ + for (RoomServeByRoom serveByRoom : roomServeByRooms) { + RoomServe roomServe = iRoomServeService.selectRoomServeById(serveByRoom.getServeId()); + if (roomServe.getServeType() == 1){ + roomServe1.add(roomServe); + }else if (roomServe.getServeType() == 2){ + roomServe2.add(roomServe); + } + } + map.put("roomFreeServe",roomServe1); + map.put("roomFServe",roomServe2); + } + RoomItemByRoom roomItemByRoom = new RoomItemByRoom(); + roomItemByRoom.setRoomContentId(id); + List roomItemByRooms = roomItemByRoomService.selectRoomItemByRoomList(roomItemByRoom); + if (CollUtil.isNotEmpty(roomItemByRooms)){ + for (RoomItemByRoom itemByRoom : roomItemByRooms) { + RoomItem roomItem = roomItemService.selectRoomItemById(itemByRoom.getItemId()); + roomItemList.add(roomItem); + } + map.put("roomItem",roomItemList); + } + return map; + } + + @Override + public int roomServeByRoom(RoomServeByRoom roomServeByRoom) { + + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("rome_content_id",roomServeByRoom.getRomeContentId()); + roomServeByRoomMapper.delete(wrapper); + for (Long id : roomServeByRoom.getServeIds()) { + RoomServeByRoom roomServeByRoom1 = new RoomServeByRoom(); + roomServeByRoom1.setServeId(id); + roomServeByRoom1.setRomeContentId(roomServeByRoom.getRomeContentId()); + iRoomServeByRoomService.insertRoomServeByRoom(roomServeByRoom1); + } + return 1; + + } + + @Override + public int addItemServe(RoomItemByRoom roomItemByRoom) { + + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.eq("room_content_id",roomItemByRoom.getRoomContentId()); + roomItemByRoomMapper.delete(wrapper); + for (Long id : roomItemByRoom.getItemIds()) { + RoomItemByRoom roomItemByRoom1 = new RoomItemByRoom(); + roomItemByRoom1.setItemId(id); + roomItemByRoom1.setRoomContentId(roomItemByRoom.getRoomContentId()); + roomItemByRoomService.insertRoomItemByRoom(roomItemByRoom1); + } + return 1; + } + } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/ICustomerTicketService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/ICustomerTicketService.java index 2fcb84d..d714830 100644 --- a/ics-admin/src/main/java/com/ics/admin/service/meeting/ICustomerTicketService.java +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/ICustomerTicketService.java @@ -2,6 +2,8 @@ package com.ics.admin.service.meeting; import com.ics.admin.domain.meeting.CustomerTicket; import com.baomidou.mybatisplus.extension.service.IService; +import com.ics.admin.domain.meeting.vo.UserCustomerVo; + import java.util.List; /** @@ -59,6 +61,8 @@ public interface ICustomerTicketService extends IService { */ int deleteCustomerTicketById(Long id); - List getCustomerTicket(Long userId); + List getCustomerTicket(UserCustomerVo userCustomerVo); + + void updateCustomerTicketBYUserId(CustomerTicket customerTicket); } diff --git a/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationPersonService.java b/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationPersonService.java new file mode 100644 index 0000000..6792707 --- /dev/null +++ b/ics-admin/src/main/java/com/ics/admin/service/meeting/IReservationPersonService.java @@ -0,0 +1,70 @@ +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.ReservationPerson; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 预约参观人员Service接口 + * + * @author chen + * @date 2024-03-06 + */ +public interface IReservationPersonService extends IService { + /** + * 查询预约参观人员 + * + * @param id 预约参观人员ID + * @return 预约参观人员 + */ + ReservationPerson selectReservationPersonById(Long id); + + /** + * 查询预约参观人员列表 + * + * @param reservationPerson 预约参观人员 + * @return 预约参观人员集合 + */ + List selectReservationPersonList(ReservationPerson reservationPerson); + + /** + * 新增预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + int insertReservationPerson(ReservationPerson reservationPerson); + + /** + * 修改预约参观人员 + * + * @param reservationPerson 预约参观人员 + * @return 结果 + */ + int updateReservationPerson(ReservationPerson reservationPerson); + + /** + * 批量删除预约参观人员 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + int deleteReservationPersonByIds(String ids); + + /** + * 删除预约参观人员信息 + * + * @param id 预约参观人员ID + * @return 结果 + */ + int deleteReservationPersonById(Long id); + + ReservationPerson isVisitor(ReservationPerson reservationPerson); + + IPage selectListByParticipantId(Long userId, Integer page, Integer limit); + + List selectListByReservationId(List collect); + +} 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 471fb83..d54e0cf 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 @@ -1,7 +1,11 @@ package com.ics.admin.service.meeting; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ics.admin.domain.meeting.Reservation; import com.baomidou.mybatisplus.extension.service.IService; +import com.ics.admin.domain.meeting.vo.MeetingAmountVo; + +import java.math.BigDecimal; import java.util.List; /** @@ -60,4 +64,8 @@ public interface IReservationService extends IService { int deleteReservationById(Long id); boolean selectFreeMeetingRoom(Reservation reservation); + + MeetingAmountVo calculateMeetingRoomAmount(Reservation reservation); + + IPage selectReservationListByUserId(Reservation reservation, Integer pageNum, Integer pageSize); } 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 2a42459..050dcf6 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,9 +1,9 @@ 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.ics.admin.domain.meeting.*; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -69,4 +69,10 @@ public interface IRoomContentService extends IService { Map selectSearchInfoByType(Integer type); List selectMeetingRoomRecord(Long meetingRoomId); + + HashMap selectMeetingRoomServiceAndEquipment(Long meetingRoomId); + + int roomServeByRoom(RoomServeByRoom roomServeByRoom); + + int addItemServe(RoomItemByRoom roomItemByRoom); } 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 2a72eda..f74d7e8 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 @@ -58,4 +58,6 @@ public interface IUserEquipmentService extends IService { * @return 结果 */ int deleteUserEquipmentById(Long id); + + List getEquipmentByUserId(String userId); } diff --git a/ics-admin/src/main/resources/mapper/admin/RoomMapper.xml b/ics-admin/src/main/resources/mapper/admin/RoomMapper.xml index 3a3f319..994b9d3 100644 --- a/ics-admin/src/main/resources/mapper/admin/RoomMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/RoomMapper.xml @@ -112,6 +112,7 @@ AND ir.name LIKE concat('%', #{name}, '%') + AND ir.building_detail_id = #{buildingDetailId} AND ib.building_name LIKE concat('%', #{buildingName}, '%') diff --git a/ics-admin/src/main/resources/mapper/admin/meeting/CustomerTicketMapper.xml b/ics-admin/src/main/resources/mapper/admin/meeting/CustomerTicketMapper.xml index e9691bd..ac9ee85 100644 --- a/ics-admin/src/main/resources/mapper/admin/meeting/CustomerTicketMapper.xml +++ b/ics-admin/src/main/resources/mapper/admin/meeting/CustomerTicketMapper.xml @@ -8,13 +8,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - SELECT id, customer_id, ticket_id, num, is_verification, create_time FROM tb_customer_ticket + SELECT id, customer_id, ticket_id, num, is_verification, create_time,staff_id,type FROM tb_customer_ticket @@ -47,7 +49,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE id = #{id} - + + 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); + } + }