Selaa lähdekoodia

链接分享设备 + 链接分享确认功能实现

hxd 2 kuukautta sitten
vanhempi
commit
3be39db962

+ 9 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/ShareController.java

@@ -5,6 +5,7 @@ import cn.hfln.framework.dto.ApiResult;
 import com.hfln.portal.common.dto.data.share.ShareDto;
 import com.hfln.portal.common.request.share.ShareConfirmParam;
 import com.hfln.portal.common.request.share.ShareParam;
+import com.hfln.portal.common.request.share.UrlShareConfirmParam;
 import com.hfln.portal.common.request.share.updateShareParam;
 import com.hfln.portal.domain.gateway.DeviceGateway;
 import io.swagger.v3.oas.annotations.Operation;
@@ -33,7 +34,7 @@ public class ShareController {
     }
 
     @PostMapping("/Confirm")
-    @Operation(summary = "设备分享确认")
+    @Operation(summary = "手机号分享设备确认")
     public ApiResult<Void> confirm(@RequestBody @Valid ShareConfirmParam param) {
         deviceGateway.shareConfirm(param);
         return ApiResult.success();
@@ -52,6 +53,13 @@ public class ShareController {
         return ApiResult.success(dto);
     }
 
+    @PostMapping("/urlShareConfirm")
+    @Operation(summary = "链接分享设备确认")
+    public ApiResult<Void> urlShareConfirm(@RequestBody @Valid UrlShareConfirmParam param) {
+        deviceGateway.urlShareConfirm(param);
+        return ApiResult.success();
+    }
+
     @PostMapping("/cancelShare")
     @Operation(summary = "取消分享账户")
     public ApiResult<Void> cancelShare(@RequestParam("shareId") Long shareId){

+ 2 - 2
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/share/ShareDto.java

@@ -14,9 +14,9 @@ import java.time.LocalDateTime;
 public class ShareDto extends BaseVO {
 
     /**
-     * 主键ID
+     * 设备分享表主键ID
      */
-    @Schema(description = "主键ID")
+    @Schema(description = "设备分享表主键ID")
     private Long shareId;
 
     /**

+ 32 - 0
portal-service-common/src/main/java/com/hfln/portal/common/request/share/UrlShareConfirmParam.java

@@ -0,0 +1,32 @@
+package com.hfln.portal.common.request.share;
+
+import com.hfln.portal.common.vo.BaseVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "设备分享确认")
+@Data
+public class UrlShareConfirmParam extends BaseVO {
+
+
+    @Schema(description = "设备分享表主键ID")
+    @NotNull(message = "设备分享表主键ID不能为空")
+    private Long shareId;
+
+    @Schema(description = "被分享人userId")
+    @NotNull(message = "被分享人userId不能为空")
+    private Long sharedUserId;
+
+    @Schema(description = "被分享人手机号")
+    @NotNull(message = "被分享人手机号不能为空")
+    private String sharedPhone;
+
+
+    @Schema(description = "确认状态 1-已确认,2-已拒绝")
+    @NotNull(message = "确认状态不能为空")
+    private Integer state;
+}

+ 3 - 0
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/DeviceGateway.java

@@ -8,6 +8,7 @@ import com.hfln.portal.common.request.device.*;
 import com.hfln.portal.common.request.room.RoomParam;
 import com.hfln.portal.common.request.share.ShareConfirmParam;
 import com.hfln.portal.common.request.share.ShareParam;
+import com.hfln.portal.common.request.share.UrlShareConfirmParam;
 import com.hfln.portal.common.request.share.updateShareParam;
 import com.hfln.portal.common.response.device.UsedInfoQueryRes;
 import org.springframework.web.multipart.MultipartFile;
@@ -63,6 +64,8 @@ public interface DeviceGateway {
 
     ShareDto shareByUrl(ShareParam shareParam);
 
+    void urlShareConfirm (UrlShareConfirmParam param);
+
     List<ShareDto> queryDevShare(Long userId);
 
     void shareConfirm(ShareConfirmParam shareConfirmParam);

+ 30 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java

@@ -23,6 +23,7 @@ import com.hfln.portal.common.request.room.RoomParam;
 import com.hfln.portal.common.request.room.SubRegionInfo;
 import com.hfln.portal.common.request.share.ShareConfirmParam;
 import com.hfln.portal.common.request.share.ShareParam;
+import com.hfln.portal.common.request.share.UrlShareConfirmParam;
 import com.hfln.portal.common.request.share.updateShareParam;
 import com.hfln.portal.common.response.device.UsedInfoQueryRes;
 import com.hfln.portal.common.vo.PageRecord;
@@ -713,6 +714,35 @@ public class DeviceGatewayImpl implements DeviceGateway {
         return dto;
     }
 
+
+    @Override
+    public void urlShareConfirm (UrlShareConfirmParam param) {
+        //1.查询分享记录信息
+        DevShare devShare = devShareService.getById(param.getShareId());
+
+        //2.校验分享信息是否存在
+        if (devShare == null) {
+            throw new BizException(ErrorEnum.SHARE_INFO_NOT_EXIST.getErrorCode(), ErrorEnum.SHARE_INFO_NOT_EXIST.getErrorMessage());
+        }
+
+        //3.校验分享是否已经被处理
+        if (devShare.getState() == null || devShare.getState() != 0){
+            throw new BizException(ErrorEnum.SHARE_INFO_ALREADY_DEAL.getErrorCode(), ErrorEnum.SHARE_INFO_ALREADY_DEAL.getErrorMessage());
+        }
+
+        //4.校验被分享人是否注册
+        UserInfo userInfo = userService.queryById(param.getSharedUserId());
+        if (userInfo == null) {
+            throw new BizException(ErrorEnum.USER_NOT_FOUND.getErrorCode(), ErrorEnum.USER_NOT_FOUND.getErrorMessage());
+        }
+
+        //5.保存分享信息(将入参写入该记录)
+        devShare.setSharedUserId(param.getSharedUserId());
+        devShare.setSharedPhone(param.getSharedPhone());
+        devShare.setState(param.getState()); // 1-已确认,2-已拒绝
+        devShareService.updateById(devShare);
+    }
+
     @Override
     public List<ShareDto> queryDevShare(Long userId) {
 

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/po/DevShare.java

@@ -18,7 +18,7 @@ public class DevShare extends BasePO {
      * 主键ID
      */
     @TableId(type = IdType.ASSIGN_ID)
-    private Long ShareId;
+    private Long shareId;
 
     /**
      * 设备表(dev_info)主键