qh 2 年 前
コミット
d93afce67a
共有19 個のファイルを変更した724 個の追加1 個の削除を含む
  1. 25 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java
  2. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/BookingLayoutRoomsDto.java
  3. 84 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusLivingCustomer.java
  4. 206 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomsLivingOrder.java
  5. 60 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusTeam.java
  6. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusLivingCustomerMapper.java
  7. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusRoomsLivingOrderMapper.java
  8. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusTeamMapper.java
  9. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusLivingCustomerMapper.xml
  10. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomsLivingOrderMapper.xml
  11. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusTeamMapper.xml
  12. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusLivingCustomerService.java
  13. 6 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomBookingOrdersService.java
  14. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomsLivingOrderService.java
  15. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusTeamService.java
  16. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusLivingCustomerServiceImpl.java
  17. 169 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java
  18. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomsLivingOrderServiceImpl.java
  19. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusTeamServiceImpl.java

+ 25 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java

@@ -16,6 +16,7 @@ import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.business.dto.BatchOrderSavaDto;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
 import org.jeecg.modules.business.entity.BusBookingBatch;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
 import org.jeecg.modules.business.entity.BusRoomBookingOrders;
 import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
 
@@ -247,5 +248,28 @@ public class BusRoomBookingOrdersController extends JeecgController<BusRoomBooki
 		 return  Result.ok(service.setBatchOrderStatus(batch));
 	 }
 
+	 /**
+	  * 预约房间入住
+	  * @param
+	  * @return
+	  */
+	 @ApiOperation(value="酒店预定订单-预约房间入住", notes="酒店预定订单-预约房间入住")
+	 @RequestMapping(value = "booking-to-live",method = RequestMethod.POST)
+	 public  Result<Boolean> bookingRoomToLive(String bookingRoomId, @RequestBody List<BusLivingCustomer> customers) {
+		 return  Result.ok(service.bookingToLive(bookingRoomId, customers));
+	 }
+
+	 /**
+	  * 入住
+	  * @param
+	  * @return
+	  */
+	 @ApiOperation(value="酒店预定订单-入住", notes="酒店预定订单-入住")
+	 @RequestMapping(value = "living",method = RequestMethod.POST)
+	 public  Result<Boolean> living(@RequestBody BookingOrderSaveDto param) {
+		 return  Result.ok(service.customerLiving(param));
+	 }
+
+
 
-}
+ }

+ 9 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/BookingLayoutRoomsDto.java

@@ -3,6 +3,9 @@ package org.jeecg.modules.business.dto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+
+import java.util.List;
 
 @Data
 @ApiModel(value="预定房间和房型参数", description="预定房间和房型参数")
@@ -13,4 +16,10 @@ public class BookingLayoutRoomsDto {
     private String roomId;
     @ApiModelProperty(value = "是否主房")
     private Boolean isMain;
+    @ApiModelProperty(value = "同住人信息")
+    private List<BusLivingCustomer> livingCustomers;
+    @ApiModelProperty(value = "费用信息.暂时不需要")
+    private List<String> orderFees;
+
+
 }

+ 84 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusLivingCustomer.java

@@ -0,0 +1,84 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_living_customer
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_living_customer")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_living_customer对象", description="bus_living_customer")
+public class BusLivingCustomer implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**key*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "key")
+    private String id;
+	/**同住人id*/
+	@Excel(name = "同住人id", width = 15)
+    @ApiModelProperty(value = "同住人id")
+    private String customerId;
+	/**入住接待订单id*/
+	@Excel(name = "入住接待订单id", width = 15)
+    @ApiModelProperty(value = "入住接待订单id")
+    private String livingOrderId;
+	/**房间id*/
+	@Excel(name = "房间id", width = 15)
+    @ApiModelProperty(value = "房间id")
+    private String roomId;
+	/**房间名称*/
+	@Excel(name = "房间名称", width = 15)
+    @ApiModelProperty(value = "房间名称")
+    private String roomName;
+	/**同住人名称*/
+	@Excel(name = "同住人名称", width = 15)
+    @ApiModelProperty(value = "同住人名称")
+    private String customerName;
+	/**同住人手机号*/
+	@Excel(name = "同住人手机号", width = 15)
+    @ApiModelProperty(value = "同住人手机号")
+    private String phone;
+	/**证件类型*/
+	@Excel(name = "证件类型", width = 15)
+    @ApiModelProperty(value = "证件类型")
+    private Integer certType;
+	/**证件号*/
+	@Excel(name = "证件号", width = 15)
+    @ApiModelProperty(value = "证件号")
+    private String certNo;
+	/**1男2女*/
+	@Excel(name = "1男2女", width = 15)
+    @ApiModelProperty(value = "1男2女")
+    private Integer gender;
+	/**添加时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "添加时间")
+    private Date createTime;
+	/**操作人*/
+	@Excel(name = "操作人", width = 15)
+    @ApiModelProperty(value = "操作人")
+    private String createUser;
+}

+ 206 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomsLivingOrder.java

@@ -0,0 +1,206 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_rooms_living_order
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_rooms_living_order")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_rooms_living_order对象", description="bus_rooms_living_order")
+public class BusRoomsLivingOrder implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**key*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "key")
+    private String id;
+	/**预定类型:1,全天;2时租*/
+	@Excel(name = "预定类型:1,全天;2时租", width = 15)
+    @ApiModelProperty(value = "预定类型:1,全天;2时租")
+    private Integer livingType;
+	/**入住时间*/
+	@Excel(name = "入住时间", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "入住时间")
+    private Date arrivalTime;
+	/**预离时间*/
+	@Excel(name = "预离时间", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "预离时间")
+    private Date dueOutTime;
+	/**客源:平台字典项目ID*/
+	@Excel(name = "客源:平台字典项目ID", width = 15)
+    @ApiModelProperty(value = "客源:平台字典项目ID")
+    private String customerSource;
+	/**早餐数量*/
+	@Excel(name = "早餐数量", width = 15)
+    @ApiModelProperty(value = "早餐数量")
+    private Integer breakfastNum;
+	/**午餐数量*/
+	@Excel(name = "午餐数量", width = 15)
+    @ApiModelProperty(value = "午餐数量")
+    private Integer lunchNum;
+	/**晚餐数量*/
+	@Excel(name = "晚餐数量", width = 15)
+    @ApiModelProperty(value = "晚餐数量")
+    private Integer dinnerNum;
+	/**入住天数*/
+	@Excel(name = "入住天数", width = 15)
+    @ApiModelProperty(value = "入住天数")
+    private Integer dayCount;
+	/**客人类型;1、散客;2、会员;3、协议单位;4、中介*/
+	@Excel(name = "客人类型;1、散客;2、会员;3、协议单位;4、中介", width = 15)
+    @ApiModelProperty(value = "客人类型;1、散客;2、会员;3、协议单位;4、中介")
+    private Integer customerType;
+	/**客人类型为会员时的会员id*/
+	@Excel(name = "客人类型为会员时的会员id", width = 15)
+    @ApiModelProperty(value = "客人类型为会员时的会员id")
+    private String vipCustomerId;
+	/**客人类型为协议单位时的协议单位id*/
+	@Excel(name = "客人类型为协议单位时的协议单位id", width = 15)
+    @ApiModelProperty(value = "客人类型为协议单位时的协议单位id")
+    private String contractTeamId;
+	/**选择协议单位之后选择协议合同的id*/
+	@Excel(name = "选择协议单位之后选择协议合同的id", width = 15)
+    @ApiModelProperty(value = "选择协议单位之后选择协议合同的id")
+    private String contractTeamProtocolId;
+	/**房价方案ID*/
+	@Excel(name = "房价方案ID", width = 15)
+    @ApiModelProperty(value = "房价方案ID")
+    private String roomPriceSlnId;
+	/**中介名称*/
+	@Excel(name = "中介名称", width = 15)
+    @ApiModelProperty(value = "中介名称")
+    private String agencyName;
+	/**联系人ID*/
+	@Excel(name = "联系人ID", width = 15)
+    @ApiModelProperty(value = "联系人ID")
+    private String contactId;
+	/**担保方式;1、无担保;2、有担保;3、OTA担保*/
+	@Excel(name = "担保方式;1、无担保;2、有担保;3、OTA担保", width = 15)
+    @ApiModelProperty(value = "担保方式;1、无担保;2、有担保;3、OTA担保")
+    private Integer warrantType;
+	/**担保人ID*/
+	@Excel(name = "担保人ID", width = 15)
+    @ApiModelProperty(value = "担保人ID")
+    private String warranter;
+	/**外部订单编号*/
+	@Excel(name = "外部订单编号", width = 15)
+    @ApiModelProperty(value = "外部订单编号")
+    private String outerOrdersNo;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String remark;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**创建人*/
+	@Excel(name = "创建人", width = 15)
+    @ApiModelProperty(value = "创建人")
+    private String createUser;
+//	/**预定记录状态;1正常,2取消*/
+//	@Excel(name = "预定记录状态;1正常,2取消", width = 15)
+//    @ApiModelProperty(value = "预定记录状态;1正常,2取消")
+//    private Integer bookingStatus;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+	/**更新人*/
+	@Excel(name = "更新人", width = 15)
+    @ApiModelProperty(value = "更新人")
+    private String updateUser;
+	/**入住类型;1、散客预定;2、团队预定*/
+	@Excel(name = "入住类型;1、散客预定;2、团队预定", width = 15)
+    @ApiModelProperty(value = "入住类型;1、散客预定;2、团队预定")
+    private Integer livingOrdersType;
+	/**是否公付房费*/
+	@Excel(name = "是否公付房费", width = 15)
+    @ApiModelProperty(value = "是否公付房费")
+    private Integer publicRoomFee;
+	/**是否公付消费*/
+	@Excel(name = "是否公付消费", width = 15)
+    @ApiModelProperty(value = "是否公付消费")
+    private Integer publicConsumeFee;
+	/**是否公付会员费*/
+	@Excel(name = "是否公付会员费", width = 15)
+    @ApiModelProperty(value = "是否公付会员费")
+    private Integer publicVipFee;
+	/**是否公付会议费*/
+	@Excel(name = "是否公付会议费", width = 15)
+    @ApiModelProperty(value = "是否公付会议费")
+    private Integer publicMeetingFee;
+	/**团队类型中的团队名称*/
+	@Excel(name = "团队类型中的团队名称", width = 15)
+    @ApiModelProperty(value = "团队类型中的团队名称")
+    private String teamName;
+	/**领队名称*/
+	@Excel(name = "领队名称", width = 15)
+    @ApiModelProperty(value = "领队名称")
+    private String leaderName;
+	/**钟点房计费项目id*/
+	@Excel(name = "钟点房计费项目id", width = 15)
+    @ApiModelProperty(value = "钟点房计费项目id")
+    private String hourRoomId;
+	/**团队类型字典ID*/
+	@Excel(name = "团队类型字典ID", width = 15)
+    @ApiModelProperty(value = "团队类型字典ID")
+    private String teamTypeDicId;
+	/**团队人数*/
+	@Excel(name = "团队人数", width = 15)
+    @ApiModelProperty(value = "团队人数")
+    private Integer teamPeopleNumber;
+    /**接待单号*/
+    @Excel(name = "接待单号", width = 15)
+    @ApiModelProperty(value = "接待单号")
+	private String livingOrderNo;
+	/**团队id*/
+	@Excel(name = "团队id", width = 15)
+    @ApiModelProperty(value = "团队id")
+    private Integer teamId;
+
+    /**预约单id*/
+    @Excel(name = "预约单id", width = 15)
+    @ApiModelProperty(value = "预约单id")
+	private String bookingOrderId;
+
+    /**定价房间id*/
+    @Excel(name = "定价房间id", width = 15)
+    @ApiModelProperty(value = "定价房间id")
+    private String bookingRoomId;
+    /**批次id*/
+    @Excel(name = "批次id", width = 15)
+    @ApiModelProperty(value = "批次id")
+    private String batchId;
+
+
+
+}

+ 60 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusTeam.java

@@ -0,0 +1,60 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_team
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_team")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_team对象", description="bus_team")
+public class BusTeam implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**key*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "key")
+    private Integer id;
+	/**客人id*/
+	@Excel(name = "客人id", width = 15)
+    @ApiModelProperty(value = "客人id")
+    private String customerId;
+	/**是否删除*/
+	@Excel(name = "是否删除", width = 15)
+    @ApiModelProperty(value = "是否删除")
+    private Integer isDelete;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+	/**createUser*/
+	@Excel(name = "createUser", width = 15)
+    @ApiModelProperty(value = "createUser")
+    private String createUser;
+	/**订单创建类型,1预约2入住*/
+	@Excel(name = "订单创建类型,1预约2入住", width = 15)
+    @ApiModelProperty(value = "订单创建类型,1预约2入住")
+    private Integer orderType;
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusLivingCustomerMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_living_customer
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface BusLivingCustomerMapper extends BaseMapper<BusLivingCustomer> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusRoomsLivingOrderMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_rooms_living_order
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface BusRoomsLivingOrderMapper extends BaseMapper<BusRoomsLivingOrder> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusTeamMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusTeam;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_team
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface BusTeamMapper extends BaseMapper<BusTeam> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusLivingCustomerMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.business.mapper.BusLivingCustomerMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomsLivingOrderMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.business.mapper.BusRoomsLivingOrderMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusTeamMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.business.mapper.BusTeamMapper">
+
+</mapper>

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusLivingCustomerService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: bus_living_customer
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface IBusLivingCustomerService extends IService<BusLivingCustomer> {
+
+}

+ 6 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomBookingOrdersService.java

@@ -3,11 +3,14 @@ package org.jeecg.modules.business.service;
 import org.jeecg.modules.business.dto.BatchOrderSavaDto;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
 import org.jeecg.modules.business.entity.BusBookingBatch;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
 import org.jeecg.modules.business.entity.BusRoomBookingOrders;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.business.vo.BatchOrderEditVo;
 import org.jeecg.modules.business.vo.BookingOrderEditVo;
 
+import java.util.List;
+
 /**
  * @Description: 酒店预定订单
  * @Author: jeecg-boot
@@ -31,4 +34,7 @@ public interface IBusRoomBookingOrdersService extends IService<BusRoomBookingOrd
     String batchOrderSave(BatchOrderSavaDto item);
 
     Boolean setBatchOrderStatus(BusBookingBatch batchOrder);
+    Boolean bookingToLive(String bookingRoomId, List<BusLivingCustomer> customers);
+
+    Boolean customerLiving(BookingOrderSaveDto livingData);
 }

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusRoomsLivingOrderService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: bus_rooms_living_order
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface IBusRoomsLivingOrderService extends IService<BusRoomsLivingOrder> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusTeamService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.modules.business.entity.BusTeam;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: bus_team
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+public interface IBusTeamService extends IService<BusTeam> {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusLivingCustomerServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+import org.jeecg.modules.business.mapper.BusLivingCustomerMapper;
+import org.jeecg.modules.business.service.IBusLivingCustomerService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: bus_living_customer
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Service
+public class BusLivingCustomerServiceImpl extends ServiceImpl<BusLivingCustomerMapper, BusLivingCustomer> implements IBusLivingCustomerService {
+
+}

+ 169 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -16,10 +16,12 @@ import org.jeecg.modules.business.mapper.BusRoomBookingOrdersMapper;
 import org.jeecg.modules.business.service.IBusBookingLayoutDayPriceService;
 import org.jeecg.modules.business.service.IBusCustomerService;
 import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
+import org.jeecg.modules.business.service.IBusRoomsLivingOrderService;
 import org.jeecg.modules.business.vo.BatchOrderEditVo;
 import org.jeecg.modules.business.vo.BookingBatchRoomsVo;
 import org.jeecg.modules.business.vo.BookingOrderEditVo;
 import org.jeecg.modules.business.vo.ExtendBusBookingRoomsVo;
+import org.jeecg.modules.rooms.Enum.RoomStatusEnum;
 import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -56,6 +58,9 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Resource
     private IBusCustomerService customerService;
 
+    @Resource
+    private IBusRoomsLivingOrderService roomsLivingOrderService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String bookingOrderSave(BookingOrderSaveDto item) {
@@ -734,6 +739,170 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean bookingToLive(String bookingRoomId, List<BusLivingCustomer> customers) {
+        BusBookingRooms bkRoom = bookingRoomsService.getById(bookingRoomId);
+        if(bkRoom == null) throw  new JeecgBootException("关联房间不存在");
+        BusRoomBookingOrders bookingOrders = getById(bkRoom.getBookingOrdersId());
+        if(bookingOrders == null) throw new JeecgBootException("房间预约单不存在");
+        LoginUser user = TokenUtils.getAuthUser();
+
+        //<editor-fold desc="订单复制 -- 散客入住">
+        BusRoomsLivingOrder livingOrder = null;
+        if(bkRoom.getBookingType().equals(BookingOrdersType.NORMAL.getKey())) {
+            //todo other
+            livingOrder = copyBookingToAcceptOrder(bookingOrders);
+        } else if(bkRoom.getBookingType().equals(BookingOrdersType.TEAM.getKey())) {
+            BusBookingBatch batch = bookingBatchService.getById(bkRoom.getBookingBatchId());
+            if(batch == null) throw new JeecgBootException("批次不存在");
+            livingOrder = copyBookingToAcceptOrder(batch, bookingOrders);
+            livingOrder.setBatchId(bkRoom.getBookingBatchId());
+        } else throw new JeecgBootException("订单类型错误");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        livingOrder.setLivingOrderNo("D"+sdf.format(System.currentTimeMillis()));
+        livingOrder.setArrivalTime(new Date());// todo 这个地方的入住开始时间应该怎么算
+        roomsLivingOrderService.save(livingOrder);
+
+        bkRoom.setRoomStatus(RoomStatusEnum.LIVE_DIRTY.getKey());
+        bookingRoomsService.updateById(bkRoom);
+        //</editor-fold>
+
+        //<editor-fold desc="同住人相关">
+        if(customers != null && customers.size() > 0) {
+            customers.forEach(s->{
+                // 【添加客人信息 Start】
+                if(s.getCustomerName() != null && !s.getCustomerName().isEmpty() && s.getPhone() != null && !s.getPhone().isEmpty()){
+                    BusCustomer customer = customerService.getOne(Wrappers.<BusCustomer>query().eq("name",s.getCustomerName())
+                            .eq("phone",s.getPhone()));
+                    if(customer == null) {
+                        // save customer
+                        BusCustomer newCustomer = new BusCustomer();
+                        newCustomer.setCreateTime(new Date());
+                        newCustomer.setCreateUser("");
+                        newCustomer.setTenantId(user.getRelTenantIds());
+                        newCustomer.setName(s.getCustomerName());
+                        newCustomer.setPhone(s.getPhone());
+                        newCustomer.setCertType(1); // 身份证
+                        customerService.save(newCustomer);
+                        s.setCustomerId(newCustomer.getId());
+                    } else {
+                        s.setCustomerId(customer.getId());
+                    }
+                } else throw new JeecgBootException("客人信息不能为空");
+
+                // 【添加客人信息 end】
+            });
+        } else throw new JeecgBootException("请添加入住人信息");
+        //</editor-fold>
+
+        //<editor-fold desc="todo:账单相关">
+        // TODO: 待做
+        //</editor-fold>
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean customerLiving(BookingOrderSaveDto livingData) {
+        String bookingOrderNo = bookingOrderSave(livingData);
+        if(bookingOrderNo != null && !bookingOrderNo.isEmpty()){
+            BookingOrderEditVo bookingOrderVo =  getBookingInfoById(null,bookingOrderNo);
+            // 散客取roomIds
+            if(bookingOrderVo.getOrderInfo().getBookingOrdersType().equals(BookingOrdersType.NORMAL.getKey())) {
+                bookingRoomToLiving(livingData, bookingOrderVo.getRoomIds(), bookingOrderVo);
+            } else if(bookingOrderVo.getOrderInfo().getBookingOrdersType().equals(BookingOrdersType.TEAM.getKey())) {
+                bookingOrderVo.getBatchRooms().forEach(b->{
+                    bookingRoomToLiving(livingData, b.getRoomIds(), bookingOrderVo);
+                });
+            } else throw new JeecgBootException("订单类型错误");
+        }
+        return true;
+    }
+
+    private void bookingRoomToLiving(BookingOrderSaveDto livingData, List<ExtendBusBookingRoomsVo> roomIds, BookingOrderEditVo bookingOrderVo) {
+        roomIds.forEach(bkRoom-> {
+            if(livingData.getRoomIds().stream().filter(s->s.getRoomId().equals(bkRoom.getRoomId())).count() == 0)
+                throw new JeecgBootException("房间信息未找到");
+            List<BusLivingCustomer> customers = livingData.getRoomIds().stream().filter(s->s.getRoomId().equals(bkRoom.getRoomId())).findFirst().get().getLivingCustomers();
+            if(customers == null || customers.size() == 0) throw new JeecgBootException("请添加客户信息");
+            bookingToLive(bkRoom.getId(), customers);
+        });
+    }
+
+
+    private BusRoomsLivingOrder copyBookingToAcceptOrder(BusRoomBookingOrders bkOrder) {
+        BusRoomsLivingOrder livingOrder = new BusRoomsLivingOrder();
+        livingOrder.setAgencyName(bkOrder.getAgencyName());
+        livingOrder.setArrivalTime(bkOrder.getArrivalTime());
+        livingOrder.setBreakfastNum(bkOrder.getBreakfastNum());
+        livingOrder.setContactId(bkOrder.getContactId());
+        livingOrder.setCreateTime(new Date());
+        livingOrder.setCreateUser("");
+        livingOrder.setCustomerSource(bkOrder.getCustomerSource());
+        livingOrder.setLivingOrdersType(bkOrder.getBookingOrdersType());
+        livingOrder.setLivingType(bkOrder.getBookingType());
+        livingOrder.setOuterOrdersNo(bkOrder.getOuterOrdersNo());
+        livingOrder.setContractTeamId(bkOrder.getContractTeamId());
+        livingOrder.setContractTeamProtocolId(bkOrder.getContractTeamProtocolId());
+        livingOrder.setDayCount(bkOrder.getDayCount());
+        livingOrder.setCustomerType(bkOrder.getCustomerType());
+        livingOrder.setDinnerNum(bkOrder.getDinnerNum());
+        livingOrder.setLunchNum(bkOrder.getLunchNum());
+        livingOrder.setDueOutTime(bkOrder.getDueOutTime());
+        livingOrder.setHourRoomId(bkOrder.getHourRoomId());
+        livingOrder.setWarranter(bkOrder.getWarranter());
+        livingOrder.setWarrantType(bkOrder.getWarrantType());
+        livingOrder.setVipCustomerId(bkOrder.getVipCustomerId());
+        livingOrder.setTeamName(bkOrder.getTeamName());
+        livingOrder.setTeamTypeDicId(bkOrder.getTeamTypeDicId());
+        livingOrder.setRoomPriceSlnId(bkOrder.getRoomPriceSlnId());
+        livingOrder.setLeaderName(bkOrder.getLeaderName());
+        livingOrder.setPublicConsumeFee(bkOrder.getPublicConsumeFee());
+        livingOrder.setPublicMeetingFee(bkOrder.getPublicMeetingFee());
+        livingOrder.setPublicVipFee(bkOrder.getPublicVipFee());
+        livingOrder.setPublicRoomFee(bkOrder.getPublicRoomFee());
+        livingOrder.setTeamPeopleNumber(bkOrder.getTeamPeopleNumber());
+        livingOrder.setBookingOrderId(bkOrder.getId());
+        return livingOrder;
+    }
+
+    private BusRoomsLivingOrder copyBookingToAcceptOrder(BusBookingBatch bkOrder, BusRoomBookingOrders bookingOrder) {
+        BusRoomsLivingOrder livingOrder = new BusRoomsLivingOrder();
+        livingOrder.setAgencyName(bkOrder.getAgencyName());
+        livingOrder.setArrivalTime(bkOrder.getArrivalTime());
+        livingOrder.setBreakfastNum(bkOrder.getBreakfastNum());
+        livingOrder.setContactId(bkOrder.getContactId());
+        livingOrder.setCreateTime(new Date());
+        livingOrder.setCreateUser("");
+        livingOrder.setCustomerSource(bkOrder.getCustomerSource());
+        livingOrder.setLivingOrdersType(BookingOrdersType.TEAM.getKey());
+        livingOrder.setLivingType(bkOrder.getBookingType());
+        livingOrder.setOuterOrdersNo(bkOrder.getOuterOrdersNo());
+        livingOrder.setContractTeamId(bkOrder.getContractTeamId());
+        livingOrder.setContractTeamProtocolId(bkOrder.getContractTeamProtocolId());
+        livingOrder.setDayCount(bkOrder.getDayCount());
+        livingOrder.setCustomerType(bkOrder.getCustomerType());
+        livingOrder.setDinnerNum(bkOrder.getDinnerNum());
+        livingOrder.setLunchNum(bkOrder.getLunchNum());
+        livingOrder.setDueOutTime(bkOrder.getDueOutTime());
+        livingOrder.setHourRoomId(bkOrder.getHourRoomId());
+        livingOrder.setWarranter(bkOrder.getWarranter());
+        livingOrder.setWarrantType(bkOrder.getWarrantType());
+        livingOrder.setVipCustomerId(bkOrder.getVipCustomerId());
+        livingOrder.setTeamName(bookingOrder.getTeamName());
+        livingOrder.setTeamTypeDicId(bookingOrder.getTeamTypeDicId());
+        livingOrder.setRoomPriceSlnId(bkOrder.getRoomPriceSlnId());
+        livingOrder.setLeaderName(bookingOrder.getLeaderName());
+        livingOrder.setPublicConsumeFee(bookingOrder.getPublicConsumeFee());
+        livingOrder.setPublicMeetingFee(bookingOrder.getPublicMeetingFee());
+        livingOrder.setPublicVipFee(bookingOrder.getPublicVipFee());
+        livingOrder.setPublicRoomFee(bookingOrder.getPublicRoomFee());
+        livingOrder.setTeamPeopleNumber(bookingOrder.getTeamPeopleNumber());
+        livingOrder.setBookingOrderId(bkOrder.getId());
+        return livingOrder;
+    }
+
 
     private BusBookingBatch copyBatchToBase(BookingBatchRoomsDto data) {
         BusBookingBatch batch = new BookingBatchRoomsDto();

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomsLivingOrderServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import org.jeecg.modules.business.mapper.BusRoomsLivingOrderMapper;
+import org.jeecg.modules.business.service.IBusRoomsLivingOrderService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: bus_rooms_living_order
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Service
+public class BusRoomsLivingOrderServiceImpl extends ServiceImpl<BusRoomsLivingOrderMapper, BusRoomsLivingOrder> implements IBusRoomsLivingOrderService {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusTeamServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusTeam;
+import org.jeecg.modules.business.mapper.BusTeamMapper;
+import org.jeecg.modules.business.service.IBusTeamService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: bus_team
+ * @Author: jeecg-boot
+ * @Date:   2023-04-04
+ * @Version: V1.0
+ */
+@Service
+public class BusTeamServiceImpl extends ServiceImpl<BusTeamMapper, BusTeam> implements IBusTeamService {
+
+}