leomon
5 days ago 6017102b1d6affc7255e9f2df6f9e45e0b1a75fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.oying.modules.message.service.impl;
 
import com.oying.modules.message.common.MesReadEnum;
import com.oying.modules.message.common.MesTypeEnum;
import com.oying.modules.message.common.OrderStatusEnum;
import com.oying.modules.message.domain.MesMsgRecord;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryOrderDto;
import com.oying.modules.message.domain.myDto.MesMsgRecordQueryPollDto;
import com.oying.modules.message.domain.myDto.MesMsgRecordQuerySystemDto;
import com.oying.utils.FileUtil;
import com.oying.utils.SecurityUtils;
import lombok.RequiredArgsConstructor;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.modules.message.domain.dto.MesMsgRecordQueryCriteria;
import com.oying.modules.message.mapper.MesMsgRecordMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.oying.utils.PageUtil;
 
import java.sql.Timestamp;
import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
 
import com.oying.utils.PageResult;
 
/**
 * @author 李萌
 * @description 服务实现
 * @date 2025-07-25
 **/
@Service
@RequiredArgsConstructor
public class MesMsgRecordServiceImpl extends ServiceImpl<MesMsgRecordMapper, MesMsgRecord> implements MesMsgRecordService {
 
    private final MesMsgRecordMapper mesMsgRecordMapper;
 
    @Override
    public PageResult<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria, Page<Object> page) {
        return PageUtil.toPage(mesMsgRecordMapper.findAll(criteria, page));
    }
 
    @Override
    public List<MesMsgRecord> queryAll(MesMsgRecordQueryCriteria criteria) {
        return mesMsgRecordMapper.findAll(criteria);
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void create(MesMsgRecord resources) {
        mesMsgRecordMapper.insert(resources);
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void update(MesMsgRecord resources) {
        MesMsgRecord mesMsgRecord = getById(resources.getId());
        mesMsgRecord.copy(resources);
        mesMsgRecordMapper.updateById(mesMsgRecord);
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteAll(List<Long> ids) {
        mesMsgRecordMapper.deleteBatchIds(ids);
    }
 
    @Override
    public void download(List<MesMsgRecord> all, HttpServletResponse response) throws IOException {
        List<Map<String, Object>> list = new ArrayList<>();
        for (MesMsgRecord mesMsgRecord : all) {
            Map<String, Object> map = new LinkedHashMap<>();
            map.put("模板ID 可无", mesMsgRecord.getTemplateId());
            map.put("接收人ID", mesMsgRecord.getReceiverId());
            map.put("1=买家 2=商户 3=骑手", mesMsgRecord.getPlatform());
            map.put("同模板type", mesMsgRecord.getMsgType());
            map.put("最终标题", mesMsgRecord.getTitle());
            map.put("最终内容", mesMsgRecord.getContent());
            map.put("业务ID 例如订单ID", mesMsgRecord.getBizId());
            map.put("业务类型 ORDER/EVALUATION 等", mesMsgRecord.getBizType());
            map.put("已读 0=未读 1=已读", mesMsgRecord.getIsRead());
            map.put("阅读时间", mesMsgRecord.getReadTime());
            map.put("扩展字段 存跳转链接等", mesMsgRecord.getExtra());
            map.put("创建人", mesMsgRecord.getCreateBy());
            map.put("创建时间", mesMsgRecord.getCreateTime());
            map.put("更新人", mesMsgRecord.getUpdateBy());
            map.put("更新时间", mesMsgRecord.getUpdateTime());
            list.add(map);
        }
        FileUtil.downloadExcel(list, response);
    }
 
    @Override
    public List<MesMsgRecordQueryPollDto> PollMes(Long platform) {
        return mesMsgRecordMapper.PollMes(platform);
    }
 
    @Override
    public void batchMarkRead(Long platform, List<Long> msgIds) {
        mesMsgRecordMapper.batchMarkRead(platform, msgIds);
    }
 
    @Override
    public PageResult<MesMsgRecordQuerySystemDto> queryAllSysNotice(MesMsgRecordQueryCriteria criteria, Page<Object> page) {
        return PageUtil.toPage(mesMsgRecordMapper.queryAllSysNotice(criteria, page));
    }
 
    @Override
    public List<MesMsgRecordQueryOrderDto> queryorder(Long shopId) {
        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);
        }
 
    }
}