From dae61186f571d5f8b9c667a0198e1a12a4d53b78 Mon Sep 17 00:00:00 2001 From: voidvoid2004 <2229325663@qq.com> Date: Sun, 22 Jun 2025 16:54:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8F=90=E9=97=AE=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/QuestionDTO.java | 36 ++++++++ .../dto/QuestionQueryDTO.java | 16 ++++ .../service/QuestionService.java | 8 ++ .../service/ReplyService.java | 8 +- .../service/impl/QuestionServiceImpl.java | 91 +++++++++++++++++++ 5 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java create mode 100644 src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java diff --git a/src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java b/src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java new file mode 100644 index 0000000..4d14ef3 --- /dev/null +++ b/src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java @@ -0,0 +1,36 @@ +package com.example.venue_reservation_service.dto; + +import lombok.Data; + +@Data +public class QuestionDTO { + /** + * 用户编号 + */ + private Integer userId; + + /** + * 用户账号 + */ + private String username; + + /** + * 联系电话 + */ + private String phone; + + /** + * 疑问类型(建议 or 提问) + */ + private String questionType; + + /** + * 问题描述 + */ + private String description; + + /** + * 场馆 + */ + private String type; +} diff --git a/src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java b/src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java new file mode 100644 index 0000000..caf23af --- /dev/null +++ b/src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java @@ -0,0 +1,16 @@ +package com.example.venue_reservation_service.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +public class QuestionQueryDTO extends PageDTO{ + + //场馆 + private String type; + + //状态 + private Integer status; + + +} diff --git a/src/main/java/com/example/venue_reservation_service/service/QuestionService.java b/src/main/java/com/example/venue_reservation_service/service/QuestionService.java index 4886d5d..16e77f6 100644 --- a/src/main/java/com/example/venue_reservation_service/service/QuestionService.java +++ b/src/main/java/com/example/venue_reservation_service/service/QuestionService.java @@ -2,6 +2,9 @@ package com.example.venue_reservation_service.service; import com.example.venue_reservation_service.domain.Question; import com.baomidou.mybatisplus.extension.service.IService; +import com.example.venue_reservation_service.dto.QuestionDTO; +import com.example.venue_reservation_service.dto.QuestionQueryDTO; +import com.example.venue_reservation_service.vo.Result; /** * @author 31586 @@ -10,4 +13,9 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface QuestionService extends IService { + Result create(QuestionDTO dto); + + Result userPage(QuestionQueryDTO dto); + + Result adminPage(QuestionQueryDTO dto); } diff --git a/src/main/java/com/example/venue_reservation_service/service/ReplyService.java b/src/main/java/com/example/venue_reservation_service/service/ReplyService.java index b62388a..bcca39a 100644 --- a/src/main/java/com/example/venue_reservation_service/service/ReplyService.java +++ b/src/main/java/com/example/venue_reservation_service/service/ReplyService.java @@ -1,13 +1,7 @@ package com.example.venue_reservation_service.service; -import com.example.venue_reservation_service.domain.Reply; import com.baomidou.mybatisplus.extension.service.IService; +import com.example.venue_reservation_service.domain.Reply; -/** -* @author 31586 -* @description 针对表【venue_reply(回复记录表)】的数据库操作Service -* @createDate 2025-06-21 14:15:36 -*/ public interface ReplyService extends IService { - } diff --git a/src/main/java/com/example/venue_reservation_service/service/impl/QuestionServiceImpl.java b/src/main/java/com/example/venue_reservation_service/service/impl/QuestionServiceImpl.java index ea85b0a..8d51ae2 100644 --- a/src/main/java/com/example/venue_reservation_service/service/impl/QuestionServiceImpl.java +++ b/src/main/java/com/example/venue_reservation_service/service/impl/QuestionServiceImpl.java @@ -1,20 +1,111 @@ package com.example.venue_reservation_service.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.venue_reservation_service.domain.Question; +import com.example.venue_reservation_service.dto.QuestionDTO; +import com.example.venue_reservation_service.dto.QuestionQueryDTO; import com.example.venue_reservation_service.mapper.QuestionMapper; import com.example.venue_reservation_service.service.QuestionService; +import com.example.venue_reservation_service.vo.QueryVO; +import com.example.venue_reservation_service.vo.Result; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; +import java.util.List; + /** * @author 31586 * @description 针对表【venue_question(用户答疑记录表)】的数据库操作Service实现 * @createDate 2025-06-21 14:15:36 */ @Service +@Slf4j public class QuestionServiceImpl extends ServiceImpl implements QuestionService{ + @Override + public Result create(QuestionDTO dto) { + + String word = dto.getDescription().trim(); + + + Question question = lambdaQuery() + .eq(Question::getDescription, word) + .one(); + + if(question != null) { + question.setCreatedTime(LocalDateTime.now()); + updateById(question); + return Result.ok().message("已有相同问题,修改创建时间成功"); + } + + Question newQuestion = new Question(); + BeanUtils.copyProperties(dto, newQuestion); + newQuestion.setStatus(0); + newQuestion.setCreatedTime(LocalDateTime.now()); + + save(newQuestion); + + return Result.ok().message("保存问题成功"); + } + + @Override + public Result userPage(QuestionQueryDTO dto) { + Page page = Page.of(dto.getCurrent(), dto.getSize()); + + page.addOrder(OrderItem.desc("created_time")); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + if (dto.getStatus() != null) { + wrapper.eq(Question::getStatus, dto.getStatus()); + } + + if (dto.getType() != null) { + wrapper.eq(Question::getType, dto.getType()); + } + + Page resultPage = page(page, wrapper); + + + QueryVO vo = new QueryVO<>(); + vo.setList(resultPage.getRecords()); + vo.setTotal(resultPage.getTotal()); + + return Result.ok(vo).message("查询成功"); + + } + + @Override + public Result adminPage(QuestionQueryDTO dto) { + + Page page = Page.of(dto.getCurrent(), dto.getSize()); + + page.addOrder(OrderItem.desc("created_time")); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + if (dto.getStatus() != null) { + wrapper.eq(Question::getStatus, dto.getStatus()); + } + + + Page resultPage = page(page, wrapper); + + + QueryVO vo = new QueryVO<>(); + vo.setList(resultPage.getRecords()); + vo.setTotal(resultPage.getTotal()); + + return Result.ok(vo).message("查询成功"); + + } + }