lyhzzz 4 月之前
父節點
當前提交
bd4dffec18

+ 1 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -121,6 +121,7 @@ public enum ResultCode  {
 
     RTK_TIME_ERROR2(50094, "到期日期不能早于生效日期。"),
 
+    RTK_SN_CODE_NOT_AUTH(50095, "板卡暂无授权信息"),
 
     ;
 

+ 17 - 4
src/main/java/com/fdkankan/manage/inner/controller/InnerController.java

@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -89,6 +90,8 @@ public class InnerController extends BaseController {
     IRtkUseLogService rtkUseLogService;
     @Autowired
     IRtkUpdateLogService rtkUpdateLogService;
+    @Autowired
+    IAuthorizeRtkService authorizeRtkService;
 
     /**
      * 相机开启rtk获取账号
@@ -105,12 +108,22 @@ public class InnerController extends BaseController {
         }
         //2.9.0授权期限相机
         if(rtkDevice.getAccountType() ==2){
+            List<AuthorizeRtk> authorizeRtks = authorizeRtkService.getByRtkCode(rtkDevice.getRtkSnCode());
+            if(authorizeRtks == null || authorizeRtks.isEmpty()){
+                throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_AUTH);
+            }
+            Boolean flag = false;
             Date now = new Date();
-            Date validStartTime = rtkDevice.getValidStartTime() == null ?now :rtkDevice.getValidStartTime();
-            Date validEndTime = rtkDevice.getValidEndTime()== null ?now :rtkDevice.getValidEndTime();
-            if(now.getTime() <=validStartTime.getTime() || now.getTime() >=validEndTime.getTime()){
-                throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_EXIT);
+            for (AuthorizeRtk authorizeRtk : authorizeRtks) {
+                if(DateUtil.isIn(now,authorizeRtk.getValidStartTime(),authorizeRtk.getValidEndTime())){
+                    flag = true;
+                    break;
+                }
             }
+            if(!flag){
+                throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_AUTH);
+            }
+
         }
         //rtkDevice.getType() = 0板卡自带账号信息,无需关联
         Integer rtkAccountId = null;

+ 3 - 0
src/main/java/com/fdkankan/manage/service/IAuthorizeRtkService.java

@@ -6,6 +6,7 @@ import com.fdkankan.manage.vo.request.AuthorizeParam;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * <p>
@@ -22,4 +23,6 @@ public interface IAuthorizeRtkService extends IService<AuthorizeRtk> {
     Object pageList(AuthorizeParam param);
 
     void export(HttpServletRequest req, HttpServletResponse resp);
+
+    List<AuthorizeRtk> getByRtkCode(String rtkSnCode);
 }

+ 26 - 5
src/main/java/com/fdkankan/manage/service/impl/AuthorizeRtkServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.manage.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
@@ -27,7 +28,9 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -57,19 +60,30 @@ public class AuthorizeRtkServiceImpl extends ServiceImpl<IAuthorizeRtkMapper, Au
         if(rtkDevice == null || rtkDevice.getUseStatus() ==1){
             throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_EXIT);
         }
-        if(rtkDevice.getValidStartTime() != null || rtkDevice.getValidEndTime() != null){
-            throw new BusinessException(ResultCode.RTK_TIME_ERROR);
-        }
+
         if(authorizeRtk.getValidEndTime().before(authorizeRtk.getValidStartTime())){
             throw new BusinessException(ResultCode.RTK_TIME_ERROR2);
         }
 
         String startTime = DateUtils.getStartTime(authorizeRtk.getValidStartTime());
         String endTime = DateUtils.getEndTime(authorizeRtk.getValidEndTime());
+
+        DateTime startDate = DateUtil.parse(startTime);
+        DateTime endDate = DateUtil.parse(endTime);
+        if(rtkDevice.getValidStartTime() != null && rtkDevice.getValidEndTime() != null){
+            if(DateUtil.isIn(startDate,rtkDevice.getValidStartTime(),rtkDevice.getValidEndTime())){
+                throw new BusinessException(ResultCode.RTK_TIME_ERROR);
+            }
+            if(DateUtil.isIn(endDate,rtkDevice.getValidStartTime(),rtkDevice.getValidEndTime())){
+                throw new BusinessException(ResultCode.RTK_TIME_ERROR);
+            }
+
+        }
+
         rtkDeviceService.updateValidTime(rtkDevice.getId(),startTime,endTime);
 
-        authorizeRtk.setValidStartTime(DateUtil.parse(startTime));
-        authorizeRtk.setValidEndTime(DateUtil.parse(endTime));
+        authorizeRtk.setValidStartTime(startDate);
+        authorizeRtk.setValidEndTime(endDate);
         authorizeRtk.setSysUserId(Long.valueOf(StpUtil.getLoginId().toString()));
         authorizeRtk.setOrderSn(DateUtils.getOrderSn());
         this.save(authorizeRtk);
@@ -134,4 +148,11 @@ public class AuthorizeRtkServiceImpl extends ServiceImpl<IAuthorizeRtkMapper, Au
             }
         }
     }
+
+    @Override
+    public List<AuthorizeRtk> getByRtkCode(String rtkSnCode) {
+        LambdaQueryWrapper<AuthorizeRtk> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AuthorizeRtk::getRtkCode,rtkSnCode);
+        return this.list(wrapper);
+    }
 }