浏览代码

获取场景编辑权限接口

dengsixing 3 年之前
父节点
当前提交
47ec9a3b08

+ 14 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.controller;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneEditService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.*;
@@ -28,6 +29,8 @@ public class SceneEditController extends BaseController {
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     private ISceneUploadService sceneUploadService;
+    @Autowired
+    private ISceneEditService sceneEditService;
 
     /**
      * <p>
@@ -830,6 +833,17 @@ public class SceneEditController extends BaseController {
         return sceneEditInfoService.sceneSync(num, type, floorPlanJson, ajkJson, cameraJson, files);
     }
 
+    /**
+     * 获取场景权限
+     * @param param
+     * @return
+     * @throws Exception
+     */
+    @PostMapping(value = "/getAuth")
+    public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
+        return sceneEditService.getAuth(param);
+    }
+
 
 
 

+ 18 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.SceneAuthVO;
+
+/**
+ * <p>
+ * 场景编辑
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/11
+ **/
+public interface ISceneEditService {
+
+    SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception;
+
+}

+ 95 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java

@@ -0,0 +1,95 @@
+package com.fdkankan.scene.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.PayStatus;
+import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.DateExtUtil;
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
+import com.fdkankan.platform.api.feign.PlatformUserClient;
+import com.fdkankan.platform.api.vo.Camera;
+import com.fdkankan.platform.api.vo.UserIncrement;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.service.ISceneEditService;
+import com.fdkankan.scene.service.ISceneProService;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.SceneAuthVO;
+import java.util.Date;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/11
+ **/
+@Service
+public class SceneEditServiceImpl implements ISceneEditService {
+
+    @Autowired
+    ISceneProService sceneProService;
+    @Autowired
+    PlatformGoodsClient platformGoodsClient;
+    @Autowired
+    PlatformUserClient platformUserClient;
+
+    @Override
+    public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
+
+        ScenePro scenePro = sceneProService.getOne(
+            new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getNum, param.getNum())
+                .eq(ScenePro::getPayStatus,PayStatus.PAY.code())
+                .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
+        if(scenePro == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+        //判断该场景是否属于增值权益
+        boolean isVip = false;
+        //获取该相机是否有权益
+        boolean isExpired  = false;
+        ResultData<Camera> cameraResultData = platformGoodsClient.getCameraById(scenePro.getCameraId());
+        if(!cameraResultData.getSuccess()){
+            throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
+        }
+        Camera camera = cameraResultData.getData();
+        if(camera != null){
+            ResultData<UserIncrement> incrementResultData = platformUserClient
+                .getUserIncrementByCameraId(camera.getId());
+            if(!incrementResultData.getSuccess()){
+                throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
+            }
+            UserIncrement userIncrement = incrementResultData.getData();
+            if(userIncrement != null){
+                if( userIncrement.getIsExpired().intValue() == 0){
+                    isVip = true;
+                }
+                if(userIncrement.getIsExpired().intValue() == 1){
+                    isExpired  = true;
+                }
+            }else{
+                Date date = DateUtil.parse("2021-09-09 00:00:00", DateExtUtil.dateStyle);
+
+                //非07批次的放开
+                String pc = camera.getSnCode().substring(0,2);
+                if(!pc.equals("07") ){
+                    if(camera.getCreateTime()!=null && date.after(camera.getCreateTime())){
+                        isVip = true;
+                        isExpired  = false;
+                    }
+                }
+            }
+        }
+
+
+        return SceneAuthVO.builder().isExpired(isExpired).isVip(isVip).build();
+    }
+}

+ 23 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/BaseSceneParamVO.java

@@ -0,0 +1,23 @@
+package com.fdkankan.scene.vo;
+
+import javax.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/2/22
+ **/
+@Data
+public class BaseSceneParamVO {
+
+    /**
+     * 场景码
+     */
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+}

+ 52 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneAuthVO.java

@@ -0,0 +1,52 @@
+package com.fdkankan.scene.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/11
+ **/
+//@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class SceneAuthVO {
+
+    /**
+     * 是否过期
+     */
+    private boolean isExpired;
+
+    /**
+     * 是否会员
+     */
+    private boolean isVip;
+
+    public void setIsExpired(boolean isExpired){
+        this.isExpired = isExpired;
+    }
+    public boolean getIsExpired(){
+        return isExpired;
+    }
+
+    public void setIsVip(boolean isVip){
+        this.isVip = isVip;
+    }
+    public boolean getIsVip(){
+        return isVip;
+    }
+
+
+}