key
leomonM
2025-08-22 45271269073ac92f0367943491a07f49f34f315b
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
133
134
135
136
137
package com.oying.modules.message.service.impl;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.dto.MesMsgRecordQueryCriteria;
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.modules.message.mapper.MesMsgRecordMapper;
import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.utils.FileUtil;
import com.oying.utils.PageResult;
import com.oying.utils.PageUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @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, Long mestype) {
        return mesMsgRecordMapper.PollMes(platform, mestype);
    }
 
    @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
    @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);
    }
}