新版仿ok交易所-后端
C2C
zyy
2025-10-16 d1263c5f0cf0f9643b9d1d16584fd09f8bbf2b33
trading-order-service/src/main/java/com/yami/trading/service/chat/otc/OtcOnlineChatMessageServiceImpl.java
@@ -6,6 +6,7 @@
import com.yami.trading.bean.chat.domain.OtcOnlineChatMessage;
import com.yami.trading.bean.model.User;
import com.yami.trading.bean.model.UserRecom;
import com.yami.trading.common.constants.RedisKeys;
import com.yami.trading.common.constants.TipConstants;
import com.yami.trading.common.exception.BusinessException;
import com.yami.trading.common.util.DateUtils;
@@ -20,6 +21,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.net.URLDecoder;
@@ -43,6 +45,8 @@
    private C2cOrderService c2cOrderService;
    @Autowired
    private OtcMessageUserService otcMessageUserService;
    @Autowired
    RedisTemplate  redisTemplate;
    private Map<String, List<OtcOnlineChatMessage>> cahce_chat = new ConcurrentHashMap<String, List<OtcOnlineChatMessage>>();
    private Map<String, OtcMessageUser> cahce_user = new ConcurrentHashMap<String, OtcMessageUser>();
@@ -52,7 +56,8 @@
        if (cache == null) {
            return new LinkedList<OtcOnlineChatMessage>();
        }
        List<OtcOnlineChatMessage> result = new ArrayList<OtcOnlineChatMessage>(cache);
        return cache;
        /*List<OtcOnlineChatMessage> result = new ArrayList<OtcOnlineChatMessage>(cache);
        int start = cacheIndex(messageId, result);
//      start = start == 0 ? start : start + 1;// 空消息则表示首页,消息索引的后一条为起始
        int end = start + pageSize;
@@ -67,7 +72,7 @@
//      result.addAll(cache);
        List<OtcOnlineChatMessage> list = result.subList(start, end);
        return list;
        return list;*/
    }
    public List<OtcOnlineChatMessage> cacheGetList(String messageId, int pageSize, String orderNo, String clicentType) {
@@ -189,7 +194,13 @@
            saveCreateByOrderNo(orderNo);
            messageUser = cahce_user.get(orderNo);
        }
        C2cOrder c2cOrder = c2cOrderService.get(orderNo);
        if ("read".equals(type)) {
            messageUser.setUserUnreadmsg(0);
        } else if ("write".equals(type)) {
            messageUser.setCustomerUnreadmsg(messageUser.getCustomerUnreadmsg() + 1);
            messageUser.setDeleteStatus(0);
        }
        /*C2cOrder c2cOrder = c2cOrderService.get(orderNo);
        // 承兑商ID
        String c2cUserId = c2cOrder.getC2cUserPartyId();
        // 下单用户ID
@@ -199,7 +210,7 @@
            if ("read".equals(type)) {
                messageUser.setCustomerUnreadmsg(0);
            } else if ("write".equals(type)) {
                messageUser.setUserUnreadmsg(messageUser.getCustomerUnreadmsg() + 1);
                messageUser.setUserUnreadmsg(messageUser.getUserUnreadmsg() + 1);
                messageUser.setDeleteStatus(0);
            }
        }
@@ -208,10 +219,10 @@
            if ("read".equals(type)) {
                messageUser.setUserUnreadmsg(0);
            } else if ("write".equals(type)) {
                messageUser.setCustomerUnreadmsg(messageUser.getUserUnreadmsg() + 1);
                messageUser.setCustomerUnreadmsg(messageUser.getCustomerUnreadmsg() + 1);
                messageUser.setDeleteStatus(0);
            }
        }
        }*/
        updateMessageUser(messageUser);
    }
@@ -226,7 +237,15 @@
            saveCreateByOrderNo(orderNo);
            messageUser = cahce_user.get(orderNo);
        }
        C2cOrder c2cOrder = c2cOrderService.get(orderNo);
        if ("read".equals(type)) {
            messageUser.setCustomerUnreadmsg(0);
            removeTips(messageUser.getOrderNo(), 0);
        } else if ("write".equals(type)) {
            messageUser.setUserUnreadmsg(messageUser.getUserUnreadmsg() + 1);
            messageUser.setDeleteStatus(0);
        }
        /*C2cOrder c2cOrder = c2cOrderService.get(orderNo);
        // 承兑商ID
        String c2cUserId = c2cOrder.getC2cUserPartyId();
        // 下单用户ID
@@ -236,9 +255,7 @@
            if ("read".equals(type)) {
                int removeTipNum = 0;
                messageUser.setCustomerUnreadmsg(0);
                if (removeTipNum > 0) {
                    removeTips(messageUser.getOrderNo(), removeTipNum);
                }
                removeTips(messageUser.getOrderNo(), removeTipNum);
            } else if ("write".equals(type)) {
                messageUser.setUserUnreadmsg(messageUser.getUserUnreadmsg() + 1);
                messageUser.setDeleteStatus(0);
@@ -247,12 +264,13 @@
        // 下单用户发送
        else if (partyId.equals(orderUserId)) {
            if ("read".equals(type)) {
                messageUser.setUserUnreadmsg(0);
                messageUser.setCustomerUnreadmsg(0);
                removeTips(messageUser.getOrderNo(), 0);
            } else if ("write".equals(type)) {
                messageUser.setCustomerUnreadmsg(messageUser.getUserUnreadmsg() + 1);
                messageUser.setUserUnreadmsg(messageUser.getUserUnreadmsg() + 1);
                messageUser.setDeleteStatus(0);
            }
        }
        }*/
        updateMessageUser(messageUser);
    }
@@ -268,7 +286,9 @@
        for (OtcOnlineChatMessage m : list) {
            ids.add(m.getUuid().toString());
        }
        tipService.deleteTip(ids);
        if (!ids.isEmpty()) {
            tipService.deleteTip(ids);
        }
    }
    public void updateMessageUser(OtcMessageUser messageUser) {