package com.oying.modules.message.service.impl; import com.oying.modules.message.domain.MessageInfo; import com.oying.utils.FileUtil; 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.MessageInfoService; import com.oying.modules.message.domain.dto.MessageInfoQueryCriteria; import com.oying.modules.message.mapper.MessageInfoMapper; 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.io.IOException; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.LinkedHashMap; import com.oying.utils.PageResult; /** * @description 服务实现 * @author 李萌 * @date 2025-05-06 **/ @Service @RequiredArgsConstructor public class MessageInfoServiceImpl extends ServiceImpl implements MessageInfoService { private final MessageInfoMapper messageInfoMapper; @Override public PageResult queryAll(MessageInfoQueryCriteria criteria, Page page){ return PageUtil.toPage(messageInfoMapper.findAll(criteria, page)); } @Override public List queryAll(MessageInfoQueryCriteria criteria){ return messageInfoMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(MessageInfo resources) { messageInfoMapper.insert(resources); } @Override @Transactional(rollbackFor = Exception.class) public void update(MessageInfo resources) { MessageInfo messageInfo = getById(resources.getMessageId()); messageInfo.copy(resources); messageInfoMapper.updateById(messageInfo); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List ids) { messageInfoMapper.deleteBatchIds(ids); } @Override public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (MessageInfo messageInfo : all) { Map map = new LinkedHashMap<>(); map.put("消息类型('SYSTEM', 'ORDER', 'CUSTOMER')", messageInfo.getMessageType()); map.put("消息标题", messageInfo.getTitle()); map.put("消息内容", messageInfo.getContent()); map.put("消息状态(未读/已读)", messageInfo.getStatus()); map.put("消息创建时间", messageInfo.getCreatedAt()); map.put("消息更新时间", messageInfo.getUpdatedAt()); map.put("消息跳转链接(订单详情或评价详情)", messageInfo.getLink()); list.add(map); } FileUtil.downloadExcel(list, response); } }