彭雪彬
2025-07-15 a7501803a3ca43310e57a5dd912e5047919c2e43
oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java
@@ -1,7 +1,6 @@
package com.oying.modules.message.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.oying.modules.message.domain.MessageOrderBuyer;
import com.oying.modules.message.domain.MessageOrderSeller;
import com.oying.utils.FileUtil;
import lombok.RequiredArgsConstructor;
@@ -10,15 +9,16 @@
import com.oying.modules.message.service.MessageOrderSellerService;
import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria;
import com.oying.modules.message.mapper.MessageOrderSellerMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.util.Beta;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.oying.utils.PageUtil;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import com.oying.utils.PageResult;
/**
@@ -26,11 +26,15 @@
* @author 李萌
* @date 2025-05-20
**/
@Slf4j
@Service
@RequiredArgsConstructor
public class MessageOrderSellerServiceImpl extends ServiceImpl<MessageOrderSellerMapper, MessageOrderSeller> implements MessageOrderSellerService {
    private final MessageOrderSellerMapper messageOrderSellerMapper;
    @Override
    public PageResult<MessageOrderSeller> queryAll(MessageOrderSellerQueryCriteria criteria, Page<Object> page){
@@ -81,4 +85,80 @@
    public MessageOrderSeller findByOrderId(Integer orderId) {
        return baseMapper.selectOne(new QueryWrapper<MessageOrderSeller>().eq("order_id", orderId));
    }
    @Override
    public List<MessageOrderSeller> findByStoreId(String storeId) {
        return messageOrderSellerMapper.findByStoreId(storeId);
    }
    @Override
    public boolean updateMessageOrderSellerRead(Integer orderId) {
        return messageOrderSellerMapper.updateMessageOrderSellerRead(orderId);
    }
    /**
     * 保存或更新 MessageOrderSeller 记录。
     * <p>
     * 该方法根据传入的 MessageOrderSeller 对象,将数据插入到数据库中。
     * 如果记录已存在,则更新;如果不存在,则插入新记录。
     * </p>
     * <p>
     * 必须字段:
     * - orderId:订单 ID
     * - storeId:店铺 ID
     * </p>
     * <p>
     * 可选字段:
     * - messageType:消息类型 : 暂时不用
     * - messageContent:消息内容 :  "订单已提交"   :"支付成功"   商家已接单   骑手已接单".......com.oying.modules.message.common.OrderStatusEnum
     * - link:链接
     * - flag:标志字段(默认值为未读 0)
     * </p>
     *
     * @param resources MessageOrderSeller 对象,包含需要保存或更新的数据。
     * @return true 表示保存成功,false 表示保存失败。
     *
     * 目前插入orderId   storeId messageContent即可,其他保留---------
     */
    @Override
    public boolean saveMessageOrderSellerByOrderIdAndStoreId(MessageOrderSeller resources) {
        try {
            // 1. 判断重复的记录是否存在
//            // messageType此处不用
            long count = this.lambdaQuery()
                    .eq(MessageOrderSeller::getOrderId, resources.getOrderId())
                    .eq(MessageOrderSeller::getStoreId,   resources.getStoreId())
                    .eq(MessageOrderSeller::getMessageContent, resources.getMessageContent())
                    .eq(MessageOrderSeller::getFlag, 0)       // 未读
                    .count();
            //存在  不插入
            if (count > 0) {
                log.warn("消息已存在,跳过保存:{}",
                        resources);
                return false;
            }else{
                return messageOrderSellerMapper.saveMessageOrderSellerByOrderIdAndStoreId(resources);
            }
        } catch (Exception e) {
            log.error("保存消息异常",
                    e);
            return false;
        }
    }
    @Override
    public boolean updateReadStatusById(Integer id) {
        return messageOrderSellerMapper.updateReadStatusById(id);
    }
}