package com.rj.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.rj.entity.TrainingItem; import com.rj.service.ITrainingItemService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; /** *

* 陪练子表 前端控制器 *

* * @author system * @since 2025-01-XX */ @RestController @RequestMapping("/api/trainingItem") @Tag(name = "陪练子表管理", description = "陪练子表相关接口") public class TrainingItemController { @Autowired private ITrainingItemService trainingItemService; /** * 新增陪练子表记录 */ @PostMapping("/add") @Operation(summary = "新增陪练子表记录", description = "添加新的陪练子表记录") public ResponseEntity> addTrainingItem( @Parameter(description = "陪练子表信息", required = true) @RequestBody TrainingItem trainingItem) { Map result = new HashMap<>(); try { if (trainingItem.getId() == null || trainingItem.getId().trim().isEmpty()) { trainingItem.setId(UUID.randomUUID().toString()); } trainingItem.setCreateTime(LocalDateTime.now()); boolean success = trainingItemService.save(trainingItem); if (success) { result.put("success", true); result.put("message", "陪练子表记录添加成功"); result.put("data", trainingItem); return ResponseEntity.ok(result); } else { result.put("success", false); result.put("message", "陪练子表记录添加失败"); return ResponseEntity.badRequest().body(result); } } catch (Exception e) { result.put("success", false); result.put("message", "陪练子表记录添加异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 根据ID查询陪练子表记录 */ @GetMapping("/get/{id}") @Operation(summary = "根据ID查询陪练子表记录", description = "根据陪练子表ID获取详细信息") public ResponseEntity> getTrainingItemById( @Parameter(description = "陪练子表ID", required = true) @PathVariable String id) { Map result = new HashMap<>(); try { TrainingItem trainingItem = trainingItemService.getById(id); if (trainingItem != null) { result.put("success", true); result.put("message", "查询成功"); result.put("data", trainingItem); return ResponseEntity.ok(result); } else { result.put("success", false); result.put("message", "陪练子表记录不存在"); return ResponseEntity.notFound().build(); } } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 根据父ID查询陪练子表列表 */ @GetMapping("/getByParentId") @Operation(summary = "根据父ID查询陪练子表", description = "根据父ID查询子陪练子表列表") public ResponseEntity> getTrainingItemsByParentId( @Parameter(description = "父ID", required = true) @RequestParam String parentId) { Map result = new HashMap<>(); try { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(TrainingItem::getParentId, parentId); queryWrapper.orderByDesc(TrainingItem::getCreateTime); List trainingItems = trainingItemService.list(queryWrapper); result.put("success", true); result.put("message", "查询成功"); result.put("data", trainingItems); result.put("count", trainingItems.size()); return ResponseEntity.ok(result); } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 分页查询陪练子表列表 */ @GetMapping("/list") @Operation(summary = "分页查询陪练子表列表", description = "分页查询陪练子表信息列表") public ResponseEntity> getTrainingItemList( @Parameter(description = "页码", example = "1") @RequestParam(defaultValue = "1") Integer current, @Parameter(description = "每页大小", example = "10") @RequestParam(defaultValue = "10") Integer size, @Parameter(description = "父ID(精确查询)") @RequestParam(required = false) String parentId, @Parameter(description = "租户ID(精确查询)") @RequestParam(required = false) String tenantId, @Parameter(description = "题目(模糊查询)") @RequestParam(required = false) String question, @Parameter(description = "题目答案(模糊查询)") @RequestParam(required = false) String answer, @Parameter(description = "创建开始时间", example = "2025-01-01 00:00:00") @RequestParam(required = false) String createStartTime, @Parameter(description = "创建结束时间", example = "2025-12-31 23:59:59") @RequestParam(required = false) String createEndTime) { Map result = new HashMap<>(); try { Page page = new Page<>(current, size); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 添加查询条件 if (parentId != null && !parentId.trim().isEmpty()) { queryWrapper.eq(TrainingItem::getParentId, parentId); } if (tenantId != null && !tenantId.trim().isEmpty()) { queryWrapper.eq(TrainingItem::getTenantId, tenantId); } if (question != null && !question.trim().isEmpty()) { queryWrapper.like(TrainingItem::getQuestion, question); } if (answer != null && !answer.trim().isEmpty()) { queryWrapper.like(TrainingItem::getAnswer, answer); } // 添加时间范围查询条件 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); if (createStartTime != null && !createStartTime.trim().isEmpty()) { try { LocalDateTime startTime = LocalDateTime.parse(createStartTime, formatter); queryWrapper.ge(TrainingItem::getCreateTime, startTime); } catch (Exception e) { result.put("success", false); result.put("message", "创建开始时间格式错误,请使用格式:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } if (createEndTime != null && !createEndTime.trim().isEmpty()) { try { LocalDateTime endTime = LocalDateTime.parse(createEndTime, formatter); queryWrapper.le(TrainingItem::getCreateTime, endTime); } catch (Exception e) { result.put("success", false); result.put("message", "创建结束时间格式错误,请使用格式:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } // 按创建时间倒序排列 queryWrapper.orderByDesc(TrainingItem::getCreateTime); Page trainingItemPage = trainingItemService.page(page, queryWrapper); result.put("success", true); result.put("message", "查询成功"); result.put("data", trainingItemPage.getRecords()); result.put("total", trainingItemPage.getTotal()); result.put("current", trainingItemPage.getCurrent()); result.put("size", trainingItemPage.getSize()); result.put("pages", trainingItemPage.getPages()); return ResponseEntity.ok(result); } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 按条件不分页查询陪练子表列表 */ @GetMapping("/listAll") @Operation(summary = "按条件不分页查询陪练子表列表", description = "按条件查询所有陪练子表信息列表(不分页)") public ResponseEntity> getAllTrainingItemList( @Parameter(description = "父ID(精确查询)") @RequestParam(required = false) String parentId, @Parameter(description = "租户ID(精确查询)") @RequestParam(required = false) String tenantId, @Parameter(description = "题目(模糊查询)") @RequestParam(required = false) String question, @Parameter(description = "题目答案(模糊查询)") @RequestParam(required = false) String answer, @Parameter(description = "创建开始时间", example = "2025-01-01 00:00:00") @RequestParam(required = false) String createStartTime, @Parameter(description = "创建结束时间", example = "2025-12-31 23:59:59") @RequestParam(required = false) String createEndTime) { Map result = new HashMap<>(); try { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // 添加查询条件 if (parentId != null && !parentId.trim().isEmpty()) { queryWrapper.eq(TrainingItem::getParentId, parentId); } if (tenantId != null && !tenantId.trim().isEmpty()) { queryWrapper.eq(TrainingItem::getTenantId, tenantId); } if (question != null && !question.trim().isEmpty()) { queryWrapper.like(TrainingItem::getQuestion, question); } if (answer != null && !answer.trim().isEmpty()) { queryWrapper.like(TrainingItem::getAnswer, answer); } // 添加时间范围查询条件 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); if (createStartTime != null && !createStartTime.trim().isEmpty()) { try { LocalDateTime startTime = LocalDateTime.parse(createStartTime, formatter); queryWrapper.ge(TrainingItem::getCreateTime, startTime); } catch (Exception e) { result.put("success", false); result.put("message", "创建开始时间格式错误,请使用格式:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } if (createEndTime != null && !createEndTime.trim().isEmpty()) { try { LocalDateTime endTime = LocalDateTime.parse(createEndTime, formatter); queryWrapper.le(TrainingItem::getCreateTime, endTime); } catch (Exception e) { result.put("success", false); result.put("message", "创建结束时间格式错误,请使用格式:yyyy-MM-dd HH:mm:ss"); return ResponseEntity.badRequest().body(result); } } // 按创建时间倒序排列 queryWrapper.orderByDesc(TrainingItem::getCreateTime); List trainingItemList = trainingItemService.list(queryWrapper); result.put("success", true); result.put("message", "查询成功"); result.put("data", trainingItemList); result.put("count", trainingItemList.size()); return ResponseEntity.ok(result); } catch (Exception e) { result.put("success", false); result.put("message", "查询异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 更新陪练子表信息 */ @PutMapping("/update") @Operation(summary = "更新陪练子表信息", description = "更新陪练子表详细信息") public ResponseEntity> updateTrainingItem( @Parameter(description = "陪练子表信息", required = true) @RequestBody TrainingItem trainingItem) { Map result = new HashMap<>(); try { if (trainingItem.getId() == null || trainingItem.getId().trim().isEmpty()) { result.put("success", false); result.put("message", "陪练子表ID不能为空"); return ResponseEntity.badRequest().body(result); } boolean success = trainingItemService.updateById(trainingItem); if (success) { result.put("success", true); result.put("message", "陪练子表信息更新成功"); result.put("data", trainingItem); return ResponseEntity.ok(result); } else { result.put("success", false); result.put("message", "陪练子表信息更新失败"); return ResponseEntity.badRequest().body(result); } } catch (Exception e) { result.put("success", false); result.put("message", "更新异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 根据ID删除陪练子表记录 */ @DeleteMapping("/delete/{id}") @Operation(summary = "删除陪练子表记录", description = "根据陪练子表ID删除陪练子表信息") public ResponseEntity> deleteTrainingItem( @Parameter(description = "陪练子表ID", required = true) @PathVariable String id) { Map result = new HashMap<>(); try { boolean success = trainingItemService.removeById(id); if (success) { result.put("success", true); result.put("message", "陪练子表记录删除成功"); return ResponseEntity.ok(result); } else { result.put("success", false); result.put("message", "陪练子表记录删除失败"); return ResponseEntity.badRequest().body(result); } } catch (Exception e) { result.put("success", false); result.put("message", "删除异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } /** * 批量删除陪练子表记录 */ @DeleteMapping("/batchDelete") @Operation(summary = "批量删除陪练子表记录", description = "根据陪练子表ID列表批量删除陪练子表信息") public ResponseEntity> batchDeleteTrainingItems( @Parameter(description = "陪练子表ID列表", required = true) @RequestBody List ids) { Map result = new HashMap<>(); try { if (ids == null || ids.isEmpty()) { result.put("success", false); result.put("message", "陪练子表ID列表不能为空"); return ResponseEntity.badRequest().body(result); } boolean success = trainingItemService.removeByIds(ids); if (success) { result.put("success", true); result.put("message", "批量删除成功,共删除 " + ids.size() + " 条记录"); return ResponseEntity.ok(result); } else { result.put("success", false); result.put("message", "批量删除失败"); return ResponseEntity.badRequest().body(result); } } catch (Exception e) { result.put("success", false); result.put("message", "批量删除异常:" + e.getMessage()); return ResponseEntity.internalServerError().body(result); } } }