diff --git a/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java b/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java index bfc9f5d..b5f6c48 100644 --- a/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java +++ b/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java @@ -1,6 +1,7 @@ package com.iflytop.handacid.app.controller; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.iflytop.handacid.app.model.dto.FormulationListDTO; +import com.iflytop.handacid.app.model.vo.FormulationListVO; import com.iflytop.handacid.common.base.BasePageQuery; import com.iflytop.handacid.common.model.entity.Formulation; import com.iflytop.handacid.common.model.vo.FormulationVO; @@ -12,10 +13,10 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; /** * 配方 @@ -26,23 +27,20 @@ import java.util.Arrays; @RequiredArgsConstructor @Slf4j public class FormulationController { - @Autowired - private FormulationService formulationService; - @Autowired - private SolutionService solutionService; + private final FormulationService formulationService; + private final SolutionService solutionService; @PostMapping("/page") @Operation(summary = "获取分页数据") - public PageResult getPage(BasePageQuery query) { + public PageResult getPage(@RequestBody BasePageQuery query) { return PageResult.success(formulationService.getPage(query)); } -/* @GetMapping("/list") + @PostMapping("/list") @Operation(summary = "获取List数据") - public Result> getList( @RequestParam Integer solutionId, @RequestParam String concentration) { - List formulations=formulationService.list(new LambdaQueryWrapper().eq(Formulation::getSolutionId, solutionId).eq(Formulation::getConcentration,concentration)); - return Result.success(formulations); - }*/ + public Result> getList(@RequestBody(required = false) FormulationListDTO dto) { + return Result.success(formulationService.getList(dto)); + } @GetMapping("/{id}") @Operation(summary = "根据ID获取") @@ -54,14 +52,14 @@ public class FormulationController { @Operation(summary = "创建配方") public Result create(@RequestBody Formulation formulation) { boolean flag = formulationService.save(formulation); - return flag ? Result.success("添加成功") : Result.failed("添加失败"); + return flag ? Result.success() : Result.failed(); } @PutMapping @Operation(summary = "修改配方") public Result update(@RequestBody Formulation formulation) { boolean flag = formulationService.saveOrUpdate(formulation); - return flag ? Result.success("修改成功") : Result.failed("修改失败"); + return flag ? Result.success() : Result.failed(); } @DeleteMapping("/{ids}") @@ -70,7 +68,7 @@ public class FormulationController { boolean success = formulationService.removeBatchByIds( Arrays.stream(ids.split(",")).map(Long::valueOf).toList() ); - return success ? Result.success("删除成功") : Result.failed("删除失败"); + return success ? Result.success() : Result.failed(); } /* @GetMapping("/concentration/{id}") diff --git a/src/main/java/com/iflytop/handacid/app/model/dto/FormulationListDTO.java b/src/main/java/com/iflytop/handacid/app/model/dto/FormulationListDTO.java new file mode 100644 index 0000000..c2226b4 --- /dev/null +++ b/src/main/java/com/iflytop/handacid/app/model/dto/FormulationListDTO.java @@ -0,0 +1,18 @@ +package com.iflytop.handacid.app.model.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class FormulationListDTO { + + @NotNull + @Schema(description = "溶液id") + private Long solutionId; + + @NotNull + @Schema(description = "浓度") + private Double concentration; + +} diff --git a/src/main/java/com/iflytop/handacid/app/model/vo/FormulationListVO.java b/src/main/java/com/iflytop/handacid/app/model/vo/FormulationListVO.java new file mode 100644 index 0000000..2648337 --- /dev/null +++ b/src/main/java/com/iflytop/handacid/app/model/vo/FormulationListVO.java @@ -0,0 +1,24 @@ +package com.iflytop.handacid.app.model.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class FormulationListVO { + + private Long id; + + @Schema(description = "加液量(mL)") + private Double volume; + + @Schema(description = "溶液ID") + private Long solutionId; + + @Schema(description = "溶液名称") + private String solutionName; + + @Schema(description = "溶液浓度") + private Double concentration; + +} diff --git a/src/main/java/com/iflytop/handacid/common/service/FormulationService.java b/src/main/java/com/iflytop/handacid/common/service/FormulationService.java index fc0064e..fab7475 100644 --- a/src/main/java/com/iflytop/handacid/common/service/FormulationService.java +++ b/src/main/java/com/iflytop/handacid/common/service/FormulationService.java @@ -1,8 +1,12 @@ package com.iflytop.handacid.common.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iflytop.handacid.app.model.dto.FormulationListDTO; +import com.iflytop.handacid.app.model.vo.FormulationListVO; import com.iflytop.handacid.common.base.BasePageQuery; import com.iflytop.handacid.common.mapper.FormulationMapper; import com.iflytop.handacid.common.model.entity.Formulation; @@ -12,6 +16,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -47,4 +52,24 @@ public class FormulationService extends ServiceImpl getList(FormulationListDTO dto) { + LambdaQueryWrapper qw = null; + if (dto != null) { + qw = Wrappers.lambdaQuery() + .eq(dto.getSolutionId() != null, Formulation::getSolutionId, dto.getSolutionId()) + .eq(dto.getConcentration() != null, Formulation::getConcentration, dto.getConcentration()); + } + + List formulations = this.list(qw); + List formulationListVOList = new ArrayList<>(); + for (Formulation formulation : formulations) { + FormulationListVO formulationListVO = new FormulationListVO(); + BeanUtils.copyProperties(formulation, formulationListVO); + Solution solution = solutionService.getById(formulation.getSolutionId()); + formulationListVO.setSolutionName(solution.getName()); + formulationListVOList.add(formulationListVO); + } + return formulationListVOList; + } + }