| package com.mzl.flower.service.content; | 
|   | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.mzl.flower.config.exception.ValidationException; | 
| import com.mzl.flower.config.security.SecurityUtils; | 
| import com.mzl.flower.dto.request.content.AddFeedbackDTO; | 
| import com.mzl.flower.dto.request.content.QueryFeedBackDTO; | 
| import com.mzl.flower.dto.request.content.ReplyFeedbackDTO; | 
| import com.mzl.flower.dto.response.content.FeedbackDTO; | 
| import com.mzl.flower.entity.content.Feedback; | 
| import com.mzl.flower.mapper.content.FeedbackMapper; | 
| import com.mzl.flower.utils.DateUtils; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.time.LocalDateTime; | 
| import java.util.List; | 
|   | 
| @Service | 
| @Transactional | 
| public class FeedbackService { | 
|   | 
|     private final FeedbackMapper feedbackMapper; | 
|   | 
|   | 
|     public FeedbackService(FeedbackMapper feedbackMapper) { | 
|         this.feedbackMapper = feedbackMapper; | 
|     } | 
|   | 
|     public void add(AddFeedbackDTO dto) { | 
|         Feedback feedback = new Feedback(); | 
|         feedback.setFeedBack(dto.getFeedBack()); | 
|         feedback.setType(dto.getType()); | 
|         feedback.setPictures(dto.getPictures()); | 
|         feedback.setUserId(SecurityUtils.getUserId()); | 
|         feedback.setHandled(false); | 
|         feedback.create(SecurityUtils.getUserId()); | 
|         feedbackMapper.insert(feedback); | 
|     } | 
|   | 
|     public Page<FeedbackDTO> queryPage(QueryFeedBackDTO dto, Page page) { | 
|         if(StringUtils.isNotBlank(dto.getCreateDateBeginStr())){ | 
|             dto.setCreateDateBegin(DateUtils.dateToLocalDateTime(dto.getCreateDateBeginStr(),true)); | 
|         } | 
|         if(StringUtils.isNotBlank(dto.getCreateDateEndStr())){ | 
|             dto.setCreateDateEnd(DateUtils.dateToLocalDateTime(dto.getCreateDateEndStr(),false)); | 
|         } | 
|         List<FeedbackDTO> list = feedbackMapper.queryPage(dto, page); | 
|         page.setRecords(list); | 
|         return page; | 
|     } | 
|   | 
|     public FeedbackDTO detail(Long id) { | 
|         QueryFeedBackDTO dto = new QueryFeedBackDTO(); | 
|         dto.setId(id); | 
|         List<FeedbackDTO> list = feedbackMapper.queryPage(dto, new Page(1,1)); | 
|         if(list != null && list.size() > 0){ | 
|             return list.get(0); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public void reply(ReplyFeedbackDTO dto) { | 
|         Feedback feedback = feedbackMapper.selectById(dto.getId()); | 
|         if(feedback == null){ | 
|             throw new ValidationException("投诉反馈不存在"); | 
|         } | 
|         feedback.setReply(dto.getReply()); | 
|         feedback.setHandled(true); | 
|         feedback.setReplyTime(LocalDateTime.now()); | 
|         feedbackMapper.updateById(feedback); | 
|     } | 
| } |