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);
|
}
|
|
}
|
}
|