xin
2025-08-25 dc3a923dcf09ba9ae0e46fa0916ac70d258d7b70
oying-system/src/main/java/com/oying/modules/message/service/impl/MesMsgRecordServiceImpl.java
@@ -113,26 +113,199 @@
        return mesMsgRecordMapper.queryorder(shopId);
    }
    @Override
    public void insertOrderMsg(String orderNo, OrderStatusEnum content, Long shopId) {
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
        record.setShopId(shopId);
        record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        try {
            mesMsgRecordMapper.insert(record);
        } catch (Exception e) {
            log.error("插入订单消息失败:{}", e);
        }
//    @Override
//    @Transactional(rollbackFor = Exception.class)
//    public void insertOrderMsg(String orderNo, OrderStatusEnum content, Long shopId) {
//        MesMsgRecord record = new MesMsgRecord();
//        record.setOrderNo(orderNo);
//        record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
//        record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
//        record.setShopId(shopId);
//        record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
//        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
//        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
//        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
//        mesMsgRecordMapper.insert(record);   // 让异常直接往外抛
//
//    }
    }
    @Override
    public List<MesMsgRecordQueryPollDto> PollMesAll(Long platform) {
        return mesMsgRecordMapper.PollMesAll(platform);
    }
    // 设置一个买家状态为下单 不存在则插入   买家id name 订单属性 店铺号
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void setBuyerStatusOrderSubmitted(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(OrderStatusEnum.MERCHANT_ORDER_SUBMITTED.getValue()); // 使用枚举的描述作为消息内容
        record.setContentKey(String.valueOf(OrderStatusEnum.MERCHANT_ORDER_SUBMITTED.getKey()));// 使用枚举的描述作为消息内容key
        record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
        record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        if (riderId != null) {
            record.setRiderId(riderId);
        }
        if (riderName != null) {
            record.setRiderName(riderName);
        }
        if (shopId != null) {
            record.setShopId(shopId);
        }
        if (buyerName != null) {
            record.setBuyerName(buyerName);
        }
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        mesMsgRecordMapper.insert(record);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, String riderId, String riderName) {
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED.getValue()); // 使用枚举的描述作为消息内容
        record.setContentKey(String.valueOf(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED.getKey()));// 使用枚举的描述作为消息内容key
        record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
        record.setMsgType(MesTypeEnum.ORDER.getKey()); // 订单消息类型为2
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        if (riderId != null) {
            record.setRiderId(riderId);
        }
        if (riderName != null) {
            record.setRiderName(riderName);
        }
        if (shopId != null) {
            record.setShopId(shopId);
        }
        if (buyerName != null) {
            record.setBuyerName(buyerName);
        }
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        mesMsgRecordMapper.insert(record);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void setBuyerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
        //content只能设置为如下 "商品已送达" "订单已完成" "订单送达"
        if (content == null ||
                (!content.equals(OrderStatusEnum.BUYER_ORDER_STATUS_CHANGED) &&
                        !content.equals(OrderStatusEnum.BUYER_ORDER_COMPLETED) &&
                        !content.equals(OrderStatusEnum.BUYER_ORDER_DELIVERED))) {
            throw new IllegalArgumentException("content只能设置为如下 \"商品已送达\" \"订单已完成\" \"订单送达\"");
        }
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
        record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
        record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
        record.setMsgType(MesTypeEnum.BUYER.getKey()); //
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        if (riderId != null) {
            record.setRiderId(riderId);
        }
        if (riderName != null) {
            record.setRiderName(riderName);
        }
        if (shopId != null) {
            record.setShopId(shopId);
        }
        if (buyerName != null) {
            record.setBuyerName(buyerName);
        }
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        mesMsgRecordMapper.insert(record);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void setSellerStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
        //content只能为  "订单已提交" "商家已接单" 商家已备货"
        if (content == null ||
                (content != OrderStatusEnum.MERCHANT_ORDER_SUBMITTED &&
                        content != OrderStatusEnum.MERCHANT_ACCEPTED &&
                        content != OrderStatusEnum.MERCHANT_PREPARED)) {
            throw new IllegalArgumentException("content只能为  \"订单已提交\" \"商家已接单\" 商家已备货\"");
        }
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
        record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
        record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
        record.setMsgType(MesTypeEnum.MERCHANT.getKey()); //
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        if (riderId != null) {
            record.setRiderId(riderId);
        }
        if (riderName != null) {
            record.setRiderName(riderName);
        }
        if (shopId != null) {
            record.setShopId(shopId);
        }
        if (buyerName != null) {
            record.setBuyerName(buyerName);
        }
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        mesMsgRecordMapper.insert(record);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void setRiderStatusOrderDelivered(String buyerId, String buyerName, String orderNo, Long shopId, OrderStatusEnum content, String riderId, String riderName) {
        //content只能为  "骑手已接单" "骑手已取货" "骑手已到店" "订单已取消" "距离最晚送达时间不足1小时" "距离最晚送达时间不足30分钟"
        if (content == null ||
                (content != OrderStatusEnum.RIDER_PENDING_ACCEPTANCE &&
                        content != OrderStatusEnum.RIDER_PICKED_UP &&
                        content != OrderStatusEnum.RIDER_ARRIVED &&
                        content != OrderStatusEnum.RIDER_ORDER_CANCELLED && content != OrderStatusEnum.RIDER_DELIVERY_WARNING)) {
            throw new IllegalArgumentException("content只能为  \"骑手已接单\" \"骑手已取货\" \"骑手已到店\" \"订单已取消\" \"订单已超时\" ");
        }
        MesMsgRecord record = new MesMsgRecord();
        record.setOrderNo(orderNo);
        record.setContent(content.getValue()); // 使用枚举的描述作为消息内容
        record.setContentKey(String.valueOf(content.getKey()));// 使用枚举的描述作为消息内容key
        record.setBuyerId(buyerId != null ? buyerId : ""); // 处理空值情况
        record.setMsgType(MesTypeEnum.RIDER.getKey()); //
        record.setIsRead(MesReadEnum.UNREAD.getKey()); // 默认未读 0
        if (riderId != null) {
            record.setRiderId(riderId);
        }
        if (riderName != null) {
            record.setRiderName(riderName);
        }
        if (shopId != null) {
            record.setShopId(shopId);
        }
        if (buyerName != null) {
            record.setBuyerName(buyerName);
        }
        record.setCreateTime(new Timestamp(System.currentTimeMillis()));
        record.setUpdateTime(new Timestamp(System.currentTimeMillis()));
        mesMsgRecordMapper.insert(record);
    }
    @Override
    public List<MesMsgRecordQueryOrderDto> queryorderPending(Long shopId, String content) {
        return mesMsgRecordMapper.queryorderPending(shopId, content);
    }
    @Override
    public List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessages(Long buyerId) {
        return mesMsgRecordMapper.queryBuyerOrderMessages(buyerId);
    }
    @Override
    public List<MesMsgRecordQueryOrderDto> queryBuyerOrderMessagesComplete(Long buyerId) {
        return mesMsgRecordMapper.queryBuyerOrderMessagesComplete(buyerId);
    }
}