完成回复接口

master
voidvoid2004 3 weeks ago
parent dae61186f5
commit 25113aba37

@ -0,0 +1,42 @@
package com.example.venue_reservation_service.controller;
import com.example.venue_reservation_service.dto.QuestionDTO;
import com.example.venue_reservation_service.dto.QuestionQueryDTO;
import com.example.venue_reservation_service.service.QuestionService;
import com.example.venue_reservation_service.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/question")
@Api("提问管理")
@CrossOrigin
public class QuestionController {
@Resource
private QuestionService questionService;
@ApiOperation("添加提问")
@PostMapping("/create")
public Result create(@RequestBody QuestionDTO dto) {
return questionService.create(dto);
}
@ApiOperation("用户分页查询提问")
@PostMapping("/user/page")
public Result userPage(@RequestBody QuestionQueryDTO dto) {
return questionService.userPage(dto);
}
@ApiOperation("管理员分页查询提问")
@PostMapping("/admin/page")
public Result adminPage(@RequestBody QuestionQueryDTO dto) {
return questionService.adminPage(dto);
}
}

@ -0,0 +1,42 @@
package com.example.venue_reservation_service.controller;
import com.example.venue_reservation_service.domain.Reply;
import com.example.venue_reservation_service.dto.ReplyDTO;
import com.example.venue_reservation_service.service.ReplyService;
import com.example.venue_reservation_service.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
*
* </p>
*
* @author author
* @since 2025-06-21
*/
@RestController
@RequestMapping("/reply")
@Api("回复管理")
@CrossOrigin
public class ReplyController {
@Autowired
private ReplyService replyService;
@ApiOperation("添加回复")
@PostMapping("/create")
public Result createReply(@RequestBody ReplyDTO dto) {
return replyService.createReply(dto);
}
@ApiOperation("修改回复")
@PostMapping("/update")
public Result updateReply(@RequestBody ReplyDTO dto) {
return replyService.updateReply(dto);
}
}

@ -0,0 +1,30 @@
package com.example.venue_reservation_service.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class ReplyDTO {
/**
*
*/
private Integer adminId;
/**
*
*/
private String content;
/**
*
*/
private Integer questionId;
}

@ -2,6 +2,11 @@ package com.example.venue_reservation_service.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.venue_reservation_service.domain.Reply;
import com.example.venue_reservation_service.dto.ReplyDTO;
import com.example.venue_reservation_service.vo.Result;
public interface ReplyService extends IService<Reply> {
Result createReply(ReplyDTO dto);
Result updateReply(ReplyDTO dto);
}

@ -36,6 +36,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question>
Question question = lambdaQuery()
.eq(Question::getDescription, word)
.eq(Question::getUserId, dto.getUserId())
.one();
if(question != null) {

@ -1,11 +1,20 @@
package com.example.venue_reservation_service.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.example.venue_reservation_service.domain.Question;
import com.example.venue_reservation_service.domain.Reply;
import com.example.venue_reservation_service.dto.ReplyDTO;
import com.example.venue_reservation_service.service.ReplyService;
import com.example.venue_reservation_service.mapper.ReplyMapper;
import com.example.venue_reservation_service.vo.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Objects;
/**
* @author 31586
* @description venue_reply()Service
@ -15,6 +24,53 @@ import org.springframework.stereotype.Service;
public class ReplyServiceImpl extends ServiceImpl<ReplyMapper, Reply>
implements ReplyService{
@Override
public Result createReply(ReplyDTO dto) {
String content = dto.getContent().trim();
if (content.isEmpty()) {
return Result.fail("回复内容不能为空");
}
Reply reply = new Reply();
BeanUtils.copyProperties(dto, reply);
reply.setCreatedTime(LocalDateTime.now());
reply.setUpdatedTime(LocalDateTime.now());
save(reply);
Db.lambdaUpdate(Question.class)
.set(Question::getStatus, 1)
.eq(Question::getId, dto.getQuestionId())
.update();
return Result.ok().message("保存回复成功");
}
@Override
public Result updateReply( ReplyDTO dto) {
String content = dto.getContent().trim();
if (content.isEmpty()) {
return Result.fail("回复内容不能为空");
}
String oldContent = lambdaQuery()
.eq(Reply::getQuestionId, dto.getQuestionId())
.eq(Reply::getAdminId, dto.getAdminId())
.one().getContent();
if(Objects.equals(oldContent, content)) {
return Result.fail().message("回复内容未修改");
}
lambdaUpdate()
.set(Reply::getContent, content)
.set(Reply::getUpdatedTime, LocalDateTime.now())
.eq(Reply::getQuestionId, dto.getQuestionId())
.eq(Reply::getAdminId, dto.getAdminId())
.update();
return Result.ok().message("保存回复成功");
}
}

Loading…
Cancel
Save