diff --git a/src/main/java/com/iflytop/gd/app/controller/PhotoController.java b/src/main/java/com/iflytop/gd/app/controller/PhotoController.java index c8178af..cb7d687 100644 --- a/src/main/java/com/iflytop/gd/app/controller/PhotoController.java +++ b/src/main/java/com/iflytop/gd/app/controller/PhotoController.java @@ -1,22 +1,18 @@ package com.iflytop.gd.app.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.iflytop.gd.app.model.dto.PhotoSaveDTO; -import com.iflytop.gd.app.model.entity.Photos; +import com.iflytop.gd.app.model.vo.PhotoListVO; +import com.iflytop.gd.app.model.vo.PhotoVO; import com.iflytop.gd.app.service.api.PhotosService; import com.iflytop.gd.common.base.BasePageQuery; -import com.iflytop.gd.common.result.PageResult; import com.iflytop.gd.common.result.Result; -import com.iflytop.gd.hardware.drivers.CameraBaslerDriver; 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.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 照片接口 @@ -31,14 +27,18 @@ public class PhotoController { @Operation(summary = "照片列表") @GetMapping("/list") - public PageResult getList(BasePageQuery pageQuery) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.orderByDesc(Photos::getCreateTime); - IPage result = photosService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), queryWrapper); - return PageResult.success(result); + public Result> getList(BasePageQuery pageQuery) { + return Result.success(photosService.getList(pageQuery)); } @Operation(summary = "拍摄一张照片") + @GetMapping("/{id}") + public Result show(@PathVariable Long id) { + return Result.success(photosService.show(id)); + } + + + @Operation(summary = "拍摄一张照片") @GetMapping("/take") public Result take() { return Result.success(photosService.take()); @@ -46,8 +46,8 @@ public class PhotoController { @Operation(summary = "保存照片") - @GetMapping("/save") - public Result save(PhotoSaveDTO photoSaveDTO) { + @PostMapping("/save") + public Result save(@RequestBody PhotoSaveDTO photoSaveDTO) { return Result.success(); } diff --git a/src/main/java/com/iflytop/gd/app/model/vo/PhotoListVO.java b/src/main/java/com/iflytop/gd/app/model/vo/PhotoListVO.java new file mode 100644 index 0000000..7c83c37 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/model/vo/PhotoListVO.java @@ -0,0 +1,34 @@ +package com.iflytop.gd.app.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.iflytop.gd.app.model.entity.Tasks; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@EqualsAndHashCode(callSuper = false) +@Data +public class PhotoListVO{ + private Long id; + + @Schema(description = "模式(手动、自动)") + private String mode; + + @Schema(description = "矿石名称") + private String oreName; + + @Schema(description = "工艺名称(自动模式)") + private String craftsName; + + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; +} diff --git a/src/main/java/com/iflytop/gd/app/model/vo/PhotoVO.java b/src/main/java/com/iflytop/gd/app/model/vo/PhotoVO.java new file mode 100644 index 0000000..fa262a3 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/model/vo/PhotoVO.java @@ -0,0 +1,48 @@ +package com.iflytop.gd.app.model.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@EqualsAndHashCode(callSuper = false) +@Data +public class PhotoVO { + private Long id; + + @Schema(description = "模式(手动、自动)") + private String mode; + + @Schema(description = "矿石ID") + private Long oreId; + + @Schema(description = "工艺ID") + private Long craftsId; + + @Schema(description = "矿石名称") + private String oreName; + + @Schema(description = "工艺名称(自动模式)") + private String craftsName; + + @Schema(description = "图片地址") + private String url; + + @Schema(description = "图片问题数据") + private String problem; + + @Schema(description = "备注") + private String remarks; + + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; +} diff --git a/src/main/java/com/iflytop/gd/app/service/api/PhotosService.java b/src/main/java/com/iflytop/gd/app/service/api/PhotosService.java index 89363f5..b799542 100644 --- a/src/main/java/com/iflytop/gd/app/service/api/PhotosService.java +++ b/src/main/java/com/iflytop/gd/app/service/api/PhotosService.java @@ -1,13 +1,22 @@ package com.iflytop.gd.app.service.api; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iflytop.gd.app.mapper.PhotosMapper; import com.iflytop.gd.app.model.entity.Photos; +import com.iflytop.gd.app.model.vo.PhotoListVO; +import com.iflytop.gd.app.model.vo.PhotoVO; +import com.iflytop.gd.common.base.BasePageQuery; import com.iflytop.gd.hardware.drivers.CameraBaslerDriver; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * 照片接口服务 */ @@ -21,6 +30,41 @@ public class PhotosService extends ServiceImpl { @Value("${photo.path}") private String path; + public List getList(BasePageQuery pageQuery) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.orderByDesc(Photos::getCreateTime); + IPage result = this.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), queryWrapper); + List dataList = new ArrayList<>(); + for (Photos photos : result.getRecords()) { + PhotoListVO photoListVO = new PhotoListVO(); + photoListVO.setId(photos.getId()); + photoListVO.setMode(photos.getMode()); + photoListVO.setCraftsName(photos.getCraftsName()); + photoListVO.setOreName(photos.getOreName()); + photoListVO.setCreateTime(photos.getCreateTime()); + photoListVO.setUpdateTime(photos.getUpdateTime()); + dataList.add(photoListVO); + } + return dataList; + } + + public PhotoVO show(Long id){ + Photos photos = this.getById(id); + if(photos != null){ + PhotoVO photoVO = new PhotoVO(); + photoVO.setId(photos.getId()); + photoVO.setMode(photos.getMode()); + photoVO.setCraftsName(photos.getCraftsName()); + photoVO.setOreName(photos.getOreName()); + photoVO.setProblem(photos.getProblem()); + photoVO.setRemarks(photos.getRemarks()); + photoVO.setCreateTime(photos.getCreateTime()); + photoVO.setUpdateTime(photos.getUpdateTime()); + photoVO.setUrl(url + photos.getImagePath()); + return photoVO; + } + return null; + } public String take() { try {