AcupointController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.aijiuyi.admin.controller;
  2. import com.aijiuyi.admin.common.annotation.Log;
  3. import com.aijiuyi.admin.common.entity.Result;
  4. import com.aijiuyi.admin.common.enums.OperationType;
  5. import com.aijiuyi.admin.controller.dto.AcupointQueryDTO;
  6. import com.aijiuyi.admin.controller.dto.YReferenceOptionDTO;
  7. import com.aijiuyi.admin.entity.Acupoint;
  8. import com.aijiuyi.admin.service.AcupointService;
  9. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10. import com.baomidou.mybatisplus.core.metadata.IPage;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.*;
  13. import java.util.List;
  14. /**
  15. * 穴位管理 Controller
  16. * 提供穴位的增删改查、批量删除和批量导入接口
  17. */
  18. @RestController
  19. @RequestMapping("/acupoint")
  20. public class AcupointController {
  21. @Autowired
  22. private AcupointService acupointService;
  23. /**
  24. * 获取所有启用穴位列表(用于选择框)
  25. *
  26. * @return 穴位列表(id + name)
  27. */
  28. @GetMapping("/list")
  29. @Log(value = "获取穴位选项列表", module = "穴位管理", operationType = OperationType.QUERY)
  30. public Result<List<Acupoint>> list() {
  31. List<Acupoint> list = acupointService.list(
  32. new LambdaQueryWrapper<Acupoint>()
  33. .eq(Acupoint::getStatus, 1)
  34. .select(Acupoint::getId, Acupoint::getName)
  35. .orderByAsc(Acupoint::getId)
  36. );
  37. return Result.success(list);
  38. }
  39. /**
  40. * 获取Y轴医学定位术语选项(用于新增/编辑穴位时选择)
  41. *
  42. * @return Y轴定位术语选项
  43. */
  44. @GetMapping("/y-reference-options")
  45. @Log(value = "获取穴位Y轴定位术语", module = "穴位管理", operationType = OperationType.QUERY)
  46. public Result<List<YReferenceOptionDTO>> yReferenceOptions() {
  47. return Result.success(acupointService.listYReferenceOptions());
  48. }
  49. /**
  50. * 分页查询穴位列表
  51. *
  52. * @param queryDTO 查询条件
  53. * @return 分页结果
  54. */
  55. @GetMapping("/page")
  56. @Log(value = "查询穴位列表", module = "穴位管理", operationType = OperationType.QUERY)
  57. public Result<IPage<Acupoint>> page(AcupointQueryDTO queryDTO) {
  58. return Result.success(acupointService.pageList(queryDTO));
  59. }
  60. /**
  61. * 导出全部穴位(返回当前筛选条件下的全量数据供前端 Excel 导出使用)
  62. *
  63. * @param queryDTO 查询条件(不含分页参数)
  64. * @return 穴位列表
  65. */
  66. @GetMapping("/export")
  67. @Log(value = "导出穴位列表", module = "穴位管理", operationType = OperationType.OTHER)
  68. public Result<List<Acupoint>> export(AcupointQueryDTO queryDTO) {
  69. return Result.success(acupointService.listAll(queryDTO));
  70. }
  71. /**
  72. * 查询穴位详情
  73. *
  74. * @param id 穴位ID
  75. * @return 穴位详情
  76. */
  77. @GetMapping("/{id}")
  78. @Log(value = "查询穴位详情", module = "穴位管理", operationType = OperationType.QUERY)
  79. public Result<Acupoint> getById(@PathVariable Long id) {
  80. return Result.success(acupointService.getById(id));
  81. }
  82. /**
  83. * 新增穴位
  84. *
  85. * @param acupoint 穴位信息
  86. * @return 操作结果
  87. */
  88. @PostMapping
  89. @Log(value = "新增穴位", module = "穴位管理", operationType = OperationType.INSERT)
  90. public Result<Void> add(@RequestBody Acupoint acupoint) {
  91. acupointService.addAcupoint(acupoint);
  92. return Result.success();
  93. }
  94. /**
  95. * 修改穴位信息
  96. *
  97. * @param acupoint 穴位信息
  98. * @return 操作结果
  99. */
  100. @PutMapping
  101. @Log(value = "修改穴位信息", module = "穴位管理", operationType = OperationType.UPDATE)
  102. public Result<Void> update(@RequestBody Acupoint acupoint) {
  103. acupointService.updateAcupoint(acupoint);
  104. return Result.success();
  105. }
  106. /**
  107. * 删除穴位(逻辑删除)
  108. *
  109. * @param id 穴位ID
  110. * @return 操作结果
  111. */
  112. @DeleteMapping("/{id}")
  113. @Log(value = "删除穴位", module = "穴位管理", operationType = OperationType.DELETE)
  114. public Result<Void> delete(@PathVariable Long id) {
  115. acupointService.deleteAcupoint(id);
  116. return Result.success();
  117. }
  118. /**
  119. * 批量删除穴位(逻辑删除,需二次确认)
  120. *
  121. * @param ids 穴位ID列表
  122. * @return 操作结果
  123. */
  124. @DeleteMapping("/batch")
  125. @Log(value = "批量删除穴位", module = "穴位管理", operationType = OperationType.DELETE)
  126. public Result<Void> batchDelete(@RequestBody List<Long> ids) {
  127. acupointService.batchDeleteAcupoint(ids);
  128. return Result.success();
  129. }
  130. /**
  131. * 批量导入穴位
  132. *
  133. * @param list 穴位信息列表
  134. * @return 操作结果
  135. */
  136. @PostMapping("/import")
  137. @Log(value = "批量导入穴位", module = "穴位管理", operationType = OperationType.INSERT)
  138. public Result<Void> batchImport(@RequestBody List<Acupoint> list) {
  139. acupointService.batchImport(list);
  140. return Result.success();
  141. }
  142. }