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.domain.MesCustomerCommentMsg; import com.oying.modules.message.domain.dto.MesCustomerCommentMsgQueryCriteria; import com.oying.modules.message.domain.myDto.MesCustomerCommentMsgDTO; import com.oying.modules.message.mapper.MesCustomerCommentMsgMapper; import com.oying.modules.message.service.MesCustomerCommentMsgService; 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 MesCustomerCommentMsgServiceImpl extends ServiceImpl implements MesCustomerCommentMsgService { private final MesCustomerCommentMsgMapper mesCustomerCommentMsgMapper; @Override public PageResult queryAll(MesCustomerCommentMsgQueryCriteria criteria, Page page) { return PageUtil.toPage(mesCustomerCommentMsgMapper.findAll(criteria, page)); } @Override public List queryAll(MesCustomerCommentMsgQueryCriteria criteria) { return mesCustomerCommentMsgMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(MesCustomerCommentMsg resources) { mesCustomerCommentMsgMapper.insert(resources); } @Override @Transactional(rollbackFor = Exception.class) public void update(MesCustomerCommentMsg resources) { MesCustomerCommentMsg mesCustomerCommentMsg = getById(resources.getId()); mesCustomerCommentMsg.copy(resources); mesCustomerCommentMsgMapper.updateById(mesCustomerCommentMsg); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List ids) { mesCustomerCommentMsgMapper.deleteBatchIds(ids); } @Override public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (MesCustomerCommentMsg mesCustomerCommentMsg : all) { Map map = new LinkedHashMap<>(); map.put("对应 mes_msg_record.id", mesCustomerCommentMsg.getMsgRecordId()); map.put("店铺ID", mesCustomerCommentMsg.getShopId()); map.put("订单ID", mesCustomerCommentMsg.getOrderId()); map.put("订单编号 冗余", mesCustomerCommentMsg.getOrderNo()); map.put("买家用户ID", mesCustomerCommentMsg.getBuyerId()); map.put("买家昵称 冗余", mesCustomerCommentMsg.getBuyerName()); map.put("评价ID 冗余", mesCustomerCommentMsg.getEvaluationId()); map.put("商户是否已回复 0=未回复 1=已回复", mesCustomerCommentMsg.getReplied()); map.put("创建人", mesCustomerCommentMsg.getCreateBy()); map.put("创建时间", mesCustomerCommentMsg.getCreateTime()); map.put("更新人", mesCustomerCommentMsg.getUpdateBy()); map.put("更新时间", mesCustomerCommentMsg.getUpdateTime()); list.add(map); } FileUtil.downloadExcel(list, response); } @Override public List listCustomerComment(Long shopId) { return mesCustomerCommentMsgMapper.listCustomerComment(shopId); } //订单消息 插入对应字段 @Override public void insertOrderMsg(MesCustomerCommentMsg resources) { //先临时对象 MesCustomerCommentMsg mesCustomerCommentMsg = new MesCustomerCommentMsg(); //对象属性非空则插入 if (resources.getMsgRecordId() != null) { mesCustomerCommentMsg.setMsgRecordId(resources.getMsgRecordId()); } if (resources.getShopId() != null) { mesCustomerCommentMsg.setShopId(resources.getShopId()); } if (resources.getOrderId() != null) { mesCustomerCommentMsg.setOrderId(resources.getOrderId()); } if (resources.getOrderNo() != null) { mesCustomerCommentMsg.setOrderNo(resources.getOrderNo()); } if (resources.getBuyerId() != null) { mesCustomerCommentMsg.setBuyerId(resources.getBuyerId()); } if (resources.getBuyerName() != null) { mesCustomerCommentMsg.setBuyerName(resources.getBuyerName()); } } @Override public void insertOrderMsgDetail(Long shopId, Long orderId, String orderNo, String buyerId, String buyerName, String commentContent, String replyContent) { // 插入具体字段 店铺id 订单编号 订单id 买家id 买家姓名 留言内容 回复内容 // 先临时对象 MesCustomerCommentMsg mesCustomerCommentMsg = new MesCustomerCommentMsg(); // 设置对象属性 非空则插入 注意要有异常判断 if (shopId != null) { mesCustomerCommentMsg.setShopId(shopId); } if (orderId != null) { mesCustomerCommentMsg.setOrderId(orderId); } if (orderNo != null) { mesCustomerCommentMsg.setOrderNo(orderNo); } if (buyerId != null) { mesCustomerCommentMsg.setBuyerId(buyerId); } if (buyerName != null) { mesCustomerCommentMsg.setBuyerName(buyerName); } if (commentContent != null) { mesCustomerCommentMsg.setCommentContent(commentContent); } if (replyContent != null) { mesCustomerCommentMsg.setReplyContent(replyContent); // 如果有回复内容,则标记为已回复 mesCustomerCommentMsg.setReplied(1); } else { // 如果没有回复内容,则标记为未回复 mesCustomerCommentMsg.setReplied(0); } // 设置创建时间 // 设置创建时间 - 使用 Timestamp 的标准写法 mesCustomerCommentMsg.setCreateTime(new Timestamp(System.currentTimeMillis())); // 插入数据 mesCustomerCommentMsgMapper.insert(mesCustomerCommentMsg); } }