فهرست منبع

Merge remote-tracking branch 'origin/master'

xiari 1 سال پیش
والد
کامیت
8ac82bfbd6

+ 105 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/HotelRoom.java

@@ -0,0 +1,105 @@
+package org.dromara.hotel.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.tenant.core.TenantEntity;
+
+import java.io.Serial;
+
+/**
+ * 房间定义对象
+ *
+ * @author bing
+ * @date 2024-08-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_pt_room")
+public class HotelRoom extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 房间Id,主键
+     */
+    @TableId(value = "room_id")
+    private Long roomId;
+
+    /**
+     * 所属区域id
+     */
+    private Long areaId;
+
+    /**
+     * 房间编码
+     */
+    private String roomCode;
+
+    /**
+     * 房间名称
+     */
+    private String roomName;
+
+    /**
+     * 房间类型,见FJLX字典类型
+     */
+    private String roomType;
+
+    /**
+     * 门牌号1
+     */
+    private String codeOne;
+
+    /**
+     * 门牌号2
+     */
+//    private String codeTwo;
+
+    /**
+     * 门牌号3
+     */
+//    private String codeThree;
+
+    /**
+     * 门牌号4
+     */
+//    private String codeFour;
+
+    /**
+     * 门牌号5
+     */
+//    private String codeFive;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0-未删除 2-已删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+
+    /**
+     * 有无网络
+     */
+    private String hasNetwork;
+
+    /**
+     * 客房类型
+     */
+    private Long guestRoomType;
+
+    /**
+     * 状态 字典 dict_hotel_room_status
+     */
+    private String status;
+
+
+}

+ 103 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/vo/HotelRoomVo.java

@@ -0,0 +1,103 @@
+package org.dromara.hotel.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.hotel.domain.HotelRoom;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 房间定义视图对象 t_pt_room
+ *
+ * @author bing
+ * @date 2024-08-09
+ */
+@Data
+@AutoMapper(target = HotelRoom.class)
+public class HotelRoomVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 房间Id,主键
+     */
+    @ExcelProperty(value = "房间Id,主键")
+    private Long roomId;
+
+    /**
+     * 所属区域id
+     */
+//    @ExcelProperty(value = "所属区域id")
+    private Long areaId;
+
+    @ExcelProperty(value = "所属区域")
+    private String areaName;
+    private String allAreaName;
+    /**
+     * 房间编码
+     */
+    @ExcelProperty(value = "房间编码")
+    private String roomCode;
+
+    /**
+     * 房间名称
+     */
+    @ExcelProperty(value = "房间名称")
+    private String roomName;
+
+    /**
+     * 房间类型,见FJLX字典类型
+     */
+    @ExcelProperty(value = "房间类型", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "FJLX")
+    private String roomType;
+
+    /**
+     * 门牌号1
+     */
+    @ExcelProperty(value = "门牌号1")
+    private String codeOne;
+
+
+    /**
+     * 客房类型
+     */
+    private Long guestRoomType;
+
+    @Translation(type = TransConstant.GUEST_ROOM_TYPE_TO_NAME, mapper = "guestRoomType")
+    private String guestRoomTypeName;
+
+    /**
+     * 有无网络
+     */
+    @ExcelProperty(value = "有无网络", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "dict_has_network")
+    private String hasNetwork;
+
+    private String remark;
+
+    /**
+     * 状态 字典 dict_hotel_room_status
+     */
+    private String status;
+
+    /**
+     * 门锁Id
+     */
+    private String lockId;
+
+    /**
+     * 门锁密码
+     */
+    private String lockPassword;
+
+
+}

+ 16 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/mapper/HotelRoomMapper.java

@@ -0,0 +1,16 @@
+package org.dromara.hotel.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.hotel.domain.HotelRoom;
+import org.dromara.hotel.domain.vo.HotelRoomVo;
+
+/**
+ * 房间定义Mapper接口
+ *
+ * @author bing
+ * @date 2024-08-09
+ */
+public interface HotelRoomMapper extends BaseMapperPlus<HotelRoom, HotelRoomVo> {
+
+
+}

+ 17 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/IHotelRoomService.java

@@ -0,0 +1,17 @@
+package org.dromara.hotel.service;
+
+import org.dromara.hotel.domain.vo.HotelRoomVo;
+
+/**
+ * @author Hz
+ * @date 2025/3/20
+ * @description 客房服务
+ */
+public interface IHotelRoomService {
+    /**
+     * 根据房间编码查询房间信息
+     * @param roomCode
+     * @return
+     */
+    HotelRoomVo getRoomByCode(String roomCode);
+}

+ 32 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/HotelRoomServiceImpl.java

@@ -0,0 +1,32 @@
+package org.dromara.hotel.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.hotel.domain.HotelRoom;
+import org.dromara.hotel.domain.vo.HotelRoomVo;
+import org.dromara.hotel.mapper.HotelRoomMapper;
+import org.dromara.hotel.service.IHotelRoomService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Hz
+ * @date 2025/3/20
+ * @description TODO
+ */
+
+@RequiredArgsConstructor
+@Service
+@Slf4j
+public class HotelRoomServiceImpl implements IHotelRoomService {
+
+    private final HotelRoomMapper hotelRoomMapper;
+    @Override
+    public HotelRoomVo getRoomByCode(String roomCode) {
+        //根据房间编码查询房间信息
+        HotelRoomVo hotelRoomVo = hotelRoomMapper.selectVoOne(
+            Wrappers.lambdaQuery(HotelRoom.class)
+                .eq(HotelRoom::getRoomCode, roomCode));
+        return hotelRoomVo;
+    }
+}

+ 9 - 2
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfOrderServiceImpl.java

@@ -32,10 +32,12 @@ import org.dromara.hotel.domain.bo.ChangeRoomBo;
 import org.dromara.hotel.domain.bo.ChangeRoomStatusBo;
 import org.dromara.hotel.domain.bo.KfGuestBo;
 import org.dromara.hotel.domain.bo.KfOrderBo;
+import org.dromara.hotel.domain.vo.HotelRoomVo;
 import org.dromara.hotel.domain.vo.KfOrderVo;
 import org.dromara.hotel.domain.vo.KfTeamGuestVo;
 import org.dromara.hotel.domain.vo.KfTeamVo;
 import org.dromara.hotel.mapper.KfOrderMapper;
+import org.dromara.hotel.service.IHotelRoomService;
 import org.dromara.hotel.service.IKfGuestTeamRService;
 import org.dromara.hotel.service.IKfOrderService;
 import org.dromara.hotel.service.IKfTeamService;
@@ -62,7 +64,7 @@ public class KfOrderServiceImpl implements IKfOrderService {
     private final KfOrderMapper baseMapper;
     private final IKfTeamService teamService;
     private final IKfGuestTeamRService guestTeamService;
-    private final DefaultConfig defaultConfig;
+    private final IHotelRoomService hotelRoomService;
 
     /**
      * 查询散客入住
@@ -446,7 +448,12 @@ public class KfOrderServiceImpl implements IKfOrderService {
      * 保存前的数据校验
      */
     private void validEntityBeforeSave(KfOrder entity) {
-        // TODO 做一些数据校验,如唯一约束
+        // 校验房间状态,只能入住OK房
+        HotelRoomVo room = hotelRoomService.getRoomByCode(entity.getRoomCode());
+        //校验是否为OK房
+        if (!HotelRoomStatusEnum.OK.code().equals(room.getStatus())) {
+            throw new ServiceException("只能入住OK状态的房间!");
+        }
     }
 
     /**

+ 2 - 4
ruoyi-modules/ruoyi-hotel/src/main/resources/mapper/hotel/business/KfOrderMapper.xml

@@ -70,10 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="queryListByGuestName" resultType="org.dromara.hotel.domain.vo.KfOrderVo">
-        select g.id as guestId, g.name as guestName,
-                concat('姓名: ',g.name,' | 手机号: ',g.phone, ' | '
-                , CASE o.order_status WHEN '1' THEN '当前已预定' WHEN '3' THEN '当前已入住' else '' END
-                ) AS phone
+        select g.id as guestId, g.name as guestName,g.id_card as idCard,g.phone as phone,
+            CASE o.order_status WHEN '1' THEN '已预定' WHEN '3' THEN '已入住' else '' END orderStatus
             from t_kf_guest g left join t_kf_order o on g.id = o.guest_id and o.order_status in ('1','3')
             <where>
                 g.del_flag = '0'

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java

@@ -316,7 +316,7 @@ public class BaseBusiness {
             consumeDetailBo.setConsumeDate(bo.getConsumeDate());
             consumeDetailBo.setConsumeMoney(bo.getConsumeMoney());
             consumeDetailBo.setConsumeBalance(bo.getBalance());
-            // consumeDetailBo.setCardValue(bagVo.getBalance());
+            consumeDetailBo.setCardValue(bo.getBalance());
             // 设置卡片信息
             consumeDetailBo.setCardNo(cardVo.getCardNo());
             consumeDetailBo.setFactoryId(cardVo.getFactoryId());

+ 2 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/CheckBusiness.java

@@ -601,7 +601,8 @@ public class CheckBusiness {
                         doMoney = doMoney.subtract(balance);
                         sb.append(BagNameEnum.getMessage(Integer.parseInt(bagCode)));
                         doBagVos.add(bagVo);
-                        log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, consumeMoney,doMoney,userAccountVo.getRealName());
+                        log.warn("[上传交易]-[扣费钱包]-[钱包代码:{},钱包余额:{},消费金额:{},扣款金额:{},姓名:{}]", bagCode, balance, balance,
+                                 doMoney, userAccountVo.getRealName());
                     }
                 }
             }

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/ConsumeBusiness.java

@@ -209,7 +209,7 @@ public class ConsumeBusiness {
             p.setCreditType(baseBusiness.getCreditType(p.getStatusFlag()));
             p.setRecordStatus(364L);
             try {
-                R<ErrorInfo> result = postOrder(p, "", "");
+                R<ErrorInfo> result = fullOrder(p, "", "");
                 if (R.isSuccess(result)) {
                     doMessage.add(MessageFormat.format("[入账成功]-[{0}]", JsonUtils.toJsonString(p)));
                     success.getAndIncrement();

+ 1 - 1
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/ConsumeController.java

@@ -199,7 +199,7 @@ public class ConsumeController {
             // 发送消息
             if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
                 ConsumptionBo bo = recordConvertStrategy.convert(record, "YC");
-                bo.setConsumeDate(jsonObject.getDate("consumeDate"));
+                // bo.setConsumeDate(jsonObject.getDate("consumeDate"));
                 ThreadUtil.execAsync(() -> baseBusiness.sendCloudConsume(bo));
             }
         }