소스 검색

退房发生退房消息

wangzhengliang 3 년 전
부모
커밋
346b34ae99

+ 14 - 0
src/main/java/com/chuanghai/ihotel/enums/SystemNoticeTypeEnum.java

@@ -0,0 +1,14 @@
+package com.chuanghai.ihotel.enums;
+
+/**
+ * @Author: codingliang
+ * @Description: 系统消息类型枚举
+ * @Date: 2022-08-11 17:56
+ * @Version: V1.0
+ **/
+public enum  SystemNoticeTypeEnum {
+    /**
+     * 用户退房
+     */
+    USER_RETURN
+}

+ 3 - 0
src/main/java/com/chuanghai/ihotel/service/SystemNoticeService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.chuanghai.ihotel.common.utils.PageUtils;
 import com.chuanghai.ihotel.common.utils.PageParam;
 import com.chuanghai.ihotel.entity.SystemNoticeEntity;
+import com.chuanghai.ihotel.enums.SystemNoticeTypeEnum;
 
 /**
  * 系统通知 
@@ -17,5 +18,7 @@ public interface SystemNoticeService extends IService<SystemNoticeEntity> {
     PageUtils queryPage(String readFlag, PageParam pageParam);
 
     void read(Long[] ids);
+
+    void addNotice(String title, String content, SystemNoticeTypeEnum type);
 }
 

+ 13 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java

@@ -33,6 +33,7 @@ import com.chuanghai.ihotel.enums.EventMessageTypeEnum;
 import com.chuanghai.ihotel.enums.OrderBillStatuEnum;
 import com.chuanghai.ihotel.enums.OrderStatuEnum;
 import com.chuanghai.ihotel.enums.RoomStatuEnum;
+import com.chuanghai.ihotel.enums.SystemNoticeTypeEnum;
 import com.chuanghai.ihotel.enums.UserIdentityTypeEnum;
 import com.chuanghai.ihotel.service.HotelOrderBillService;
 import com.chuanghai.ihotel.service.HotelOrderService;
@@ -41,6 +42,7 @@ import com.chuanghai.ihotel.service.RoomDoorLockDataService;
 import com.chuanghai.ihotel.service.RoomRealtimeStatuService;
 import com.chuanghai.ihotel.service.RoomService;
 import com.chuanghai.ihotel.service.RoomTypeService;
+import com.chuanghai.ihotel.service.SystemNoticeService;
 import com.chuanghai.ihotel.service.SystemSettingService;
 import com.chuanghai.ihotel.util.CommonUtil;
 import com.chuanghai.ihotel.vo.AdminOrderIndexVO;
@@ -90,6 +92,8 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
     @Autowired
     private RoomDoorLockDataService roomDoorLockDataService;
     @Autowired
+    private SystemNoticeService systemNoticeService;
+    @Autowired
     private PayComponent payComponent;
     @Autowired
     private JXNXSPayConfig jxnxsPayConfig;
@@ -567,6 +571,7 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         this.update(null, updateWrapper);
     }
 
+    String returnOrderTemplate = "订单id【%s】,用户【%s】,房间号【%s】已退房,需要清扫";
     @Override
     public OrderBillHandleVO userReturnOrder(Long orderId) {
         HotelOrderEntity order = userGetOrderById(orderId);
@@ -607,6 +612,10 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         updateWrapper.last("limit 1");
         this.update(null, updateWrapper);
 
+        // 发送通知消息  优化:可以使用异步的方式
+        String format = String.format(returnOrderTemplate, orderId, order.getUserName(), order.getRoomNo());
+        systemNoticeService.addNotice("用户退房通知", format, SystemNoticeTypeEnum.USER_RETURN);
+
         OrderBillHandleVO vo = new OrderBillHandleVO();
         vo.setOrderId(orderId);
         vo.setBillId(billHandleResult.getBillId());
@@ -662,6 +671,10 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
                 roomDoorLockDataService.deleteByOrderId(orderId);
                 // 更新房态状态
                 roomRealtimeStatuService.userReturnOrder(orderId);
+
+                // 发送通知消息  优化:可以使用异步的方式
+                String format = String.format(returnOrderTemplate, orderId, order.getUserName(), order.getRoomNo());
+                systemNoticeService.addNotice("用户退房通知", format, SystemNoticeTypeEnum.USER_RETURN);
             });
 
             if (waitBillOrderIdList.size() > 0) {

+ 14 - 0
src/main/java/com/chuanghai/ihotel/service/impl/SystemNoticeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.chuanghai.ihotel.service.impl;
 
+import com.chuanghai.ihotel.enums.SystemNoticeTypeEnum;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,6 +14,7 @@ import com.chuanghai.ihotel.entity.SystemNoticeEntity;
 import com.chuanghai.ihotel.service.SystemNoticeService;
 import org.springframework.util.StringUtils;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 
@@ -41,4 +43,16 @@ public class SystemNoticeServiceImpl extends ServiceImpl<SystemNoticeDao, System
         this.updateBatchById(list);
     }
 
+    @Override
+    public void addNotice(String title, String content, SystemNoticeTypeEnum type) {
+        SystemNoticeEntity notice = new SystemNoticeEntity();
+        notice.setTitle(title);
+        notice.setContent(content);
+        notice.setCreateTime(LocalDateTime.now());
+        notice.setType(type.name());
+        notice.setReadFlag("0");
+
+        this.save(notice);
+    }
+
 }