From 7db228151742e92a53f828872d79d0c08d1a19a9 Mon Sep 17 00:00:00 2001 From: aosodo_4812 Date: Thu, 3 Sep 2026 15:41:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8C=BA=E5=9F=9F=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 9 ++++ .../web/UserRegionPermissionController.java | 28 +++++++++--- .../command/UserRegionPermissionAddExe.java | 45 +++++++++++++------ .../UserRegionPermissionServiceImpl.java | 31 ++++++++++--- .../api/UserRegionPermissionServiceI.java | 7 ++- .../gbs/edgeguard/dto/FencePointCmd.java | 2 + .../edgeguard/dto/OpenAlarmReceiveCmd.java | 5 +++ .../dto/UserRegionPermissionAddCmd.java | 41 ++++++++++++++--- .../dto/UserRegionPermissionPageQry.java | 10 +++++ .../dto/UserRegionPermissionUpdateCmd.java | 44 ++++++++++++++---- .../dto/clientobject/FencePointCo.java | 8 ++++ .../dto/clientobject/OpenAlarmReceiptCo.java | 10 +++++ .../dto/clientobject/OpenCameraCo.java | 10 +++++ .../dto/clientobject/OpenRegionCo.java | 28 ++++++++++++ .../dto/clientobject/OpenRegionUserCo.java | 14 ++++++ .../clientobject/UserRegionPermissionCo.java | 34 ++++++++++++++ 16 files changed, 285 insertions(+), 41 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index a14ffa1..482fc7b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -286,3 +286,12 @@ public class XxxJob { - [ ] XXL-JOB 名称唯一,任务幂等,失败可被调度中心感知。 - [ ] 日志和响应未泄露人脸、证件、文件、密钥或完整敏感报文。 - [ ] 完成与改动风险匹配的 Maven 编译、测试和 `git diff` 检查。 + +## 13. DTO、接口文档与代码格式 + +- DTO、Cmd、Qry、Co 等接口对象必须使用 `@ApiModel` 标明对象用途;每个对外字段必须使用 `@ApiModelProperty` 说明字段含义、枚举取值、时间格式和必要时的必填条件。Swagger 注解不能替代 Bean Validation。 +- 字段、校验注解、Swagger 注解必须按“一行一个元素”排版:注解独占行、字段独占行;字段之间保留一个空行。禁止将多个注解和字段压缩到同一行。 +- 方法参数、链式调用或条件表达式超过一行时,按语义换行并保持四个空格缩进;禁止为压缩行数使用单行 `if`、单行循环或单行方法体。 +- 导入按 Java 标准库、第三方库、项目内包分组,组间保留一个空行;同组内按 IDE 默认规则排序。禁止通配符导入。 +- DTO 命名和分层遵循《Java开发手册(黄山版)》:DO、DTO、BO、VO 等类型缩写使用 UpperCamelCase;属性和方法使用 lowerCamelCase;布尔属性避免使用 `is` 前缀。 +- 新增或修改接口字段时,必须同步维护 Controller Swagger 描述、对应 Co/Cmd 注解及 `OPEN-API.md` 等对外文档示例。 diff --git a/web-adapter/src/main/java/com/zcloud/gbs/edgeguard/web/UserRegionPermissionController.java b/web-adapter/src/main/java/com/zcloud/gbs/edgeguard/web/UserRegionPermissionController.java index d498087..c930dc0 100644 --- a/web-adapter/src/main/java/com/zcloud/gbs/edgeguard/web/UserRegionPermissionController.java +++ b/web-adapter/src/main/java/com/zcloud/gbs/edgeguard/web/UserRegionPermissionController.java @@ -1,6 +1,7 @@ package com.zcloud.gbs.edgeguard.web; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.gbs.edgeguard.api.UserRegionPermissionServiceI; @@ -31,21 +32,36 @@ public class UserRegionPermissionController { @ApiOperation("分页查询人员区域授权") @GetMapping - public PageResponse page(@Validated UserRegionPermissionPageQry qry) { return permissionService.page(qry); } + public PageResponse page( + @Validated UserRegionPermissionPageQry qry) { + return permissionService.page(qry); + } @ApiOperation("查询人员区域授权详情") @GetMapping("/{id}") - public SingleResponse detail(@PathVariable Long id) { return permissionService.getById(id); } + public SingleResponse detail(@PathVariable Long id) { + return permissionService.getById(id); + } - @ApiOperation("新增人员区域授权") + @ApiOperation("批量新增人员区域授权") @PostMapping - public SingleResponse add(@Validated @RequestBody UserRegionPermissionAddCmd cmd) { return permissionService.add(cmd); } + public MultiResponse add(@Validated @RequestBody UserRegionPermissionAddCmd cmd) { + return permissionService.add(cmd); + } @ApiOperation("修改人员区域授权") @PutMapping("/{id}") - public Response update(@PathVariable Long id, @Validated @RequestBody UserRegionPermissionUpdateCmd cmd) { return permissionService.update(id, cmd); } + public Response update( + @PathVariable Long id, + @Validated @RequestBody UserRegionPermissionUpdateCmd cmd) { + return permissionService.update(id, cmd); + } @ApiOperation("撤销人员区域授权") @DeleteMapping("/{id}") - public Response remove(@PathVariable Long id, @RequestParam(required = false) String revokeReason) { return permissionService.remove(id, revokeReason); } + public Response remove( + @PathVariable Long id, + @RequestParam(required = false) String revokeReason) { + return permissionService.remove(id, revokeReason); + } } diff --git a/web-app/src/main/java/com/zcloud/gbs/edgeguard/command/UserRegionPermissionAddExe.java b/web-app/src/main/java/com/zcloud/gbs/edgeguard/command/UserRegionPermissionAddExe.java index 96cbe9a..b98f03e 100644 --- a/web-app/src/main/java/com/zcloud/gbs/edgeguard/command/UserRegionPermissionAddExe.java +++ b/web-app/src/main/java/com/zcloud/gbs/edgeguard/command/UserRegionPermissionAddExe.java @@ -1,5 +1,11 @@ package com.zcloud.gbs.edgeguard.command; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import com.alibaba.cola.exception.BizException; import com.zcloud.gbs.edgeguard.domain.gateway.UserRegionPermissionGateway; import com.zcloud.gbs.edgeguard.domain.model.RegionE; @@ -9,8 +15,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; - @Component @RequiredArgsConstructor public class UserRegionPermissionAddExe { @@ -18,22 +22,35 @@ public class UserRegionPermissionAddExe { private final UserRegionPermissionCommandSupport support; @Transactional(rollbackFor = Exception.class) - public Long execute(UserRegionPermissionAddCmd cmd) { + public List execute(UserRegionPermissionAddCmd cmd) { String type = cmd.getPermissionType().trim().toUpperCase(); String source = cmd.getAuthorizationSource().trim().toUpperCase(); support.validatePeriod(type, cmd.getEffectiveStartTime(), cmd.getEffectiveEndTime()); support.validateSource(source); - RegionE region = support.validateUserAndRegion(cmd.getUserId(), cmd.getRegionId()); - support.validateNoOverlap(cmd.getUserId(), cmd.getRegionId(), cmd.getEffectiveStartTime(), cmd.getEffectiveEndTime(), null); + Set uniqueUserIds = new HashSet<>(cmd.getUserIds()); + if (uniqueUserIds.size() != cmd.getUserIds().size() || uniqueUserIds.contains(null)) { + throw new BizException("被授权人员用户ID不可重复或为空"); + } Date now = new Date(); - UserRegionPermissionE entity = new UserRegionPermissionE(); - entity.setUserId(cmd.getUserId()); entity.setRegionId(cmd.getRegionId()); entity.setCorpId(region.getCorpId()); - entity.setPermissionType(type); entity.setEffectiveStartTime(cmd.getEffectiveStartTime()); entity.setEffectiveEndTime(cmd.getEffectiveEndTime()); - entity.setAuthorizationSource(source); entity.setSourceRefNo(cmd.getSourceRefNo()); - entity.setPermissionStatus(support.currentStatus(cmd.getEffectiveStartTime(), cmd.getEffectiveEndTime(), now)); - entity.setRemarks(cmd.getRemarks()); - Long id = permissionGateway.add(entity); - if (id == null) throw new BizException("新增人员区域授权失败"); - return id; + List ids = new ArrayList<>(); + for (Long userId : cmd.getUserIds()) { + RegionE region = support.validateUserAndRegion(userId, cmd.getRegionId()); + support.validateNoOverlap(userId, cmd.getRegionId(), cmd.getEffectiveStartTime(), cmd.getEffectiveEndTime(), null); + UserRegionPermissionE entity = new UserRegionPermissionE(); + entity.setUserId(userId); + entity.setRegionId(cmd.getRegionId()); + entity.setCorpId(region.getCorpId()); + entity.setPermissionType(type); + entity.setEffectiveStartTime(cmd.getEffectiveStartTime()); + entity.setEffectiveEndTime(cmd.getEffectiveEndTime()); + entity.setAuthorizationSource(source); + entity.setSourceRefNo(cmd.getSourceRefNo()); + entity.setPermissionStatus(support.currentStatus(cmd.getEffectiveStartTime(), cmd.getEffectiveEndTime(), now)); + entity.setRemarks(cmd.getRemarks()); + Long id = permissionGateway.add(entity); + if (id == null) throw new BizException("新增人员区域授权失败"); + ids.add(id); + } + return ids; } } diff --git a/web-app/src/main/java/com/zcloud/gbs/edgeguard/service/UserRegionPermissionServiceImpl.java b/web-app/src/main/java/com/zcloud/gbs/edgeguard/service/UserRegionPermissionServiceImpl.java index 1a2545a..0c0063d 100644 --- a/web-app/src/main/java/com/zcloud/gbs/edgeguard/service/UserRegionPermissionServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/gbs/edgeguard/service/UserRegionPermissionServiceImpl.java @@ -1,6 +1,7 @@ package com.zcloud.gbs.edgeguard.service; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.gbs.edgeguard.api.UserRegionPermissionServiceI; @@ -23,9 +24,29 @@ public class UserRegionPermissionServiceImpl implements UserRegionPermissionServ private final UserRegionPermissionUpdateExe updateExe; private final UserRegionPermissionRemoveExe removeExe; - @Override public PageResponse page(UserRegionPermissionPageQry qry) { return queryExe.page(qry); } - @Override public SingleResponse getById(Long id) { return queryExe.detail(id); } - @Override public SingleResponse add(UserRegionPermissionAddCmd cmd) { return SingleResponse.of(addExe.execute(cmd)); } - @Override public Response update(Long id, UserRegionPermissionUpdateCmd cmd) { updateExe.execute(id, cmd); return Response.buildSuccess(); } - @Override public Response remove(Long id, String revokeReason) { removeExe.execute(id, revokeReason); return Response.buildSuccess(); } + @Override + public PageResponse page(UserRegionPermissionPageQry qry) { + return queryExe.page(qry); + } + + @Override + public SingleResponse getById(Long id) { + return queryExe.detail(id); + } + + @Override + public MultiResponse add(UserRegionPermissionAddCmd cmd) { + return MultiResponse.of(addExe.execute(cmd)); + } + @Override + public Response update(Long id, UserRegionPermissionUpdateCmd cmd) { + updateExe.execute(id, cmd); + return Response.buildSuccess(); + } + + @Override + public Response remove(Long id, String revokeReason) { + removeExe.execute(id, revokeReason); + return Response.buildSuccess(); + } } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/api/UserRegionPermissionServiceI.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/api/UserRegionPermissionServiceI.java index 3feda3b..815d5e2 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/api/UserRegionPermissionServiceI.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/api/UserRegionPermissionServiceI.java @@ -1,6 +1,7 @@ package com.zcloud.gbs.edgeguard.api; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.gbs.edgeguard.dto.UserRegionPermissionAddCmd; @@ -10,8 +11,12 @@ import com.zcloud.gbs.edgeguard.dto.clientobject.UserRegionPermissionCo; public interface UserRegionPermissionServiceI { PageResponse page(UserRegionPermissionPageQry qry); + SingleResponse getById(Long id); - SingleResponse add(UserRegionPermissionAddCmd cmd); + + MultiResponse add(UserRegionPermissionAddCmd cmd); + Response update(Long id, UserRegionPermissionUpdateCmd cmd); + Response remove(Long id, String revokeReason); } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/FencePointCmd.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/FencePointCmd.java index 272590a..c084527 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/FencePointCmd.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/FencePointCmd.java @@ -1,6 +1,7 @@ package com.zcloud.gbs.edgeguard.dto; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiModel; import lombok.Data; import javax.validation.constraints.DecimalMax; @@ -10,6 +11,7 @@ import java.io.Serializable; import java.math.BigDecimal; @Data +@ApiModel("电子围栏坐标点请求") public class FencePointCmd implements Serializable { @NotNull(message = "围栏点序号不能为空") @ApiModelProperty(value = "点序号,1至4", required = true) diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/OpenAlarmReceiveCmd.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/OpenAlarmReceiveCmd.java index 0c51fdd..db2aa5c 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/OpenAlarmReceiveCmd.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/OpenAlarmReceiveCmd.java @@ -3,6 +3,7 @@ package com.zcloud.gbs.edgeguard.dto; import com.alibaba.cola.dto.Command; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,6 +13,7 @@ import javax.validation.constraints.Size; import java.util.Date; @Data +@ApiModel("开放接口接收报警请求") @EqualsAndHashCode(callSuper = true) public class OpenAlarmReceiveCmd extends Command { @NotBlank(message = "报警编号不能为空") @@ -43,9 +45,12 @@ public class OpenAlarmReceiveCmd extends Command { @ApiModelProperty(value = "海康摄像头indexCode", required = true) private String cameraId; @Size(max = 500, message = "报警地址长度不能超过500") + @ApiModelProperty("报警发生位置描述") private String alarmAddress; @Size(max = 1000, message = "报警图片地址长度不能超过1000") + @ApiModelProperty("报警截图URL;禁止携带永久明文密钥") private String alarmImageUrl; @Size(max = 255, message = "备注长度不能超过255") + @ApiModelProperty("补充说明") private String remarks; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionAddCmd.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionAddCmd.java index c3d46c2..e1c4f64 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionAddCmd.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionAddCmd.java @@ -2,23 +2,50 @@ package com.zcloud.gbs.edgeguard.dto; import com.alibaba.cola.dto.Command; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.Date; +import java.util.List; @Data +@ApiModel("批量新增人员区域授权请求") @EqualsAndHashCode(callSuper = true) public class UserRegionPermissionAddCmd extends Command { - @NotNull private Long userId; - @NotNull private Long regionId; - @NotBlank @ApiModelProperty(value = "TEMPORARY 或 FIXED", required = true) private String permissionType; - @NotNull private Date effectiveStartTime; + @NotEmpty + @Size(max = 500) + @ApiModelProperty(value = "被授权人员用户ID列表,单次最多500人,不可重复", required = true) + private List userIds; + + @NotNull + @ApiModelProperty(value = "被授权区域ID", required = true) + private Long regionId; + + @NotBlank + @ApiModelProperty(value = "权限类型:TEMPORARY临时/FIXED固定", required = true) + private String permissionType; + + @NotNull + @ApiModelProperty(value = "权限生效开始时间,格式yyyy-MM-dd HH:mm:ss", required = true) + private Date effectiveStartTime; + + @ApiModelProperty("权限生效结束时间;TEMPORARY时必填,FIXED时不填") private Date effectiveEndTime; - @NotBlank @ApiModelProperty(value = "MANUAL、IMPORT 或 API", required = true) private String authorizationSource; - @Size(max = 128) private String sourceRefNo; - @Size(max = 255) private String remarks; + + @NotBlank + @ApiModelProperty(value = "授权来源:MANUAL人工/IMPORT导入/API接口", required = true) + private String authorizationSource; + + @Size(max = 128) + @ApiModelProperty("授权来源业务单号或外部流水号") + private String sourceRefNo; + + @Size(max = 255) + @ApiModelProperty("备注") + private String remarks; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionPageQry.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionPageQry.java index d5da631..df95b4b 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionPageQry.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionPageQry.java @@ -1,14 +1,24 @@ package com.zcloud.gbs.edgeguard.dto; import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @Data +@ApiModel("人员区域授权分页查询条件") @EqualsAndHashCode(callSuper = true) public class UserRegionPermissionPageQry extends PageQuery { + @ApiModelProperty("按被授权人员用户ID筛选") private Long userId; + + @ApiModelProperty("按区域ID筛选;与corpId至少传一个") private Long regionId; + + @ApiModelProperty("按企业ID筛选;与regionId至少传一个") private Long corpId; + + @ApiModelProperty("按权限状态筛选:PENDING/ACTIVE/EXPIRED/REVOKED") private String permissionStatus; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionUpdateCmd.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionUpdateCmd.java index 52f6b89..0517dc8 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/UserRegionPermissionUpdateCmd.java @@ -1,6 +1,8 @@ package com.zcloud.gbs.edgeguard.dto; import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,15 +12,41 @@ import javax.validation.constraints.Size; import java.util.Date; @Data +@ApiModel("修改人员区域授权请求") @EqualsAndHashCode(callSuper = true) public class UserRegionPermissionUpdateCmd extends Command { - @NotNull private Long userId; - @NotNull private Long regionId; - @NotBlank private String permissionType; - @NotNull private Date effectiveStartTime; + @NotNull + @ApiModelProperty(value = "被授权人员用户ID", required = true) + private Long userId; + + @NotNull + @ApiModelProperty(value = "被授权区域ID", required = true) + private Long regionId; + + @NotBlank + @ApiModelProperty(value = "权限类型:TEMPORARY临时/FIXED固定", required = true) + private String permissionType; + + @NotNull + @ApiModelProperty(value = "权限生效开始时间,格式yyyy-MM-dd HH:mm:ss", required = true) + private Date effectiveStartTime; + + @ApiModelProperty("权限生效结束时间;TEMPORARY时必填,FIXED时不填") private Date effectiveEndTime; - @NotBlank private String authorizationSource; - @Size(max = 128) private String sourceRefNo; - @NotNull private Integer version; - @Size(max = 255) private String remarks; + + @NotBlank + @ApiModelProperty(value = "授权来源:MANUAL人工/IMPORT导入/API接口", required = true) + private String authorizationSource; + + @Size(max = 128) + @ApiModelProperty("授权来源业务单号或外部流水号") + private String sourceRefNo; + + @NotNull + @ApiModelProperty(value = "乐观锁版本号", required = true) + private Integer version; + + @Size(max = 255) + @ApiModelProperty("备注") + private String remarks; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/FencePointCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/FencePointCo.java index 59093aa..87c2139 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/FencePointCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/FencePointCo.java @@ -1,13 +1,21 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data +@ApiModel("电子围栏坐标点") public class FencePointCo extends ClientObject { + @ApiModelProperty("坐标点顺序,从1开始") private Integer seq; + + @ApiModelProperty("经度") private BigDecimal longitude; + + @ApiModelProperty("纬度") private BigDecimal latitude; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenAlarmReceiptCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenAlarmReceiptCo.java index fd9341b..8ef2129 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenAlarmReceiptCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenAlarmReceiptCo.java @@ -2,15 +2,25 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data +@ApiModel("开放接口报警接收回执") public class OpenAlarmReceiptCo extends ClientObject { + @ApiModelProperty("平台报警记录ID") private Long alarmId; + + @ApiModelProperty("第三方报警唯一编号") private String alarmNo; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("平台接收时间,东八区") private Date receivedTime; + + @ApiModelProperty("是否为幂等重复提交;true表示复用首次保存结果") private Boolean duplicate; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenCameraCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenCameraCo.java index fb8cf7c..bb1e9e3 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenCameraCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenCameraCo.java @@ -1,12 +1,22 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data +@ApiModel("开放接口摄像头信息") public class OpenCameraCo extends ClientObject { + @ApiModelProperty("摄像头来源系统编码,例如HIKVISION") private String cameraSource; + + @ApiModelProperty("第三方摄像头唯一标识") private String cameraId; + + @ApiModelProperty("摄像头名称") private String cameraName; + + @ApiModelProperty("第三方平台所属区域名称快照") private String cameraRegionName; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionCo.java index 5ab7ecf..68a1255 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionCo.java @@ -1,24 +1,52 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data +@ApiModel("开放接口区域及关联资源信息") public class OpenRegionCo extends ClientObject { + @ApiModelProperty("区域ID") private Long regionId; + + @ApiModelProperty("区域稳定唯一编码") private String regionCode; + + @ApiModelProperty("区域名称") private String regionName; + + @ApiModelProperty("所属企业ID") private Long corpId; + + @ApiModelProperty("父区域ID;0表示企业顶级区域") private Long parentId; + + @ApiModelProperty("祖先区域路径") private String treePath; + + @ApiModelProperty("区域树层级") private Integer treeLevel; + + @ApiModelProperty("同级排序号") private Integer sortNo; + + @ApiModelProperty("坐标系:WGS84/GCJ02/BD09") private String coordinateSystem; + + @ApiModelProperty("四个有序电子围栏坐标点") private List fencePoints = new ArrayList<>(); + + @ApiModelProperty("区域状态:ENABLED/DISABLED") private String regionStatus; + + @ApiModelProperty("区域绑定的有效摄像头列表") private List cameras = new ArrayList<>(); + + @ApiModelProperty("区域当前有效的授权人员列表") private List users = new ArrayList<>(); } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionUserCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionUserCo.java index aff6eb2..3e373f2 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionUserCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/OpenRegionUserCo.java @@ -1,16 +1,30 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data +@ApiModel("开放接口区域授权人员信息") public class OpenRegionUserCo extends ClientObject { + @ApiModelProperty("被授权人员用户ID") private Long userId; + + @ApiModelProperty("被授权人员姓名") private String userName; + + @ApiModelProperty("权限类型:TEMPORARY临时/FIXED固定") private String permissionType; + + @ApiModelProperty("权限生效开始时间") private Date effectiveStartTime; + + @ApiModelProperty("权限生效结束时间;固定权限为空") private Date effectiveEndTime; + + @ApiModelProperty("授权来源:MANUAL人工/IMPORT导入/API接口") private String authorizationSource; } diff --git a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/UserRegionPermissionCo.java b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/UserRegionPermissionCo.java index f7fb471..0d37420 100644 --- a/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/UserRegionPermissionCo.java +++ b/web-client/src/main/java/com/zcloud/gbs/edgeguard/dto/clientobject/UserRegionPermissionCo.java @@ -1,28 +1,62 @@ package com.zcloud.gbs.edgeguard.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; @Data +@ApiModel("人员区域授权信息") @EqualsAndHashCode(callSuper = true) public class UserRegionPermissionCo extends ClientObject { + @ApiModelProperty("授权记录ID") private Long id; + + @ApiModelProperty("被授权人员用户ID") private Long userId; + + @ApiModelProperty("被授权人员姓名") private String userName; + + @ApiModelProperty("区域ID") private Long regionId; + + @ApiModelProperty("区域名称") private String regionName; + + @ApiModelProperty("所属企业ID") private Long corpId; + + @ApiModelProperty("权限类型:TEMPORARY临时/FIXED固定") private String permissionType; + + @ApiModelProperty("权限生效开始时间") private Date effectiveStartTime; + + @ApiModelProperty("权限生效结束时间;固定权限为空") private Date effectiveEndTime; + + @ApiModelProperty("授权来源:MANUAL/IMPORT/API") private String authorizationSource; + + @ApiModelProperty("来源业务单号或外部流水号") private String sourceRefNo; + + @ApiModelProperty("权限状态:PENDING/ACTIVE/EXPIRED/REVOKED") private String permissionStatus; + + @ApiModelProperty("撤销时间") private Date revokeTime; + + @ApiModelProperty("撤销原因") private String revokeReason; + + @ApiModelProperty("乐观锁版本号") private Integer version; + + @ApiModelProperty("备注") private String remarks; }