Explorar o código

feat:1.新增一个查询印章状态的接口

wangkun hai 6 días
pai
achega
1e2f13de00

+ 8 - 0
src/main/java/com/ymwk/icvp/signature/controller/SealController.java

@@ -37,6 +37,14 @@ public class SealController {
         return sealService.getSealDetail(id);
     }
 
+    /**
+     * 查询印章状态(id 与 sealAlias 至少提供一个)
+     */
+    @PostMapping("/status")
+    public ResponseDTO<SealStatusVO> status(@RequestBody SealStatusQueryDTO queryDTO) {
+        return sealService.getStatus(queryDTO);
+    }
+
     /**
      * 生成印章
      */

+ 16 - 0
src/main/java/com/ymwk/icvp/signature/model/SealStatusQueryDTO.java

@@ -0,0 +1,16 @@
+package com.ymwk.icvp.signature.model;
+
+import lombok.Data;
+
+/**
+ * 印章状态查询请求(id 与 sealAlias 至少提供一个)
+ */
+@Data
+public class SealStatusQueryDTO {
+
+    /** 印章ID */
+    private Long id;
+
+    /** 印章别名 */
+    private String sealAlias;
+}

+ 22 - 0
src/main/java/com/ymwk/icvp/signature/model/SealStatusVO.java

@@ -0,0 +1,22 @@
+package com.ymwk.icvp.signature.model;
+
+import lombok.Data;
+
+/**
+ * 印章状态查询结果
+ */
+@Data
+public class SealStatusVO {
+
+    /** 印章ID */
+    private Long sealId;
+
+    /** 印章别名 */
+    private String sealAlias;
+
+    /** 印章状态:1-正常 2-冻结 3-销毁 4-过期 */
+    private Integer sealStatus;
+
+    /** 状态描述 */
+    private String statusDesc;
+}

+ 4 - 0
src/main/java/com/ymwk/icvp/signature/service/SealService.java

@@ -8,12 +8,16 @@ import com.ymwk.icvp.signature.model.SealCreateDTO;
 import com.ymwk.icvp.signature.model.SealDownload;
 import com.ymwk.icvp.signature.model.SealExtendDTO;
 import com.ymwk.icvp.signature.model.SealQueryDTO;
+import com.ymwk.icvp.signature.model.SealStatusQueryDTO;
+import com.ymwk.icvp.signature.model.SealStatusVO;
 
 public interface SealService {
     ResponseDTO<PageResult<Seal>> pageSeal(SealQueryDTO queryDTO);
 
     ResponseDTO<Seal> getSealDetail(Long id);
 
+    ResponseDTO<SealStatusVO> getStatus(SealStatusQueryDTO queryDTO);
+
     ResponseDTO<Long> createSeal(SealCreateDTO createDTO);
 
     ResponseDTO<Void> freeze(Long id);

+ 22 - 0
src/main/java/com/ymwk/icvp/signature/service/impl/SealServiceImpl.java

@@ -73,6 +73,28 @@ public class SealServiceImpl implements SealService {
         return ResponseDTO.ok(seal);
     }
 
+    @Override
+    public ResponseDTO<SealStatusVO> getStatus(SealStatusQueryDTO queryDTO) {
+        if (queryDTO.getId() == null && !StringUtils.hasText(queryDTO.getSealAlias())) {
+            return ResponseDTO.error(ResponseDTO.ERROR_CODE, "请至少提供印章ID(id)或印章别名(sealAlias)之一");
+        }
+        LambdaQueryWrapper<Seal> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(queryDTO.getId() != null, Seal::getId, queryDTO.getId())
+                .eq(StringUtils.hasText(queryDTO.getSealAlias()),
+                        Seal::getSealAlias, queryDTO.getSealAlias());
+        Seal seal = sealMapper.selectOne(wrapper);
+        if (seal == null) {
+            return ResponseDTO.error(ResponseDTO.ERROR_CODE, "印章不存在");
+        }
+        SealStatusEnum status = SealStatusEnum.of(seal.getSealStatus());
+        SealStatusVO vo = new SealStatusVO();
+        vo.setSealId(seal.getId());
+        vo.setSealAlias(seal.getSealAlias());
+        vo.setSealStatus(seal.getSealStatus());
+        vo.setStatusDesc(status != null ? status.getDesc() : "未知");
+        return ResponseDTO.ok(vo);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ResponseDTO<Long> createSeal(SealCreateDTO createDTO) {