From e45f1877ba94a128a0c8e9ff268fa6daf4db6116 Mon Sep 17 00:00:00 2001 From: chenyuepan <3158614516@qq.com> Date: Mon, 23 Jun 2025 09:02:37 +0800 Subject: [PATCH] =?UTF-8?q?CI/CD=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docker.sh => docker.sh | 0 .../controller/QuestionController.java | 49 ++++++++++++++----- .../dto/QuestionDTO.java | 8 +++ .../dto/QuestionQueryDTO.java | 2 + .../dto/ReservationDTO.java | 4 ++ .../dto/ViewDTO.java | 4 ++ .../service/QuestionService.java | 3 +- .../service/impl/QuestionServiceImpl.java | 26 +++++----- 8 files changed, 70 insertions(+), 26 deletions(-) rename Docker.sh => docker.sh (100%) diff --git a/Docker.sh b/docker.sh similarity index 100% rename from Docker.sh rename to docker.sh diff --git a/src/main/java/com/example/venue_reservation_service/controller/QuestionController.java b/src/main/java/com/example/venue_reservation_service/controller/QuestionController.java index c9b8da7..3dcf5f9 100644 --- a/src/main/java/com/example/venue_reservation_service/controller/QuestionController.java +++ b/src/main/java/com/example/venue_reservation_service/controller/QuestionController.java @@ -3,40 +3,67 @@ 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.dto.ReservationDTO; 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.*; - +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; @RestController @RequestMapping("/question") -@Api("提问管理") +@Tag(name = "提问管理", description = "用户提问及管理员审核相关接口") @CrossOrigin public class QuestionController { @Resource private QuestionService questionService; - - @ApiOperation("添加提问") + @Operation(summary = "创建提问", description = "用户提交新的提问内容", + parameters = { + @Parameter( + name = "dto", + description = "用户账号,联系电话、疑问类型等信息", + required = true, + schema = @Schema(implementation = QuestionDTO.class) + ) + } + ) @PostMapping("/create") public Result create(@RequestBody QuestionDTO dto) { return questionService.create(dto); } - @ApiOperation("用户分页查询提问") + @Operation(summary = "用户分页查询提问", description = "用户查询自己的提问列表,支持分页和筛选", + parameters = { + @Parameter( + name = "dto", + description = "筛选条件:场馆、状态", + required = true, + schema = @Schema(implementation = QuestionQueryDTO.class) + ) + } + ) @PostMapping("/user/page") public Result userPage(@RequestBody QuestionQueryDTO dto) { return questionService.userPage(dto); } - @ApiOperation("管理员分页查询提问") + @Operation(summary = "管理员分页查询提问", description = "管理员查询所有用户的提问列表,支持分页和筛选", + parameters = { + @Parameter( + name = "dto", + description = "提问查询DTO,包含用户ID、状态等筛选条件", + required = true, + schema = @Schema(implementation = ReservationDTO.class) + ) + } + ) @PostMapping("/admin/page") - public Result adminPage(@RequestBody QuestionQueryDTO dto) { + public Result adminPage(@RequestBody ReservationDTO dto) { return questionService.adminPage(dto); } - -} +} \ No newline at end of file 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 index 4d14ef3..37401cb 100644 --- a/src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java +++ b/src/main/java/com/example/venue_reservation_service/dto/QuestionDTO.java @@ -1,36 +1,44 @@ package com.example.venue_reservation_service.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data +@Schema(description = "用户提问对象") public class QuestionDTO { /** * 用户编号 */ + @Schema(description = "用户编号") private Integer userId; /** * 用户账号 */ + @Schema(description = "用户账号") private String username; /** * 联系电话 */ + @Schema(description = "联系电话") private String phone; /** * 疑问类型(建议 or 提问) */ + @Schema(description = "疑问类型(建议 or 提问)") private String questionType; /** * 问题描述 */ + @Schema(description = "问题描述") private String description; /** * 场馆 */ + @Schema(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 index caf23af..989461e 100644 --- a/src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java +++ b/src/main/java/com/example/venue_reservation_service/dto/QuestionQueryDTO.java @@ -1,9 +1,11 @@ package com.example.venue_reservation_service.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @Data +@Schema(description = "用户") public class QuestionQueryDTO extends PageDTO{ //场馆 diff --git a/src/main/java/com/example/venue_reservation_service/dto/ReservationDTO.java b/src/main/java/com/example/venue_reservation_service/dto/ReservationDTO.java index 500d3e3..10666ed 100644 --- a/src/main/java/com/example/venue_reservation_service/dto/ReservationDTO.java +++ b/src/main/java/com/example/venue_reservation_service/dto/ReservationDTO.java @@ -1,16 +1,20 @@ package com.example.venue_reservation_service.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; @Data +@Schema(description = "分类查询,用于用户预约订单查询,管理员留言查询") public class ReservationDTO extends PageDTO{ // 用户编号 + @Schema(description = "用户编号") private Integer userId; // 预约订单状态 + @Schema(description = "状态") private Integer status; } diff --git a/src/main/java/com/example/venue_reservation_service/dto/ViewDTO.java b/src/main/java/com/example/venue_reservation_service/dto/ViewDTO.java index 08042d0..e532a50 100644 --- a/src/main/java/com/example/venue_reservation_service/dto/ViewDTO.java +++ b/src/main/java/com/example/venue_reservation_service/dto/ViewDTO.java @@ -1,6 +1,8 @@ package com.example.venue_reservation_service.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; @@ -11,5 +13,7 @@ public class ViewDTO extends PageDTO{ private String phone; + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate date; } 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 16e77f6..d651469 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 @@ -4,6 +4,7 @@ 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.dto.ReservationDTO; import com.example.venue_reservation_service.vo.Result; /** @@ -17,5 +18,5 @@ public interface QuestionService extends IService { Result userPage(QuestionQueryDTO dto); - Result adminPage(QuestionQueryDTO dto); + Result adminPage(ReservationDTO dto); } 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 34a890d..d1ec61c 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,12 +1,15 @@ package com.example.venue_reservation_service.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.Query; 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.dto.ReservationDTO; import com.example.venue_reservation_service.mapper.QuestionMapper; import com.example.venue_reservation_service.service.QuestionService; import com.example.venue_reservation_service.vo.QueryVO; @@ -17,6 +20,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; /** * @author 31586 @@ -31,27 +35,21 @@ public class QuestionServiceImpl extends ServiceImpl @Override public Result create(QuestionDTO dto) { - String word = dto.getDescription().trim(); - - + String word = dto.getDescription().strip(); Question question = lambdaQuery() .eq(Question::getDescription, word) .eq(Question::getUserId, dto.getUserId()) .one(); - if(question != null) { + if(Optional.ofNullable(question).isPresent()) { + question.setCreatedTime(LocalDateTime.now()); + }else { + question = BeanUtil.copyProperties(dto, Question.class); + question.setStatus(0); 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); - + saveOrUpdate(question); return Result.ok().message("保存问题成功"); } @@ -83,7 +81,7 @@ public class QuestionServiceImpl extends ServiceImpl } @Override - public Result adminPage(QuestionQueryDTO dto) { + public Result adminPage(ReservationDTO dto) { Page page = Page.of(dto.getCurrent(), dto.getSize());