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