Quellcode durchsuchen

Merge branch 'test'

lyhzzz vor 1 Jahr
Ursprung
Commit
ecd60a6937

Datei-Diff unterdrückt, da er zu groß ist
+ 64 - 0
doc/rtk接口文档.md


+ 123 - 0
src/main/java/com/fdkankan/manage/aop/InnerVisitLogInterceptor.java

@@ -0,0 +1,123 @@
+package com.fdkankan.manage.aop;
+
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
+import cn.hutool.http.ContentType;
+import cn.hutool.http.useragent.UserAgent;
+import cn.hutool.http.useragent.UserAgentUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.manage.config.SaTokenConfigure;
+import com.fdkankan.manage.entity.OperLog;
+import com.fdkankan.manage.entity.SysUser;
+import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.redis.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+
+@Component
+@Aspect
+public class InnerVisitLogInterceptor {
+
+	public static final Logger log = LoggerFactory.getLogger("visitLog");
+
+	// 切入点表达式
+	@Pointcut("execution(public * com.fdkankan.manage.inner.controller..*.*(..))")
+	public void privilege() {
+	}
+
+	@Around("privilege()")
+	public Object around(ProceedingJoinPoint pjp) throws Throwable {
+		// 获取类名
+		String className = pjp.getTarget().getClass().getName();// pjp.getTarget().getClass().getSimpleName();
+		// 获取执行的方法名称
+		String methodName = pjp.getSignature().getName();
+		// 获取参数名称
+		String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
+		// 定义返回参数
+		Object result = null;
+		// 获取方法参数
+		Object[] args = pjp.getArgs();
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+		// 请求的URL
+		String requestURL = request.getRequestURL().toString();
+		String ip = getIpAddr(request);
+
+		StringBuilder paramsBuf = new StringBuilder();
+		// 获取请求参数集合并进行遍历拼接
+		for (int i = 0; i < args.length; i++) {
+			if (paramsBuf.length() > 0) {
+				paramsBuf.append("|");
+			}
+			paramsBuf.append(parameterNamesArgs[i]).append(" = ").append(args[i]);
+		}
+
+		// 打印请求参数参数
+		// 记录开始时间
+		long start = System.currentTimeMillis();
+
+		log.warn("请求| ip:{} , 请求接口:{} ,请求时间:{}, 参数:{} , 请求sign:{} ",
+				ip, requestURL, start,paramsBuf.toString(), request.getHeader("sign"));
+		// 执行目标方法
+		result = pjp.proceed();
+		// 获取执行完的时间 打印返回报文
+		log.warn("返回| 请求接口:{} , 请求时间:{} , 处理时间:{} 毫秒 , 返回结果 :{}",
+				requestURL, start, (System.currentTimeMillis() - start), result);
+		return result;
+	}
+
+	/**
+	 * @Title: getIpAddr
+	 * @Description: 获取ip
+	 * @param request
+	 * @return
+	 * @return String 返回类型
+	 */
+	public String getIpAddr(HttpServletRequest request) {
+		String ipAddress = null;
+		ipAddress = request.getHeader("x-forwarded-for");
+		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+			ipAddress = request.getHeader("Proxy-Client-IP");
+		}
+		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+			ipAddress = request.getHeader("WL-Proxy-Client-IP");
+		}
+		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+			ipAddress = request.getRemoteAddr();
+		}
+
+// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+		if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+			// = 15
+			if (ipAddress.indexOf(",") > 0) {
+				ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+			}
+		}
+		// 或者这样也行,对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+//return ipAddress!=null&&!"".equals(ipAddress)?ipAddress.split(",")[0]:null;
+		return ipAddress;
+	}
+
+}
+

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

@@ -87,6 +87,11 @@ public enum ResultCode  {
     CAMERA_AUTHORIZE_TYPE_ERROR(50068, "请更换相同类型的相机"),
     FEEDBACK_OPTION_DELETE_ERROR(50069, "数据不存在或者预设数据不可删除"),
 
+    RTK_SN_CODE_NOT_EXIT(50070, "板卡SN码不存在,或未入库"),
+    RTK_TOKEN_NOT_EXIT(50071, "缺少签名验证信息"),
+    RTK_TOKEN_ERROR(50072, "签名校验失败"),
+
+
     ;
 
     private Integer code;

+ 46 - 0
src/main/java/com/fdkankan/manage/controller/RtkInfoController.java

@@ -0,0 +1,46 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.entity.AgentAudit;
+import com.fdkankan.manage.entity.RtkInfo;
+import com.fdkankan.manage.service.IAgentAuditService;
+import com.fdkankan.manage.service.IRtkInfoService;
+import com.fdkankan.manage.vo.request.AgentAuditListParam;
+import com.fdkankan.manage.vo.request.RtkInfoParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 经销商申请管理
+ * @author 
+ * @since 2022-09-21
+ */
+@RestController
+@RequestMapping("/service/manage/rtkInfo")
+public class RtkInfoController {
+
+    @Autowired
+    IRtkInfoService rtkInfoService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody RtkInfoParam param){
+        return ResultData.ok(rtkInfoService.pageList(param));
+    }
+
+    @PostMapping("/saveOrEdit")
+    public ResultData saveOrEdit(@RequestBody RtkInfo rtkInfo){
+        rtkInfoService.saveOrEdit(rtkInfo);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/del")
+    public ResultData del(@RequestBody RtkInfo rtkInfo){
+        rtkInfoService.del(rtkInfo);
+        return ResultData.ok();
+    }
+}
+

+ 101 - 0
src/main/java/com/fdkankan/manage/entity/RtkInfo.java

@@ -0,0 +1,101 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2024-04-26
+ */
+@Getter
+@Setter
+@TableName("t_rtk_info")
+public class RtkInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ip地址
+     */
+    @TableField("ip_addr")
+    private String ipAddr;
+
+    /**
+     * 挂载点
+     */
+    @TableField("mount_point")
+    private String mountPoint;
+
+    /**
+     * 端口
+     */
+    @TableField("port")
+    private String port;
+
+    /**
+     * 用户名称
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 密码
+     */
+    @TableField("password")
+    private String password;
+
+    /**
+     * 板卡sn
+     */
+    @TableField("rtk_sn_code")
+    private String rtkSnCode;
+    /**
+     * 运营商
+     */
+    @TableField("operator")
+    private String operator;
+
+
+    /**
+     * 使用状态
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * rkt类型,0本地鉴权,1自带鉴权
+     */
+    @TableField("auth_type")
+    private Integer authType;
+    /**
+     *  0千寻板卡千寻账号,1千寻板卡移动账号,2北云板卡移动账号
+     */
+    @TableField("rtk_ype ")
+    private Integer rtkType ;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"manage", getTables(new String[]{
-                "mq_camera_level","mq_num_level"
+                "t_rtk_info",
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/manage/httpClient/service/LaserService.java

@@ -280,6 +280,24 @@ public class LaserService {
         rabbitMqProducer.sendByWorkQueue(MqQueueUtil.laserMoveQueue,map);
         //laserClient.migrate(param);
     }
+    public void moveWenBao(String num, String snCode, String toSnCode,Long userId,String newDataSource) {
+        LaserSceneMoveParam param = new LaserSceneMoveParam();
+        param.setSceneCode(num);
+        //param.setSnCode(snCode);
+        param.setToSnCode(toSnCode);
+        param.setUserId(userId);
+        param.setDataSource(newDataSource+"_laserData/laserData");
+        if(userId != null){
+            User user = userService.getById(userId);
+            if(user != null){
+                param.setPhone(user.getUserName());
+            }
+        }
+        Map<String, Object> map = BeanUtil.beanToMap(param);
+        rabbitMqProducer.sendByWorkQueue(MqQueueUtil.laserMoveWenBaoQueue,map);
+        rabbitMqProducer.sendByWorkQueue(MqQueueUtil.laserMoveWenBaoQueue2,map);
+        //laserClient.migrate(param);
+    }
 
 
     public void copy(String snCode, String createTime, String newNum, Integer status, String sceneKey, String sceneName, Long userId){

+ 35 - 0
src/main/java/com/fdkankan/manage/inner/controller/InnerController.java

@@ -4,10 +4,13 @@ import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
 import com.fdkankan.manage.controller.BaseController;
+import com.fdkankan.manage.entity.RtkInfo;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.service.ICommonService;
+import com.fdkankan.manage.service.IRtkInfoService;
 import com.fdkankan.manage.service.ISceneProService;
 import com.fdkankan.manage.service.IServiceUpTipService;
+import com.fdkankan.manage.util.RsaUtils;
 import com.fdkankan.manage.vo.request.SceneParam;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,4 +61,36 @@ public class InnerController extends BaseController {
         return ResultData.ok( );
     }
 
+
+    @Autowired
+    IRtkInfoService rtkInfoService;
+
+    /**
+     *
+     */
+    @GetMapping("/info/{rtkSnCode}")
+    public ResultData info(@PathVariable String rtkSnCode){
+        if(StringUtils.isBlank(rtkSnCode)){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+//        String token = getSign();
+//        if(StringUtils.isBlank(token)){
+//            throw new BusinessException(ResultCode.RTK_TOKEN_NOT_EXIT);
+//        }
+//        try {
+//            String deTxt = RsaUtils.decipher(token, RsaUtils.privateKey);
+//            if(!deTxt.equals(rtkSnCode)){
+//                throw new BusinessException(ResultCode.RTK_TOKEN_ERROR);
+//            }
+//        }catch (Exception e){
+//            throw new BusinessException(ResultCode.RTK_TOKEN_ERROR);
+//        }
+
+
+        RtkInfo rtkInfo = rtkInfoService.getByRtkSnCode(rtkSnCode);
+        if(rtkInfo == null){
+            throw new BusinessException(ResultCode.RTK_SN_CODE_NOT_EXIT);
+        }
+        return ResultData.ok(rtkInfo);
+    }
 }

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IRtkInfoMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.RtkInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-04-26
+ */
+@Mapper
+public interface IRtkInfoMapper extends BaseMapper<RtkInfo> {
+
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/mq/common/MqQueueUtil.java

@@ -9,4 +9,6 @@ public class MqQueueUtil {
     public static String sceneRestoreQueue = "scene-rest-store";
     public static String laserUnfreezeScene = "laser-unfreeze-scene";
     public static String laserMoveQueue = "laser-migrate-scene";
+    public static String laserMoveWenBaoQueue = "relics-migrate-scene-queue";
+    public static String laserMoveWenBaoQueue2 = "pano-migrate-scene-queue";
 }

+ 24 - 0
src/main/java/com/fdkankan/manage/service/IRtkInfoService.java

@@ -0,0 +1,24 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.RtkInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.RtkInfoParam;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2024-04-26
+ */
+public interface IRtkInfoService extends IService<RtkInfo> {
+
+    RtkInfo getByRtkSnCode(String rtkSnCode);
+
+    Object pageList(RtkInfoParam param);
+
+    void saveOrEdit(RtkInfo rtkInfo);
+
+    void del(RtkInfo rtkInfo);
+}

+ 43 - 0
src/main/java/com/fdkankan/manage/service/impl/RtkInfoServiceImpl.java

@@ -0,0 +1,43 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.entity.RtkInfo;
+import com.fdkankan.manage.mapper.IRtkInfoMapper;
+import com.fdkankan.manage.service.IRtkInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.request.RtkInfoParam;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2024-04-26
+ */
+@Service
+public class RtkInfoServiceImpl extends ServiceImpl<IRtkInfoMapper, RtkInfo> implements IRtkInfoService {
+
+    @Override
+    public RtkInfo getByRtkSnCode(String rtkSnCode) {
+        LambdaQueryWrapper<RtkInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(RtkInfo::getRtkSnCode,rtkSnCode);
+        return this.getOne(wrapper);
+    }
+
+    @Override
+    public Object pageList(RtkInfoParam param) {
+        return null;
+    }
+
+    @Override
+    public void saveOrEdit(RtkInfo rtkInfo) {
+
+    }
+
+    @Override
+    public void del(RtkInfo rtkInfo) {
+
+    }
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -404,6 +404,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             this.lockOrUnLockBySpace(cameraDetail.getCameraId());
         }
         sceneMoveLogService.saveLog(scenePro,scenePlus,camera.getSnCode(),oldCamera.getSnCode(),dataSource,dataSource, null);
+        laserService.moveWenBao(param.getNum(),oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId(),dataSource);
+
     }
 
 

+ 1 - 1
src/main/java/com/fdkankan/manage/util/RsaUtils.java

@@ -37,7 +37,7 @@ public class RsaUtils {
 		System.out.println("公钥:"+publicKey);
 		System.out.println("私钥:"+privateKey);
 
-		String ciphertext = rsa.encipher("4DKKPRO_022677E21", publicKey);
+		String ciphertext = rsa.encipher("MS3110218L41-448896", publicKey);
 		System.out.println(String.format("密文:"+ciphertext));
 		String deTxt = rsa.decipher(ciphertext, privateKey);
 		System.out.println(deTxt);

+ 11 - 0
src/main/java/com/fdkankan/manage/vo/request/RtkInfoParam.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.vo.request;
+
+import lombok.Data;
+
+@Data
+public class RtkInfoParam extends RequestBase{
+    private String rtkSnCode;
+    private String userName;
+    private String createTime;
+    private String operator;
+}

+ 5 - 0
src/main/resources/mapper/manage/RtkInfoMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.manage.mapper.IRtkInfoMapper">
+
+</mapper>