彭雪彬
2025-09-04 206f601b1f2a2e3cb0bf4f5dead01bec9077d8e9
oying-system/src/main/java/com/oying/modules/message/service/impl/MesCustomerCommentMsgServiceImpl.java
New file
@@ -0,0 +1,168 @@
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<MesCustomerCommentMsgMapper, MesCustomerCommentMsg> implements MesCustomerCommentMsgService {
    private final MesCustomerCommentMsgMapper mesCustomerCommentMsgMapper;
    @Override
    public PageResult<MesCustomerCommentMsg> queryAll(MesCustomerCommentMsgQueryCriteria criteria, Page<Object> page) {
        return PageUtil.toPage(mesCustomerCommentMsgMapper.findAll(criteria, page));
    }
    @Override
    public List<MesCustomerCommentMsg> 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<Long> ids) {
        mesCustomerCommentMsgMapper.deleteBatchIds(ids);
    }
    @Override
    public void download(List<MesCustomerCommentMsg> all, HttpServletResponse response) throws IOException {
        List<Map<String, Object>> list = new ArrayList<>();
        for (MesCustomerCommentMsg mesCustomerCommentMsg : all) {
            Map<String, Object> 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<MesCustomerCommentMsgDTO> listCustomerComment(Long shopId) {
        return mesCustomerCommentMsgMapper.listCustomerComment(shopId);
    }
    //订单消息 插入对应字段
    @Override
    @Transactional(rollbackFor = Exception.class)
    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
    @Transactional(rollbackFor = Exception.class)
    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);
    }
}