gao.qiang преди 2 години
родител
ревизия
828b7e96a5
променени са 63 файла, в които са добавени 1528 реда и са изтрити 1849 реда
  1. 3 1
      business-service/src/main/java/com/ozs/service/entity/BaseAccountManagement.java
  2. 0 1
      business-service/src/main/java/com/ozs/service/entity/BaseDynamicManagement.java
  3. 0 2
      business-service/src/main/java/com/ozs/service/entity/BaseLineManagement.java
  4. 22 0
      business-service/src/main/java/com/ozs/service/entity/CameraTree.java
  5. 115 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java
  6. 76 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmVice.java
  7. 54 0
      business-service/src/main/java/com/ozs/service/entity/SvcAddress.java
  8. 65 0
      business-service/src/main/java/com/ozs/service/entity/vo/BaseAccountManagementDto.java
  9. 32 0
      business-service/src/main/java/com/ozs/service/entity/vo/HistoricalAlarmVo.java
  10. 75 0
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java
  11. 2 0
      business-service/src/main/java/com/ozs/service/mapper/BaseAccountManagementMapper.java
  12. 7 0
      business-service/src/main/java/com/ozs/service/mapper/BaseDynamicManagementMapper.java
  13. 2 0
      business-service/src/main/java/com/ozs/service/mapper/BaseLineManagementMapper.java
  14. 18 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java
  15. 18 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmViceMapper.java
  16. 18 0
      business-service/src/main/java/com/ozs/service/mapper/SvcAddressMapper.java
  17. 16 0
      business-service/src/main/java/com/ozs/service/service/BaseAccountManagementService.java
  18. 2 0
      business-service/src/main/java/com/ozs/service/service/BaseDynamicManagementService.java
  19. 16 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java
  20. 16 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmViceService.java
  21. 16 0
      business-service/src/main/java/com/ozs/service/service/SvcAddressService.java
  22. 57 0
      business-service/src/main/java/com/ozs/service/service/impl/BaseAccountManagementServiceImpl.java
  23. 79 0
      business-service/src/main/java/com/ozs/service/service/impl/BaseDynamicManagementServiceImpl.java
  24. 20 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java
  25. 20 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmViceServiceImpl.java
  26. 20 0
      business-service/src/main/java/com/ozs/service/service/impl/SvcAddressServiceImpl.java
  27. 0 0
      business-service/src/main/resources/mapper/service/BaseAccountManagementMapper.xml
  28. 27 0
      business-service/src/main/resources/mapper/service/BaseDynamicManagementMapper.xml
  29. 0 0
      business-service/src/main/resources/mapper/service/BaseLineManagementMapper.xml
  30. 1 1
      business-service/src/main/resources/mapper.service/BaseDynamicManagementMapper.xml
  31. 5 0
      business-service/src/main/resources/mapper/service/MsgAlarmViceMapper.xml
  32. 5 0
      business-service/src/main/resources/mapper/service/SvcAddressMapper.xml
  33. 1 1
      business-service/src/test/java/com/ozs/service/test/CodeGet.java
  34. 75 3
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseAccountManagementController.java
  35. 1 1
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseLineManagementController.java
  36. 134 0
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  37. 32 0
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/SvcAddressController.java
  38. 6 4
      hazard-admin/src/main/java/com/ozs/web/controller/upload/UploadController.java
  39. 9 1
      hazard-admin/src/main/resources/application.yml
  40. BIN
      hazard-admin/src/main/resources/template/provisionalPlan.xlsx
  41. 6 0
      hazard-sdk/pom.xml
  42. 127 0
      hazard-sdk/src/main/java/com/ozs/config/DruidConfig.java
  43. 27 0
      hazard-sdk/src/main/java/com/ozs/config/datasource/DynamicDataSource.java
  44. 45 0
      hazard-sdk/src/main/java/com/ozs/config/datasource/DynamicDataSourceContextHolder.java
  45. 77 0
      hazard-sdk/src/main/java/com/ozs/config/properties/DruidProperties.java
  46. 98 44
      hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java
  47. 6 4
      hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java
  48. 2 2
      hazard-sdk/src/main/java/com/ozs/vo/ReqDeviceVo.java
  49. 6 4
      hazard-sdk/src/main/java/com/ozs/vo/ReqMsgAlarmVo.java
  50. 2 2
      hazard-sdk/src/main/java/com/ozs/vo/RespMsgAlarmVo.java
  51. 53 3
      hazard-sdk/src/main/resources/application-druid.yml
  52. 1 1
      hazard-sdk/src/main/resources/application.yml
  53. 13 6
      hazard-sdk/src/main/resources/mybatis/mybatis-config.xml
  54. 0 27
      hazard-stateSecrets/pom.xml
  55. 0 25
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM2Result.java
  56. 0 359
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM3.java
  57. 0 123
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM3Digest.java
  58. 0 344
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4.java
  59. 0 17
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4Context.java
  60. 0 167
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4Utils.java
  61. 0 43
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/Sm2KeyPair.java
  62. 0 662
      hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/Util.java
  63. 0 1
      pom.xml

+ 3 - 1
business-service/src/main/java/com/ozs/service/entity/BaseAccountManagement.java

@@ -1,12 +1,14 @@
 package com.ozs.service.entity;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.common.core.domain.entity.SysMenu;
 import io.swagger.annotations.ApiModel;
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 0 - 1
business-service/src/main/java/com/ozs/service/entity/BaseDynamicManagement.java

@@ -2,7 +2,6 @@ package com.ozs.service.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
 
 import com.ozs.common.core.domain.BaseEntity;

+ 0 - 2
business-service/src/main/java/com/ozs/service/entity/BaseLineManagement.java

@@ -3,7 +3,6 @@ package com.ozs.service.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
 
 import com.ozs.common.annotation.Excel;
@@ -12,7 +11,6 @@ import io.swagger.annotations.ApiModel;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 /**

+ 22 - 0
business-service/src/main/java/com/ozs/service/entity/CameraTree.java

@@ -0,0 +1,22 @@
+package com.ozs.service.entity;
+
+import lombok.Builder;
+import lombok.Data;
+import sun.reflect.generics.tree.Tree;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author Administrator
+ */
+@Data
+@Builder
+public class CameraTree implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    String code;
+    String name;
+    boolean flay;
+    List<CameraTree> children;
+}

+ 115 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java

@@ -0,0 +1,115 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.models.auth.In;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * 预报警信息管理表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("预报警信息管理表")
+public class MsgAlarm extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * UUID(报警唯一识别)
+     */
+    private Long alarmId;
+
+    /**
+     * 相机编码
+     */
+    private Integer alarmCamera;
+
+    /**
+     * 报警时间
+     */
+    private Long alarmTime;
+
+    /**
+     * 报警里程位置
+     */
+    private String alarmMile;
+
+    /**
+     * 报警内容
+     */
+    private String content;
+
+    /**
+     * 报警置信度(百分比)
+     */
+    private Integer alarmConfidence;
+
+    /**
+     * 报警行别
+     */
+    private Integer lineDir;
+
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    private Integer alarmType;
+
+    /**
+     * 报警病害属性(可以给出泥石流的框定范围)
+     */
+    private String alarmArrr;
+
+    private String files;
+
+    /**
+     * 报警图片地址
+     */
+    private String imageUrl;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isLock;
+
+    /**
+     * 解除人
+     */
+    private String releasedBy;
+
+    /**
+     * 解除时间
+     */
+    private Long releasedTime;
+    /**
+     * 报警线路
+     */
+    private String alarmLine;
+    /**
+     * 剩余电量(必填)
+     */
+    private Integer electricity;
+
+}

+ 76 - 0
business-service/src/main/java/com/ozs/service/entity/MsgAlarmVice.java

@@ -0,0 +1,76 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * 预报警信息管理记录表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("预报警信息管理记录表")
+public class MsgAlarmVice extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 报警唯一识别
+     */
+    private Long alarmId;
+
+    /**
+     * 报警时间
+     */
+    private Long alarmTime;
+
+    /**
+     * 报警内容
+     */
+    private String content;
+
+    /**
+     * 报警置信度(百分比)
+     */
+    private Integer alarmConfidence;
+
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    private Integer alarmType;
+
+    /**
+     * 报警病害属性(可以给出泥石流的框定范围)
+     */
+    private String alarmArrr;
+
+    private String files;
+
+    /**
+     * 报警图片地址
+     */
+    private String imageUrl;
+}

+ 54 - 0
business-service/src/main/java/com/ozs/service/entity/SvcAddress.java

@@ -0,0 +1,54 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("登录字段表")
+public class SvcAddress implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 授权类型,客户端模式(client_credentials)
+     */
+    private String grantType;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 客户端编号
+     */
+    private String clientId;
+
+    /**
+     * 客户端密钥
+     */
+    private String clientSecret;
+
+
+}

+ 65 - 0
business-service/src/main/java/com/ozs/service/entity/vo/BaseAccountManagementDto.java

@@ -0,0 +1,65 @@
+package com.ozs.service.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 台账管理表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Data
+public class BaseAccountManagementDto extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+     
+    /**
+     * 相机编码
+     */
+    @Excel(name = "相机编码")
+    private String cameraCode;
+    /**
+     * 所属工务段
+     */
+    @Excel(name = "所属工务段")
+    private String publicWorksSection;
+
+    /**
+     * 行别
+     */
+    @Excel(name = "行别")
+    private String lineType;
+
+    /**
+     * 监控相机安装里程位置
+     */
+    @Excel(name = "监控相机安装里程位置")
+    private Integer installMile;
+    /**
+     * 线路名称
+     */
+    @Excel(name = "线路名称")
+    private String lineName;
+    /**
+     * 线路编码(四位数字)
+     */
+    @Excel(name = "线路编码")
+    private Long lineCode;
+    
+}

+ 32 - 0
business-service/src/main/java/com/ozs/service/entity/vo/HistoricalAlarmVo.java

@@ -0,0 +1,32 @@
+package com.ozs.service.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Administrator
+ */
+@Data
+public class HistoricalAlarmVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 报警时间
+     */
+    private Long alarmTime;
+
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    private Integer alarmType;
+
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isLock;
+}

+ 75 - 0
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java

@@ -0,0 +1,75 @@
+package com.ozs.service.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.core.domain.BaseEntity;
+import com.ozs.common.vo.PageVo;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 预报警信息管理表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Data
+public class MsgAlarmVo extends PageVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 报警线路
+     */
+    private String alarmLine;
+
+    /**
+     * 报警行别
+     */
+    private Integer lineDir;
+    
+    /**
+     * 报警病害类型(目前只有1泥石流,后续可扩展使用)
+     */
+    private Integer alarmType;
+
+    /**
+     * 报警里程位置
+     */
+    private String alarmMile;
+
+    /**
+     * 起始报警病害属性(可以给出泥石流的框定范围)
+     */
+    private String beginAlarmArrr;
+    
+    /**
+     * 结束报警病害属性(可以给出泥石流的框定范围)
+     */
+    private String endAlarmArrr;
+
+    /**
+     * 开始报警时间
+     */
+    private String beginAlarmTime;
+
+    /**
+     * 开始报警时间
+     */
+    private String endAlarmTime;
+
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isLock;
+    
+}

+ 2 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseAccountManagementMapper.java

@@ -2,6 +2,7 @@ package com.ozs.service.mapper;
 
 import com.ozs.service.entity.BaseAccountManagement;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ozs
  * @since 2023-02-17
  */
+@Mapper
 public interface BaseAccountManagementMapper extends BaseMapper<BaseAccountManagement> {
 
 }

+ 7 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseDynamicManagementMapper.java

@@ -2,6 +2,11 @@ package com.ozs.service.mapper;
 
 import com.ozs.service.entity.BaseDynamicManagement;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.vo.BaseAccountManagementDto;
+import io.lettuce.core.dynamic.annotation.Param;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ozs
  * @since 2023-02-22
  */
+@Mapper
 public interface BaseDynamicManagementMapper extends BaseMapper<BaseDynamicManagement> {
 
+    List<BaseAccountManagementDto> list(@Param("name") String name);
 }

+ 2 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseLineManagementMapper.java

@@ -2,6 +2,7 @@ package com.ozs.service.mapper;
 
 import com.ozs.service.entity.BaseLineManagement;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ozs
  * @since 2023-02-17
  */
+@Mapper
 public interface BaseLineManagementMapper extends BaseMapper<BaseLineManagement> {
 
 }

+ 18 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.service.mapper;
+
+import com.ozs.service.entity.MsgAlarm;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 预报警信息管理表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Mapper
+public interface MsgAlarmMapper extends BaseMapper<MsgAlarm> {
+
+}

+ 18 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmViceMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.service.mapper;
+
+import com.ozs.service.entity.MsgAlarmVice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 预报警信息管理记录表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Mapper
+public interface MsgAlarmViceMapper extends BaseMapper<MsgAlarmVice> {
+
+}

+ 18 - 0
business-service/src/main/java/com/ozs/service/mapper/SvcAddressMapper.java

@@ -0,0 +1,18 @@
+package com.ozs.service.mapper;
+
+import com.ozs.service.entity.SvcAddress;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-28
+ */
+@Mapper
+public interface SvcAddressMapper extends BaseMapper<SvcAddress> {
+
+}

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/BaseAccountManagementService.java

@@ -1,5 +1,7 @@
 package com.ozs.service.service;
 
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.entity.SysMenu;
 import com.ozs.service.entity.BaseAccountManagement;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -21,4 +23,18 @@ public interface BaseAccountManagementService extends IService<BaseAccountManage
      * @return
      */
     String importBaseAccountManagement(List<BaseAccountManagement> accountManageList, boolean updateSupport);
+
+    /**
+     * 获取视频服务二级菜单
+     * @param lineName
+     * @return 
+     */
+    AjaxResult secondaryMenu(String lineName);
+
+    /**
+     * 获取视频服务三级菜单
+     * @param secondaryMenuName
+     * @return
+     */
+    AjaxResult threeLevelMenu(String secondaryMenuName,String lineName);
 }

+ 2 - 0
business-service/src/main/java/com/ozs/service/service/BaseDynamicManagementService.java

@@ -2,6 +2,7 @@ package com.ozs.service.service;
 
 import com.ozs.service.entity.BaseDynamicManagement;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.CameraTree;
 
 /**
  * <p>
@@ -13,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface BaseDynamicManagementService extends IService<BaseDynamicManagement> {
 
+    CameraTree cameraTree(String name);
 }

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java

@@ -0,0 +1,16 @@
+package com.ozs.service.service;
+
+import com.ozs.service.entity.MsgAlarm;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 预报警信息管理表 服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+public interface MsgAlarmService extends IService<MsgAlarm> {
+
+}

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/MsgAlarmViceService.java

@@ -0,0 +1,16 @@
+package com.ozs.service.service;
+
+import com.ozs.service.entity.MsgAlarmVice;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 预报警信息管理记录表 服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+public interface MsgAlarmViceService extends IService<MsgAlarmVice> {
+
+}

+ 16 - 0
business-service/src/main/java/com/ozs/service/service/SvcAddressService.java

@@ -0,0 +1,16 @@
+package com.ozs.service.service;
+
+import com.ozs.service.entity.SvcAddress;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-28
+ */
+public interface SvcAddressService extends IService<SvcAddress> {
+
+}

+ 57 - 0
business-service/src/main/java/com/ozs/service/service/impl/BaseAccountManagementServiceImpl.java

@@ -1,17 +1,21 @@
 package com.ozs.service.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.bean.BeanValidators;
 import com.ozs.service.entity.BaseAccountManagement;
 import com.ozs.service.mapper.BaseAccountManagementMapper;
+import com.ozs.service.mapper.BaseLineManagementMapper;
 import com.ozs.service.service.BaseAccountManagementService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
+
 import javax.annotation.Resource;
 import javax.validation.Validator;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,6 +32,8 @@ public class BaseAccountManagementServiceImpl extends ServiceImpl<BaseAccountMan
     protected Validator validator;
     @Resource
     BaseAccountManagementMapper baseAccountManagementMapper;
+    @Resource
+    BaseLineManagementMapper baseLineManagementMapper;
 
     /**
      * 台账管理导入
@@ -82,4 +88,55 @@ public class BaseAccountManagementServiceImpl extends ServiceImpl<BaseAccountMan
         }
         return successMsg.toString();
     }
+
+    @Override
+    public AjaxResult secondaryMenu(String lineName) {
+        LambdaQueryWrapper<BaseAccountManagement> lw = new LambdaQueryWrapper<BaseAccountManagement>();
+        if (!ObjectUtils.isEmpty(lineName)) {
+            lw.eq(BaseAccountManagement::getLine, lineName);
+        }
+        List<String> secondaryMenuName = new ArrayList<>();
+        List<BaseAccountManagement> baseAccountManagementList = baseAccountManagementMapper.selectList(lw);
+        if (baseAccountManagementList.size() > 0) {
+            StringBuilder stringBuilder = new StringBuilder();
+            for (BaseAccountManagement baseAccountManagement : baseAccountManagementList) {
+                stringBuilder.append(baseAccountManagement.getInstallMile());
+                stringBuilder.append("-");
+                stringBuilder.append(baseAccountManagement.getLineType());
+                secondaryMenuName.add(stringBuilder.toString());
+            }
+        }else {
+            AjaxResult.error("该线路没有摄像头");
+        }
+        return AjaxResult.success(secondaryMenuName);
+    }
+
+    @Override
+    public AjaxResult threeLevelMenu(String secondaryMenuName,String lineName) {
+        String[] split = secondaryMenuName.split("-");
+        LambdaQueryWrapper<BaseAccountManagement> lw = new LambdaQueryWrapper<BaseAccountManagement>();
+        if (!ObjectUtils.isEmpty(split[0])) {
+            lw.eq(BaseAccountManagement::getInstallMile, split[0]);
+        }
+        if (!ObjectUtils.isEmpty(split[1])) {
+            lw.eq(BaseAccountManagement::getLineType, split[0]);
+        }
+        if (!ObjectUtils.isEmpty(lineName)) {
+            lw.eq(BaseAccountManagement::getLine, lineName);
+        }
+        List<String> threeLevelMenuName = new ArrayList<>();
+        List<BaseAccountManagement> baseAccountManagementList = baseAccountManagementMapper.selectList(lw);
+        if (baseAccountManagementList.size() > 0) {
+            StringBuilder stringBuilder = new StringBuilder();
+            for (BaseAccountManagement baseAccountManagement : baseAccountManagementList) {
+                stringBuilder.append("摄像机");
+                stringBuilder.append(baseAccountManagement.getCameraCode());
+                threeLevelMenuName.add(stringBuilder.toString());
+            }
+        }
+        else {
+            AjaxResult.error("该线路没有摄像头");
+        }
+        return AjaxResult.success(threeLevelMenuName);
+    }
 }

+ 79 - 0
business-service/src/main/java/com/ozs/service/service/impl/BaseDynamicManagementServiceImpl.java

@@ -1,10 +1,24 @@
 package com.ozs.service.service.impl;
 
 import com.ozs.service.entity.BaseDynamicManagement;
+import com.ozs.service.entity.CameraTree;
+import com.ozs.service.entity.vo.BaseAccountManagementDto;
 import com.ozs.service.mapper.BaseDynamicManagementMapper;
 import com.ozs.service.service.BaseDynamicManagementService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jdk.nashorn.internal.ir.annotations.Reference;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -16,5 +30,70 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BaseDynamicManagementServiceImpl extends ServiceImpl<BaseDynamicManagementMapper, BaseDynamicManagement> implements BaseDynamicManagementService {
+    @Autowired
+    BaseDynamicManagementMapper baseDynamicManagementMapper;
+
+    @Override
+    public CameraTree cameraTree(String name) {
+        CameraTree cameraTree = CameraTree.builder()
+                .name("相机树")
+                .code("0")
+                .flay(false)
+                .children(new ArrayList<>())
+                .build();
+        Map<String, CameraTree> map = new HashMap<>();
+        Map<String, CameraTree> map1 = new HashMap<>();
+
+        List<BaseAccountManagementDto> list = baseDynamicManagementMapper.list(name);
+
+        if (list.size() > 0) {
+            for (BaseAccountManagementDto o : list) {
+                // 线路
+                CameraTree build = CameraTree.builder()
+                        .code(o.getLineCode().toString())
+                        .name(o.getLineName())
+                        .flay(true)
+                        .children(new ArrayList<>())
+                        .build();
+
+                if (!cameraTree.getChildren().stream()
+                        .map(CameraTree::getCode)
+                        .collect(Collectors.toList())
+                        .contains(build.getCode())) {
+                    cameraTree.getChildren().add(build);
+                    map.put(o.getLineCode().toString(), build);
+                }
+
+                // 里程
+                CameraTree build1 = CameraTree.builder()
+                        .code(o.getInstallMile() + "-" + (o.getLineType().equals("1") ? "上行" : "下行"))
+                        .name(o.getInstallMile() + "-" + (o.getLineType().equals("1") ? "上行" : "下行"))
+                        .flay(true)
+                        .children(new ArrayList<>())
+                        .build();
+
+
+                if (!ObjectUtils.isEmpty(map.get(o.getLineCode().toString()))) {
+                    map.get(o.getLineCode().toString()).getChildren().add(build1);
+                    map1.put(o.getInstallMile() + "-" + (o.getLineType().equals("1") ? "上行" : "下行"), build1);
+                }
+
+                // 摄像头
+                CameraTree build2 = CameraTree.builder()
+                        .code(o.getId())
+                        .name(o.getCameraCode())
+                        .flay(true)
+                        .children(new ArrayList<>())
+                        .build();
+
+
+                if (!ObjectUtils.isEmpty(map1.get(o.getInstallMile() + "-" + (o.getLineType().equals("1") ? "上行" : "下行")))) {
+                    map1.get(o.getInstallMile() + "-" + (o.getLineType().equals("1") ? "上行" : "下行")).getChildren().add(build2);
+                }
+            }
+        }
+
 
+        return cameraTree;
+    }
 }

+ 20 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ozs.service.service.impl;
+
+import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.mapper.MsgAlarmMapper;
+import com.ozs.service.service.MsgAlarmService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 预报警信息管理表 服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@Service
+public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> implements MsgAlarmService {
+
+}

+ 20 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmViceServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ozs.service.service.impl;
+
+import com.ozs.service.entity.MsgAlarmVice;
+import com.ozs.service.mapper.MsgAlarmViceMapper;
+import com.ozs.service.service.MsgAlarmViceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 预报警信息管理记录表 服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-23
+ */
+@Service
+public class MsgAlarmViceServiceImpl extends ServiceImpl<MsgAlarmViceMapper, MsgAlarmVice> implements MsgAlarmViceService {
+
+}

+ 20 - 0
business-service/src/main/java/com/ozs/service/service/impl/SvcAddressServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ozs.service.service.impl;
+
+import com.ozs.service.entity.SvcAddress;
+import com.ozs.service.mapper.SvcAddressMapper;
+import com.ozs.service.service.SvcAddressService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-28
+ */
+@Service
+public class SvcAddressServiceImpl extends ServiceImpl<SvcAddressMapper, SvcAddress> implements SvcAddressService {
+
+}

business-service/src/main/resources/mapper.service/BaseAccountManagementMapper.xml → business-service/src/main/resources/mapper/service/BaseAccountManagementMapper.xml


+ 27 - 0
business-service/src/main/resources/mapper/service/BaseDynamicManagementMapper.xml

@@ -0,0 +1,27 @@
+<?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.ozs.service.mapper.BaseDynamicManagementMapper">
+
+    <select id="list" resultType="com.ozs.service.entity.vo.BaseAccountManagementDto">
+		SELECT
+			l.line_code AS lineCode, 
+			l.line_name AS lineName, 
+			a.camera_code AS cameraCode, 
+			a.line_type AS lineType, 
+			a.install_mile AS installMile, 
+			a.account_management_id AS id, 
+			a.line
+		FROM
+			base_account_management AS a left join  
+			base_line_management AS l  on  a.line=l.line_code
+		<where>
+
+			<if test="name != null and name !=''">
+				concat(l.line_name,a.camera_code)
+				like concat("%",#{name},"%")
+			</if>
+			
+		</where>
+			
+    </select>
+</mapper>

business-service/src/main/resources/mapper.service/BaseLineManagementMapper.xml → business-service/src/main/resources/mapper/service/BaseLineManagementMapper.xml


+ 1 - 1
business-service/src/main/resources/mapper.service/BaseDynamicManagementMapper.xml

@@ -1,5 +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.ozs.service.mapper.BaseDynamicManagementMapper">
+<mapper namespace="com.ozs.service.mapper.MsgAlarmMapper">
 
 </mapper>

+ 5 - 0
business-service/src/main/resources/mapper/service/MsgAlarmViceMapper.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.ozs.service.mapper.MsgAlarmViceMapper">
+
+</mapper>

+ 5 - 0
business-service/src/main/resources/mapper/service/SvcAddressMapper.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.ozs.service.mapper.SvcAddressMapper">
+
+</mapper>

+ 1 - 1
business-service/src/test/java/com/ozs/service/test/CodeGet.java

@@ -48,7 +48,7 @@ public class CodeGet {
         // 5、策略配置
         StrategyConfig strategy = new StrategyConfig();
 
-        strategy.setInclude("base_dynamic_management");
+        strategy.setInclude("svc_address");
 
         strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
 

+ 75 - 3
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseAccountManagementController.java

@@ -6,16 +6,21 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.entity.SysMenu;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
+import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.service.entity.BaseAccountManagement;
 import com.ozs.service.entity.BaseDynamicManagement;
+import com.ozs.service.entity.BaseLineManagement;
 import com.ozs.service.entity.vo.BaseAccountManagementVo;
 import com.ozs.service.service.BaseAccountManagementService;
 import com.ozs.service.service.BaseDynamicManagementService;
+import com.ozs.service.service.BaseLineManagementService;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.http.MediaType;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -25,13 +30,16 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -49,6 +57,8 @@ public class BaseAccountManagementController extends BaseController {
     BaseAccountManagementService baseAccountManagementService;
     @Resource
     BaseDynamicManagementService baseDynamicManagementService;
+    @Resource
+    BaseLineManagementService baseLineManagementService;
 
     /**
      * 相机台账管理分页
@@ -58,7 +68,7 @@ public class BaseAccountManagementController extends BaseController {
      */
     @ApiOperation(value = "相机台账管理分页")
     @PostMapping("/list")
-    public AjaxResult selectHomeNotice(@RequestBody BaseAccountManagementVo baseAccountManagementVo) {
+    public AjaxResult selectBaseAccountManagement(@RequestBody BaseAccountManagementVo baseAccountManagementVo) {
         LambdaQueryWrapper<BaseAccountManagement> lw = new LambdaQueryWrapper<BaseAccountManagement>();
         if (!StringUtils.isBlank(baseAccountManagementVo.getLine())) {
             lw.eq(BaseAccountManagement::getLine, baseAccountManagementVo.getLine());
@@ -185,13 +195,75 @@ public class BaseAccountManagementController extends BaseController {
     @GetMapping("/downloaExcel")
     public void downloadZip(HttpServletResponse response) {
         try {
-            InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/planQuarter.xlsx");
+            InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/provisionalPlan.xlsx");
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, "台账相机管理导入模板.xlsx");
+            FileUtils.setAttachmentResponseHeader(response, "临时计划导入模板.xlsx");
             FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
         } catch (Exception e) {
             log.error("下载文件失败", e);
         }
     }
+
+    @ApiOperation("获取视频服务一级菜单")
+    @GetMapping("/firstLevelMenu")
+    public AjaxResult firstLevelMenu() {
+        List<BaseLineManagement> list = baseLineManagementService.list();
+        List<String> collect = list.stream().map(BaseLineManagement::getLineName).collect(Collectors.toList());
+        return success(collect);
+    }
+
+    @ApiOperation("获取视频服务二级菜单")
+    @GetMapping("/secondaryMenu/{lineName}")
+    public AjaxResult secondaryMenu(@PathVariable String lineName) {
+        return baseAccountManagementService.secondaryMenu(lineName);
+    }
+
+    @ApiOperation("获取视频服务三级菜单")
+    @GetMapping("/threeLevelMenu/{secondaryMenuName}/{lineName}")
+    public AjaxResult threeLevelMenu(@PathVariable String secondaryMenuName, @PathVariable String lineName) {
+        return baseAccountManagementService.threeLevelMenu(secondaryMenuName, lineName);
+    }
+
+
+    @ApiOperation("查询录像")
+    @GetMapping("/api/records")
+    public AjaxResult apiRecords() {
+        String param = "id=34020000001320000002&channel=34020000001320000002";
+        String s = HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/records", param);
+        System.out.println(s);
+        return success(HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/records", param));
+    }
+
+    @ApiOperation("播放回放")
+    @GetMapping("/api/invite")
+    public AjaxResult apiInvite() {
+        String param = "id=34020000001320000002&channel=34020000001320000002&startTime=1677230469&endTime=1677230513";
+        return success(HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/invite/", param));
+    }
+
+
+    @ApiOperation("视频服务设备数量")
+    @GetMapping("/totalNumberOfDevices")
+    public AjaxResult totalNumberOfDevices() {
+        long count = baseDynamicManagementService.count();
+        LambdaQueryWrapper<BaseDynamicManagement> lw = new LambdaQueryWrapper<BaseDynamicManagement>();
+        lw.eq(BaseDynamicManagement::getCameraState, 1);
+        long onLine = baseDynamicManagementService.count(lw);
+        LambdaQueryWrapper<BaseDynamicManagement> wrapper = new LambdaQueryWrapper<BaseDynamicManagement>();
+        wrapper.eq(BaseDynamicManagement::getCameraState, 2);
+        long offLine = baseDynamicManagementService.count(wrapper);
+        List<Long> size = new ArrayList<>();
+        size.add(count);
+        size.add(onLine);
+        size.add(offLine);
+        return success(size);
+    }
+
+    @ApiOperation("视频服务树形结构")
+    @GetMapping("/cameraTree")
+    @Cacheable(value = "baseAccountManagement", key = "'cameraTree'")
+    public AjaxResult cameraTree(@RequestParam(value = "name",required = false) String name) {
+     return    success(baseDynamicManagementService.cameraTree(name));
+    }
 }
 

+ 1 - 1
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseLineManagementController.java

@@ -56,7 +56,7 @@ public class BaseLineManagementController extends BaseController {
      */
     @ApiOperation(value = "线路台账管理分页")
     @PostMapping("/list")
-    public AjaxResult selectHomeNotice(@RequestBody BaseLineManagementVo baseLineManagementVo) {
+    public AjaxResult selectBaseLineManagement(@RequestBody BaseLineManagementVo baseLineManagementVo) {
         LambdaQueryWrapper<BaseLineManagement> lw = new LambdaQueryWrapper<BaseLineManagement>();
         if (!StringUtils.isBlank(baseLineManagementVo.getLineName())) {
             lw.eq(BaseLineManagement::getLineName, baseLineManagementVo.getLineName());

+ 134 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -0,0 +1,134 @@
+package com.ozs.web.controller.accountmanagment;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.MsgAlarmVice;
+import com.ozs.service.entity.vo.HistoricalAlarmVo;
+import com.ozs.service.entity.vo.MsgAlarmVo;
+import com.ozs.service.service.MsgAlarmService;
+import com.ozs.service.service.MsgAlarmViceService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 预报警信息管理表 前端控制器
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-22
+ */
+@RestController
+@RequestMapping("/service/msgAlarm")
+public class MsgAlarmController extends BaseController {
+    @Resource
+    MsgAlarmService msgAlarmService;
+    @Resource
+    MsgAlarmViceService msgAlarmViceService;
+
+
+    /**
+     * 预报警信息分页
+     *
+     * @param msgAlarmVo
+     * @return
+     */
+    @ApiOperation(value = "预报警信息分页")
+    @PostMapping("/list")
+    public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmVo msgAlarmVo) {
+        LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
+        if (!StringUtils.isBlank(msgAlarmVo.getAlarmLine())) {
+            lw.eq(MsgAlarm::getAlarmLine, msgAlarmVo.getAlarmLine());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getLineDir())) {
+            lw.eq(MsgAlarm::getLineDir, msgAlarmVo.getLineDir());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmType())) {
+            lw.eq(MsgAlarm::getAlarmType, msgAlarmVo.getAlarmType());
+        }
+        if (!StringUtils.isBlank(msgAlarmVo.getAlarmMile())) {
+            lw.eq(MsgAlarm::getAlarmMile, msgAlarmVo.getAlarmMile());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmArrr())) {
+            lw.ge(MsgAlarm::getAlarmArrr, msgAlarmVo.getBeginAlarmArrr());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndAlarmArrr())) {
+            lw.le(MsgAlarm::getAlarmArrr, msgAlarmVo.getEndAlarmArrr());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmTime())) {
+            lw.ge(MsgAlarm::getAlarmTime, msgAlarmVo.getBeginAlarmTime());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndAlarmTime())) {
+            lw.le(MsgAlarm::getAlarmTime, msgAlarmVo.getEndAlarmTime());
+        }
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getIsLock())) {
+            lw.eq(MsgAlarm::getIsLock, msgAlarmVo.getIsLock());
+        }
+        IPage<MsgAlarm> page = msgAlarmService.page(new Page<>(msgAlarmVo.getPageNum(), msgAlarmVo.getPageSize()), lw);
+        return AjaxResult.success(page);
+    }
+
+    @GetMapping(value = "/{id}")
+    @ApiOperation("根据预报警信息ID获取详细信息")
+    public AjaxResult getInfo(@PathVariable Long id) {
+        return AjaxResult.success(msgAlarmService.getById(id));
+    }
+
+
+    @PutMapping(value = "/{id}")
+    @ApiOperation("根据预报警信息ID解除报警")
+    public AjaxResult updateIsLock(@PathVariable Long id) {
+        MsgAlarm msgAlarm = msgAlarmService.getById(id);
+        msgAlarm.setIsLock(1);
+        msgAlarm.setUpdateBy(getUsername());
+        msgAlarm.setReleasedBy(getUsername());
+        msgAlarm.setReleasedTime(System.currentTimeMillis());
+        return AjaxResult.success(msgAlarmService.updateById(msgAlarm));
+    }
+
+    @GetMapping(value = "/historicalAlarm/{id}")
+    @ApiOperation("历史报警次数信息")
+    public AjaxResult historicalAlarm(@PathVariable Long id) {
+        MsgAlarm msgAlarm = msgAlarmService.getById(id);
+        List<HistoricalAlarmVo> historicalAlarmVoList=new ArrayList<>();
+        HistoricalAlarmVo historicalAlarmVo = new HistoricalAlarmVo();
+        historicalAlarmVo.setAlarmTime(msgAlarm.getAlarmTime());
+        historicalAlarmVo.setAlarmType(msgAlarm.getAlarmType());
+        historicalAlarmVo.setIsLock(msgAlarm.getIsLock());
+        historicalAlarmVoList.add(historicalAlarmVo);
+        QueryWrapper<MsgAlarmVice> wrapper = new QueryWrapper<>();
+        wrapper.eq("alarm_id",msgAlarm.getAlarmId());
+        wrapper.orderByDesc("alarm_time");
+        List<MsgAlarmVice> list = msgAlarmViceService.list(wrapper);
+        for (MsgAlarmVice msgAlarmVice : list) {
+            historicalAlarmVo = new HistoricalAlarmVo();
+            historicalAlarmVo.setAlarmTime(msgAlarmVice.getAlarmTime());
+            historicalAlarmVo.setAlarmType(msgAlarmVice.getAlarmType());
+            historicalAlarmVo.setIsLock(2);
+            historicalAlarmVoList.add(historicalAlarmVo);
+        }
+        return AjaxResult.success(historicalAlarmVoList);
+    }
+}
+

+ 32 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/SvcAddressController.java

@@ -0,0 +1,32 @@
+package com.ozs.web.controller.accountmanagment;
+
+
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.service.service.SvcAddressService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-28
+ */
+@RestController
+@RequestMapping("/service/svcAddress")
+public class SvcAddressController {
+   @Autowired
+    SvcAddressService svcAddressService;
+
+    @GetMapping("/test")
+    public AjaxResult getInfo() {
+        return AjaxResult.success(svcAddressService.list());
+    }
+}
+

+ 6 - 4
hazard-admin/src/main/java/com/ozs/web/controller/upload/UploadController.java

@@ -3,6 +3,7 @@ package com.ozs.web.controller.upload;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.MinioUtils;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.uuid.IdUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -26,7 +27,8 @@ public class UploadController {
 
 
     @PostMapping("/upLoadImage")
-    public AjaxResult upLoadImage(@RequestParam("file") MultipartFile image) throws Exception {
+    public AjaxResult upLoadImage(@RequestParam("file") MultipartFile image,
+                                  @RequestParam(value = "storagePath", required = false) String storagePath) throws Exception {
         if (image.isEmpty()) {
             return AjaxResult.error("不能上传空文件哦");
         }
@@ -38,10 +40,10 @@ public class UploadController {
             String imageName = image.getOriginalFilename();
             if (StringUtils.isNotBlank(imageName)) {
                 String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-                String filename = date + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
-                String imgName = "img" + "/" + filename;
+                String filename = IdUtils.fastSimpleUUID() + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
+                String imgName = storagePath + "/" + filename;
                 minioUtils.minIoClientUpload(image.getInputStream(), imgName);
-                uploadFile =  "/" + bucketName + "/" + imgName;
+                uploadFile =  "/" + storagePath + "/" + filename;
 
             }
         } else {

+ 9 - 1
hazard-admin/src/main/resources/application.yml

@@ -98,6 +98,14 @@ token:
     secret: abcdefghijklmnopqrstuvwxyz
     # 令牌有效期(默认30分钟)
     expireTime: 30
+# app:token配置
+apptoken:
+  # 令牌自定义标识
+  header: Authorization
+  # 令牌密钥
+  secret: qwertyuiopasdfghjklzxcvbnm
+  # 令牌有效期(默认15天)
+  expireTime: 21600
 
 # MyBatis配置
 mybatis:
@@ -137,7 +145,7 @@ xss:
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
 minio:
-  endpoint: http://123.60.179.47:18801 #Minio服务所在地址
+  endpoint: http://124.71.171.71:18801 #Minio服务所在地址
   bucketName: picbucket #存储桶名称
   accessKey: admin #访问的key
   secretKey: admin123 #访问的秘钥 

BIN
hazard-admin/src/main/resources/template/provisionalPlan.xlsx


+ 6 - 0
hazard-sdk/pom.xml

@@ -23,6 +23,12 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
+        <!-- 阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.2.15</version>
+        </dependency>
         <!-- 业务代码-->
         <dependency>
             <groupId>com.ozs</groupId>

+ 127 - 0
hazard-sdk/src/main/java/com/ozs/config/DruidConfig.java

@@ -0,0 +1,127 @@
+package com.ozs.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
+import com.alibaba.druid.util.Utils;
+import com.ozs.common.enums.DataSourceType;
+import com.ozs.common.utils.spring.SpringUtils;
+import com.ozs.config.datasource.DynamicDataSource;
+import com.ozs.config.properties.DruidProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * druid 配置多数据源
+ *
+ * @author ruoyi
+ */
+@Configuration
+public class DruidConfig
+{
+    @Bean
+    @ConfigurationProperties("spring.datasource.druid.master")
+    public DataSource masterDataSource(DruidProperties druidProperties)
+    {
+        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
+        return druidProperties.dataSource(dataSource);
+    }
+
+    @Bean
+    @ConfigurationProperties("spring.datasource.druid.slave")
+    @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
+    public DataSource slaveDataSource(DruidProperties druidProperties)
+    {
+        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
+        return druidProperties.dataSource(dataSource);
+    }
+
+    @Bean(name = "dynamicDataSource")
+    @Primary
+    public DynamicDataSource dataSource(DataSource masterDataSource)
+    {
+        Map<Object, Object> targetDataSources = new HashMap<>();
+        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
+        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
+        return new DynamicDataSource(masterDataSource, targetDataSources);
+    }
+
+    /**
+     * 设置数据源
+     *
+     * @param targetDataSources 备选数据源集合
+     * @param sourceName 数据源名称
+     * @param beanName bean名称
+     */
+    public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
+    {
+        try
+        {
+            DataSource dataSource = SpringUtils.getBean(beanName);
+            targetDataSources.put(sourceName, dataSource);
+        }
+        catch (Exception e)
+        {
+        }
+    }
+
+    /**
+     * 去除监控页面底部的广告
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Bean
+    @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
+    public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
+    {
+        // 获取web监控页面的参数
+        DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
+        // 提取common.js的配置路径
+        String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
+        String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
+        final String filePath = "support/http/resources/js/common.js";
+        // 创建filter进行过滤
+        Filter filter = new Filter()
+        {
+            @Override
+            public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
+            {
+            }
+            @Override
+            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+                    throws IOException, ServletException
+            {
+                chain.doFilter(request, response);
+                // 重置缓冲区,响应头不会被重置
+                response.resetBuffer();
+                // 获取common.js
+                String text = Utils.readFromResource(filePath);
+                // 正则替换banner, 除去底部的广告信息
+                text = text.replaceAll("<a.*?banner\"></a><br/>", "");
+                text = text.replaceAll("powered.*?shrek.wang</a>", "");
+                response.getWriter().write(text);
+            }
+            @Override
+            public void destroy()
+            {
+            }
+        };
+        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
+        registrationBean.setFilter(filter);
+        registrationBean.addUrlPatterns(commonJsPattern);
+        return registrationBean;
+    }
+}

+ 27 - 0
hazard-sdk/src/main/java/com/ozs/config/datasource/DynamicDataSource.java

@@ -0,0 +1,27 @@
+package com.ozs.config.datasource;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+import javax.sql.DataSource;
+import java.util.Map;
+
+/**
+ * 动态数据源
+ *
+ * @author ruoyi
+ */
+public class DynamicDataSource extends AbstractRoutingDataSource
+{
+    public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources)
+    {
+        super.setDefaultTargetDataSource(defaultTargetDataSource);
+        super.setTargetDataSources(targetDataSources);
+        super.afterPropertiesSet();
+    }
+
+    @Override
+    protected Object determineCurrentLookupKey()
+    {
+        return DynamicDataSourceContextHolder.getDataSourceType();
+    }
+}

+ 45 - 0
hazard-sdk/src/main/java/com/ozs/config/datasource/DynamicDataSourceContextHolder.java

@@ -0,0 +1,45 @@
+package com.ozs.config.datasource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 数据源切换处理
+ *
+ * @author ruoyi
+ */
+public class DynamicDataSourceContextHolder
+{
+    public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class);
+
+    /**
+     * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
+     *  所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
+     */
+    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
+
+    /**
+     * 设置数据源的变量
+     */
+    public static void setDataSourceType(String dsType)
+    {
+        log.info("切换到{}数据源", dsType);
+        CONTEXT_HOLDER.set(dsType);
+    }
+
+    /**
+     * 获得数据源的变量
+     */
+    public static String getDataSourceType()
+    {
+        return CONTEXT_HOLDER.get();
+    }
+
+    /**
+     * 清空数据源变量
+     */
+    public static void clearDataSourceType()
+    {
+        CONTEXT_HOLDER.remove();
+    }
+}

+ 77 - 0
hazard-sdk/src/main/java/com/ozs/config/properties/DruidProperties.java

@@ -0,0 +1,77 @@
+package com.ozs.config.properties;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * druid 配置属性
+ *
+ * @author ruoyi
+ */
+@Configuration
+public class DruidProperties
+{
+    @Value("${spring.datasource.druid.initialSize}")
+    private int initialSize;
+
+    @Value("${spring.datasource.druid.minIdle}")
+    private int minIdle;
+
+    @Value("${spring.datasource.druid.maxActive}")
+    private int maxActive;
+
+    @Value("${spring.datasource.druid.maxWait}")
+    private int maxWait;
+
+    @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
+    private int timeBetweenEvictionRunsMillis;
+
+    @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
+    private int minEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
+    private int maxEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.validationQuery}")
+    private String validationQuery;
+
+    @Value("${spring.datasource.druid.testWhileIdle}")
+    private boolean testWhileIdle;
+
+    @Value("${spring.datasource.druid.testOnBorrow}")
+    private boolean testOnBorrow;
+
+    @Value("${spring.datasource.druid.testOnReturn}")
+    private boolean testOnReturn;
+
+    public DruidDataSource dataSource(DruidDataSource datasource)
+    {
+        /** 配置初始化大小、最小、最大 */
+        datasource.setInitialSize(initialSize);
+        datasource.setMaxActive(maxActive);
+        datasource.setMinIdle(minIdle);
+
+        /** 配置获取连接等待超时的时间 */
+        datasource.setMaxWait(maxWait);
+
+        /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+
+        /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+        datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+
+        /**
+         * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+         */
+        datasource.setValidationQuery(validationQuery);
+        /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+        datasource.setTestWhileIdle(testWhileIdle);
+        /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnBorrow(testOnBorrow);
+        /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnReturn(testOnReturn);
+        return datasource;
+    }
+}

+ 98 - 44
hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -1,22 +1,31 @@
 package com.ozs.controller.upload;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.domain.Result;
+import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.utils.ApiTokenUtils;
 import com.ozs.common.utils.AppTokenUtils;
 import com.ozs.common.utils.StringUtils;
-import com.ozs.service.entity.BaseAccountManagement;
+import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.service.entity.BaseDynamicManagement;
-import com.ozs.service.service.BaseAccountManagementService;
+import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.MsgAlarmVice;
+import com.ozs.service.entity.SvcAddress;
 import com.ozs.service.service.BaseDynamicManagementService;
+import com.ozs.service.service.MsgAlarmService;
+import com.ozs.service.service.MsgAlarmViceService;
+import com.ozs.service.service.SvcAddressService;
 import com.ozs.vo.ReqDeviceVo;
 import com.ozs.vo.ReqMsgAlarmVo;
 import com.ozs.vo.RespGeoHazardMonitorVo;
 import com.ozs.vo.RespMsgAlarmVo;
+import io.swagger.models.auth.In;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.SimpleIdGenerator;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -25,6 +34,9 @@ import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 1. 获取身份认证控制层
@@ -40,6 +52,13 @@ public class GeoHazardMonitorTokenController {
     private AppTokenUtils appTokenUtils;
     @Resource
     BaseDynamicManagementService baseDynamicManagementService;
+    @Autowired
+    MsgAlarmService msgAlarmService;
+    @Autowired
+    MsgAlarmViceService msgAlarmViceService;
+    @Autowired
+    SvcAddressService svcAddressService;
+
 
     /**
      * 获取web访问令牌
@@ -50,34 +69,44 @@ public class GeoHazardMonitorTokenController {
      * @return
      */
     @PostMapping("/IPAddress/token")
-    public Result getWebToken(@RequestParam("grantType") String grantType,
-                           @RequestParam("clientId") String clientId,
-                           @RequestParam("clientSecret") String clientSecret) {
+    public Result getWebToken(@RequestParam(value = "grantType", required = false) String grantType,
+                              @RequestParam(value = "clientId", required = false) String clientId,
+                              @RequestParam(value = "clientSecret", required = false) String clientSecret) {
         // 生成令牌
-        ArrayList<String> objects = apiTokenUtils.createGeoHazardMonitorToken();
-        if (objects.size() > 0) {
-            RespGeoHazardMonitorVo respGeoHazardMonitorVo = new RespGeoHazardMonitorVo();
-            respGeoHazardMonitorVo.setAccessToken(objects.get(1));
-            respGeoHazardMonitorVo.setExpiresIn(Long.valueOf(objects.get(0)));
-            respGeoHazardMonitorVo.setTokenType("令牌类型");
-            return new Result(1, "成功", respGeoHazardMonitorVo);
+        LambdaQueryWrapper<SvcAddress> lw = new LambdaQueryWrapper<SvcAddress>();
+        if (!ObjectUtils.isEmpty(grantType)) {
+            lw.eq(SvcAddress::getGrantType, grantType);
+        }
+        if (!ObjectUtils.isEmpty(clientId)) {
+            lw.eq(SvcAddress::getClientId, clientId);
+        }
+        if (!ObjectUtils.isEmpty(clientSecret)) {
+            lw.eq(SvcAddress::getClientSecret, clientSecret);
+        }
+        List<SvcAddress> list = svcAddressService.list(lw);
+        if (list.size() > 0) {
+            ArrayList<String> objects = apiTokenUtils.createGeoHazardMonitorToken(grantType, clientId, clientSecret);
+            if (objects.size() > 0) {
+                RespGeoHazardMonitorVo respGeoHazardMonitorVo = new RespGeoHazardMonitorVo();
+                respGeoHazardMonitorVo.setAccessToken(objects.get(1));
+                respGeoHazardMonitorVo.setExpiresIn(Long.valueOf(objects.get(0)));
+                respGeoHazardMonitorVo.setTokenType("令牌类型");
+                return new Result(1, "成功", respGeoHazardMonitorVo);
+            } else {
+                return new Result(2, "失败", "生成token失败!!");
+            }
         } else {
-            return new Result(2, "失败", "生成token失败!!");
+            return new Result(2, "失败", "参数验证失败!!");
         }
     }
 
     /**
      * 获取app访问令牌
      *
-     * @param grantType    授权类型,客户端模式(client_credentials)
-     * @param clientId     客户端编号
-     * @param clientSecret 客户端密钥
      * @return
      */
     @PostMapping("/App/token")
-    public Result getAppToken(@RequestParam("grantType") String grantType,
-                           @RequestParam("clientId") String clientId,
-                           @RequestParam("clientSecret") String clientSecret) {
+    public Result getAppToken(@RequestParam("parameter") String parameter) {
         // 生成令牌
         ArrayList<String> objects = appTokenUtils.createGeoHazardMonitorToken();
         if (objects.size() > 0) {
@@ -94,22 +123,42 @@ public class GeoHazardMonitorTokenController {
     /**
      * 报警信息数据传输
      *
-     * @param reqMsgAlarmVo
-     * @return
+     * @return // 生成令牌
      */
     @PostMapping("/IPAddress/alarm")
-    public Result alarm(@RequestBody ReqMsgAlarmVo reqMsgAlarmVo,
-                        HttpServletRequest request) {
-        // 生成令牌
+    public Result alarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         if (StringUtils.isNotEmpty(token)) {
+            String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+            ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
             RespMsgAlarmVo respMsgAlarmVo = new RespMsgAlarmVo();
-            respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
-            respMsgAlarmVo.setAlarmCamera(reqMsgAlarmVo.getAlarmCamera());
-            respMsgAlarmVo.setCancelTime("");
-            return new Result(1, "成功", respMsgAlarmVo);
+            LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
+            if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmId())) {
+                lw.eq(MsgAlarm::getAlarmId, reqMsgAlarmVo.getAlarmId());
+            }
+            MsgAlarm alarm = msgAlarmService.getOne(lw);
+            if (ObjectUtils.isEmpty(alarm)) {
+                MsgAlarm msgAlarm = new MsgAlarm();
+                BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarm);
+//                msgAlarm.setCreateBy(getUsername());
+                msgAlarmService.save(msgAlarm);
+                respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
+                respMsgAlarmVo.setAlarmCamera(reqMsgAlarmVo.getAlarmCamera());
+                respMsgAlarmVo.setIsCancel(2);
+                respMsgAlarmVo.setCancelTime(null);
+            } else {
+                MsgAlarmVice msgAlarmVice = new MsgAlarmVice();
+                BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
+//                msgAlarmVice.setCreateBy(getUsername());
+                msgAlarmViceService.save(msgAlarmVice);
+                respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
+                respMsgAlarmVo.setAlarmCamera(reqMsgAlarmVo.getAlarmCamera());
+                respMsgAlarmVo.setIsCancel(alarm.getIsLock());
+                respMsgAlarmVo.setCancelTime(alarm.getReleasedTime());
+            }
+            return new Result(1, "成功", SM4Utils.encryptData_ECB(JSONObject.toJSONString(respMsgAlarmVo), "4370780c9a8c43e5"));
         } else {
-            return new Result(2, "失败", "生成token失败!!");
+            return new Result(2, "失败", "获取token失败!!");
         }
     }
 
@@ -117,21 +166,26 @@ public class GeoHazardMonitorTokenController {
     /**
      * 设备状态数据传输
      *
-     * @param reqDeviceVo
      * @return
      */
-    @PostMapping("/IPAddress /device/state")
-    public Result deviceState(@RequestBody ReqDeviceVo reqDeviceVo) throws ParseException {
-        LambdaQueryWrapper<BaseDynamicManagement> lw = new LambdaQueryWrapper<BaseDynamicManagement>();
-        if (!ObjectUtils.isEmpty(reqDeviceVo.getCameraCode())) {
-            lw.eq(BaseDynamicManagement::getCameraCode, reqDeviceVo.getCameraCode());
-        }
-        BaseDynamicManagement baseDynamicManagement = baseDynamicManagementService.getOne(lw);
-        baseDynamicManagement.setElectricity(Integer.valueOf(reqDeviceVo.getElectricity()));
-        baseDynamicManagement.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(reqDeviceVo.getTime()));
-        if (baseDynamicManagementService.updateById(baseDynamicManagement)) {
-            return new Result(1, "成功");
+    @PostMapping("/IPAddress/device/state")
+    public Result deviceState(@RequestParam("parameter") String parameter, HttpServletRequest request) throws ParseException {
+        String token = apiTokenUtils.getGeoHazardMonitorToken(request);
+        if (StringUtils.isNotEmpty(token)) {
+            ReqDeviceVo reqDeviceVo = JSON.parseObject(SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5"), ReqDeviceVo.class);
+            LambdaQueryWrapper<BaseDynamicManagement> lw = new LambdaQueryWrapper<BaseDynamicManagement>();
+            if (!ObjectUtils.isEmpty(reqDeviceVo.getCameraCode())) {
+                lw.eq(BaseDynamicManagement::getCameraCode, reqDeviceVo.getCameraCode());
+            }
+            BaseDynamicManagement baseDynamicManagement = baseDynamicManagementService.getOne(lw);
+            baseDynamicManagement.setElectricity(reqDeviceVo.getElectricity());
+            baseDynamicManagement.setUpdateTime(new Date(reqDeviceVo.getTime()));
+            if (baseDynamicManagementService.updateById(baseDynamicManagement)) {
+                return new Result(1, "成功");
+            }
+            return new Result(2, "失败");
+        } else {
+            return new Result(2, "失败", "获取token失败!!");
         }
-        return new Result(2, "失败");
     }
 }

+ 6 - 4
hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java

@@ -3,6 +3,7 @@ package com.ozs.controller.upload;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.MinioUtils;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.uuid.IdUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -26,7 +27,8 @@ public class UploadController {
 
 
     @PostMapping("/upLoadImage")
-    public AjaxResult upLoadImage(@RequestParam("file") MultipartFile image) throws Exception {
+    public AjaxResult upLoadImage(@RequestParam("file") MultipartFile image,
+                                  @RequestParam(value = "storagePath", required = false) String storagePath) throws Exception {
         if (image.isEmpty()) {
             return AjaxResult.error("不能上传空文件哦");
         }
@@ -38,10 +40,10 @@ public class UploadController {
             String imageName = image.getOriginalFilename();
             if (StringUtils.isNotBlank(imageName)) {
                 String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-                String filename = date + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
-                String imgName = "img" + "/" + filename;
+                String filename = IdUtils.fastSimpleUUID() + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
+                String imgName = storagePath + "/" + filename;
                 minioUtils.minIoClientUpload(image.getInputStream(), imgName);
-                uploadFile =  "/" + bucketName + "/" + imgName;
+                uploadFile =  "/" + storagePath + "/" + filename;
 
             }
         } else {

+ 2 - 2
hazard-sdk/src/main/java/com/ozs/vo/ReqDeviceVo.java

@@ -18,9 +18,9 @@ public class ReqDeviceVo implements Serializable {
     /**
      * 时间
      */
-    private String time;
+    private Long time;
     /**
      * 剩余电量
      */
-    private String electricity;
+    private Integer electricity;
 }

+ 6 - 4
hazard-sdk/src/main/java/com/ozs/vo/ReqMsgAlarmVo.java

@@ -16,14 +16,14 @@ public class ReqMsgAlarmVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    /** 主键ID */
+    /** 报警的唯一标识 */
     private Long alarmId;
 
     /** 报警时间 */
-    private String alarmTime;
+    private Long alarmTime;
 
     /** 相机编码 */
-    private Long alarmCamera;
+    private Integer alarmCamera;
 
     /** 报警里程位置 */
     private String alarmMile;
@@ -32,7 +32,7 @@ public class ReqMsgAlarmVo implements Serializable {
     private String content;
 
     /** 报警置信度(百分比) */
-    private String alarmConfidence;
+    private Integer alarmConfidence;
 
     /** 报警行别 */
     private Integer lineDir;
@@ -45,4 +45,6 @@ public class ReqMsgAlarmVo implements Serializable {
     
     /** 报警图片地址 */
     private String imageUrl;
+    
+    private String files;
 }

+ 2 - 2
hazard-sdk/src/main/java/com/ozs/vo/RespMsgAlarmVo.java

@@ -17,10 +17,10 @@ public class RespMsgAlarmVo implements Serializable {
     private Long alarmId;
 
     /** 报警解除时间 */
-    private String cancelTime;
+    private Long cancelTime;
 
     /** 相机编码 */
-    private Long alarmCamera;
+    private Integer alarmCamera;
     
     /** 报警是否解除 1已解除2未解除 */
     private Integer isCancel;

+ 53 - 3
hazard-sdk/src/main/resources/application-druid.yml

@@ -1,7 +1,57 @@
 # 数据源配置
 spring:
-    datasource:
-        driverClassName: com.mysql.cj.jdbc.Driver
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driverClassName: com.mysql.cj.jdbc.Driver
+    druid:
+      # 主库数据源
+      master:
         url: jdbc:mysql://124.70.58.209:1122/hazard?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: admin
-        password: 106aD>>ql95K5S   
+        password: 106aD>>ql95K5S
+      # 从库数据源
+      slave:
+        # 从数据源开关/默认关闭
+        enabled: false
+        url:
+        username:
+        password:
+      # 初始连接数
+      initialSize: 5
+      # 最小连接池数量
+      minIdle: 10
+      # 最大连接池数量
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      # 配置一个连接在池中最大生存的时间,单位是毫秒
+      maxEvictableIdleTimeMillis: 900000
+      # 配置检测连接是否有效
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      webStatFilter:
+        enabled: true
+      statViewServlet:
+        enabled: true
+        # 设置白名单,不填则允许所有访问
+        allow:
+        url-pattern: /druid/*
+        # 控制台管理用户名和密码
+        login-username: ruoyi
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 慢SQL记录
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true

+ 1 - 1
hazard-sdk/src/main/resources/application.yml

@@ -146,7 +146,7 @@ xss:
   # 匹配链接
   urlPatterns: /system/*,/monitor/*,/tool/*
 minio:
-  endpoint: http://123.60.179.47:18801 #Minio服务所在地址
+  endpoint: http://124.71.171.71:18801 #Minio服务所在地址
   bucketName: picbucket #存储桶名称
   accessKey: admin #访问的key
   secretKey: admin123 #访问的秘钥 

+ 13 - 6
hazard-sdk/src/main/resources/mybatis/mybatis-config.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE configuration
-PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-config.dtd">
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
     <!-- 全局参数 -->
     <settings>
@@ -11,10 +11,17 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         <setting name="useGeneratedKeys"         value="true"   />
         <!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
         <setting name="defaultExecutorType"      value="SIMPLE" />
-		<!-- 指定 MyBatis 所用日志的具体实现 -->
+        <!-- 指定 MyBatis 所用日志的具体实现 -->
         <setting name="logImpl"                  value="SLF4J"  />
         <!-- 使用驼峰命名法转换字段 -->
-		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
-	</settings>
-	
+        <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
+    </settings>
+
+    <plugins>
+        <!--        配置分页插件-->
+        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
+            <property name="@page" value="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor"/>
+            <property name="page:dbType" value="MYSQL"/>
+        </plugin>
+    </plugins>
 </configuration>

+ 0 - 27
hazard-stateSecrets/pom.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>GeoHazardMonitor</artifactId>
-        <groupId>com.ozs</groupId>
-        <version>1.0</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>hazard-stateSecrets</artifactId>
-
-    <dependencies>
-        
-        <dependency>
-            <groupId>com.ozs</groupId>
-            <artifactId>business-service</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-security</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
-</project>

+ 0 - 25
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM2Result.java

@@ -1,25 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-import org.bouncycastle.math.ec.ECPoint;
-
-import java.math.BigInteger;
-
-public class SM2Result
-{
-	public SM2Result() {
-	}
-
-	// 签名/验签
-	public BigInteger r;
-	public BigInteger s;
-	public BigInteger R;
-
-	// 密钥交换
-	public byte[] sa;
-	public byte[] sb;
-	public byte[] s1;
-	public byte[] s2;
-
-	public ECPoint keyra;
-	public ECPoint keyrb;
-}

+ 0 - 359
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM3.java

@@ -1,359 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-
-public class SM3
-{
-	/*public static final byte[] iv = { 0x2C, (byte) 0x91, (byte) 0xB4, 0x01,
-			(byte) 0xFC, 0x64, (byte) 0xB2, (byte) 0xCE, 0x7C, 0x4E,
-			(byte) 0xAE, (byte) 0xFB, (byte) 0xB1, 0x3B, (byte) 0xB6,
-			(byte) 0xD3, 0x17, 0x60, (byte) 0xB6, 0x35, (byte) 0xF3, 0x6F,
-			0x13, (byte) 0xEB, (byte) 0xC8, 0x77, (byte) 0xE9, (byte) 0xA0,
-			(byte) 0xC2, 0x76, (byte) 0xA8, 0x17 };*/
-
-	public static final byte[] iv = { 0x73, (byte) 0x80, 0x16, 0x6f, 0x49,
-		0x14, (byte) 0xb2, (byte) 0xb9, 0x17, 0x24, 0x42, (byte) 0xd7,
-		(byte) 0xda, (byte) 0x8a, 0x06, 0x00, (byte) 0xa9, 0x6f, 0x30,
-		(byte) 0xbc, (byte) 0x16, 0x31, 0x38, (byte) 0xaa, (byte) 0xe3,
-		(byte) 0x8d, (byte) 0xee, 0x4d, (byte) 0xb0, (byte) 0xfb, 0x0e,
-		0x4e };
-
-	public static int[] Tj = new int[64];
-
-	static
-	{
-		for (int i = 0; i < 16; i++)
-		{
-			Tj[i] = 0x79cc4519;
-		}
-
-		for (int i = 16; i < 64; i++)
-		{
-			Tj[i] = 0x7a879d8a;
-		}
-	}
-
-	public static byte[] CF(byte[] V, byte[] B)
-	{
-		int[] v, b;
-		v = convert(V);
-		b = convert(B);
-		return convert(CF(v, b));
-	}
-
-	private static int[] convert(byte[] arr)
-	{
-		int[] out = new int[arr.length / 4];
-		byte[] tmp = new byte[4];
-		for (int i = 0; i < arr.length; i += 4)
-		{
-			System.arraycopy(arr, i, tmp, 0, 4);
-			out[i / 4] = bigEndianByteToInt(tmp);
-		}
-		return out;
-	}
-
-	private static byte[] convert(int[] arr)
-	{
-		byte[] out = new byte[arr.length * 4];
-		byte[] tmp = null;
-		for (int i = 0; i < arr.length; i++)
-		{
-			tmp = bigEndianIntToByte(arr[i]);
-			System.arraycopy(tmp, 0, out, i * 4, 4);
-		}
-		return out;
-	}
-
-	public static int[] CF(int[] V, int[] B)
-	{
-		int a, b, c, d, e, f, g, h;
-		int ss1, ss2, tt1, tt2;
-		a = V[0];
-		b = V[1];
-		c = V[2];
-		d = V[3];
-		e = V[4];
-		f = V[5];
-		g = V[6];
-		h = V[7];
-
-		/*System.out.println("IV: ");
-		System.out.print(Integer.toHexString(a)+" ");
-		System.out.print(Integer.toHexString(b)+" ");
-		System.out.print(Integer.toHexString(c)+" ");
-		System.out.print(Integer.toHexString(d)+" ");
-		System.out.print(Integer.toHexString(e)+" ");
-		System.out.print(Integer.toHexString(f)+" ");
-		System.out.print(Integer.toHexString(g)+" ");
-		System.out.print(Integer.toHexString(h)+" ");
-		System.out.println("");
-		System.out.println("");
-
-		System.out.println("�������Ϣ: ");
-		for(int i=0; i<B.length; i++)
-		{
-			System.out.print(Integer.toHexString(B[i])+" ");
-		}
-		System.out.println("");
-		System.out.println("");*/
-
-		int[][] arr = expand(B);
-		int[] w = arr[0];
-		int[] w1 = arr[1];
-
-		/*System.out.println("��չ�����Ϣ�� ");
-		System.out.println("W0W1...W67");
-		print(w);
-		System.out.println("");
-		System.out.println("W'0W'1...W'67");
-		print(w1);
-		System.out.println("����ѹ���м�ֵ: ");*/
-
-		for (int j = 0; j < 64; j++)
-		{
-			ss1 = (bitCycleLeft(a, 12) + e + bitCycleLeft(Tj[j], j));
-			ss1 = bitCycleLeft(ss1, 7);
-			ss2 = ss1 ^ bitCycleLeft(a, 12);
-			tt1 = FFj(a, b, c, j) + d + ss2 + w1[j];
-			tt2 = GGj(e, f, g, j) + h + ss1 + w[j];
-			d = c;
-			c = bitCycleLeft(b, 9);
-			b = a;
-			a = tt1;
-			h = g;
-			g = bitCycleLeft(f, 19);
-			f = e;
-			e = P0(tt2);
-
-			/*System.out.print(j+" ");
-			System.out.print(Integer.toHexString(a)+" ");
-			System.out.print(Integer.toHexString(b)+" ");
-			System.out.print(Integer.toHexString(c)+" ");
-			System.out.print(Integer.toHexString(d)+" ");
-			System.out.print(Integer.toHexString(e)+" ");
-			System.out.print(Integer.toHexString(f)+" ");
-			System.out.print(Integer.toHexString(g)+" ");
-			System.out.print(Integer.toHexString(h)+" ");
-			System.out.println("");*/
-		}
-//		System.out.println("");
-
-		int[] out = new int[8];
-		out[0] = a ^ V[0];
-		out[1] = b ^ V[1];
-		out[2] = c ^ V[2];
-		out[3] = d ^ V[3];
-		out[4] = e ^ V[4];
-		out[5] = f ^ V[5];
-		out[6] = g ^ V[6];
-		out[7] = h ^ V[7];
-
-		return out;
-	}
-
-	private static int[][] expand(int[] B)
-	{
-		int W[] = new int[68];
-		int W1[] = new int[64];
-		for (int i = 0; i < B.length; i++)
-		{
-			W[i] = B[i];
-		}
-
-		for (int i = 16; i < 68; i++)
-		{
-			W[i] = P1(W[i - 16] ^ W[i - 9] ^ bitCycleLeft(W[i - 3], 15))
-					^ bitCycleLeft(W[i - 13], 7) ^ W[i - 6];
-		}
-
-		for (int i = 0; i < 64; i++)
-		{
-			W1[i] = W[i] ^ W[i + 4];
-		}
-
-		int arr[][] = new int[][] { W, W1 };
-		return arr;
-	}
-
-	private static byte[] bigEndianIntToByte(int num)
-	{
-		return back(Util.intToBytes(num));
-	}
-
-	private static int bigEndianByteToInt(byte[] bytes)
-	{
-		return Util.byteToInt(back(bytes));
-	}
-
-	private static int FFj(int X, int Y, int Z, int j)
-	{
-		if (j >= 0 && j <= 15)
-		{
-			return FF1j(X, Y, Z);
-		}
-		else
-		{
-			return FF2j(X, Y, Z);
-		}
-	}
-
-	private static int GGj(int X, int Y, int Z, int j)
-	{
-		if (j >= 0 && j <= 15)
-		{
-			return GG1j(X, Y, Z);
-		}
-		else
-		{
-			return GG2j(X, Y, Z);
-		}
-	}
-
-	// �߼�λ���㺯��
-	private static int FF1j(int X, int Y, int Z)
-	{
-		int tmp = X ^ Y ^ Z;
-		return tmp;
-	}
-
-	private static int FF2j(int X, int Y, int Z)
-	{
-		int tmp = ((X & Y) | (X & Z) | (Y & Z));
-		return tmp;
-	}
-
-	private static int GG1j(int X, int Y, int Z)
-	{
-		int tmp = X ^ Y ^ Z;
-		return tmp;
-	}
-
-	private static int GG2j(int X, int Y, int Z)
-	{
-		int tmp = (X & Y) | (~X & Z);
-		return tmp;
-	}
-
-	private static int P0(int X)
-	{
-		int y = rotateLeft(X, 9);
-		y = bitCycleLeft(X, 9);
-		int z = rotateLeft(X, 17);
-		z = bitCycleLeft(X, 17);
-		int t = X ^ y ^ z;
-		return t;
-	}
-
-	private static int P1(int X)
-	{
-		int t = X ^ bitCycleLeft(X, 15) ^ bitCycleLeft(X, 23);
-		return t;
-	}
-
-	/**
-	 * �����һ�������ֽ�����padding
-	 *
-	 * @param in
-	 * @param bLen
-	 *            �������
-	 * @return
-	 */
-	public static byte[] padding(byte[] in, int bLen)
-	{
-		int k = 448 - (8 * in.length + 1) % 512;
-		if (k < 0)
-		{
-			k = 960 - (8 * in.length + 1) % 512;
-		}
-		k += 1;
-		byte[] padd = new byte[k / 8];
-		padd[0] = (byte) 0x80;
-		long n = in.length * 8 + bLen * 512;
-		byte[] out = new byte[in.length + k / 8 + 64 / 8];
-		int pos = 0;
-		System.arraycopy(in, 0, out, 0, in.length);
-		pos += in.length;
-		System.arraycopy(padd, 0, out, pos, padd.length);
-		pos += padd.length;
-		byte[] tmp = back(Util.longToBytes(n));
-		System.arraycopy(tmp, 0, out, pos, tmp.length);
-		return out;
-	}
-
-	/**
-	 * �ֽ���������
-	 *
-	 * @param in
-	 * @return
-	 */
-	private static byte[] back(byte[] in)
-	{
-		byte[] out = new byte[in.length];
-		for (int i = 0; i < out.length; i++)
-		{
-			out[i] = in[out.length - i - 1];
-		}
-
-		return out;
-	}
-
-	public static int rotateLeft(int x, int n)
-	{
-		return (x << n) | (x >> (32 - n));
-	}
-
-	private static int bitCycleLeft(int n, int bitLen)
-	{
-		bitLen %= 32;
-		byte[] tmp = bigEndianIntToByte(n);
-		int byteLen = bitLen / 8;
-		int len = bitLen % 8;
-		if (byteLen > 0)
-		{
-			tmp = byteCycleLeft(tmp, byteLen);
-		}
-
-		if (len > 0)
-		{
-			tmp = bitSmall8CycleLeft(tmp, len);
-		}
-
-		return bigEndianByteToInt(tmp);
-	}
-
-	private static byte[] bitSmall8CycleLeft(byte[] in, int len)
-	{
-		byte[] tmp = new byte[in.length];
-		int t1, t2, t3;
-		for (int i = 0; i < tmp.length; i++)
-		{
-			t1 = (byte) ((in[i] & 0x000000ff) << len);
-			t2 = (byte) ((in[(i + 1) % tmp.length] & 0x000000ff) >> (8 - len));
-			t3 = (byte) (t1 | t2);
-			tmp[i] = (byte) t3;
-		}
-
-		return tmp;
-	}
-
-	private static byte[] byteCycleLeft(byte[] in, int byteLen)
-	{
-		byte[] tmp = new byte[in.length];
-		System.arraycopy(in, byteLen, tmp, 0, in.length - byteLen);
-		System.arraycopy(in, 0, tmp, in.length - byteLen, byteLen);
-		return tmp;
-	}
-
-	/*private static void print(int[] arr)
-	{
-		for (int i = 0; i < arr.length; i++)
-		{
-			System.out.print(Integer.toHexString(arr[i]) + " ");
-			if ((i + 1) % 16 == 0)
-			{
-				System.out.println();
-			}
-		}
-		System.out.println();
-	}*/
-}

+ 0 - 123
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM3Digest.java

@@ -1,123 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-
-import org.bouncycastle.util.encoders.Hex;
-
-import java.nio.charset.StandardCharsets;
-
-public class SM3Digest
-{
-  private static final int BYTE_LENGTH = 32;
-  private static final int BLOCK_LENGTH = 64;
-  private static final int BUFFER_LENGTH = 64;
-  private byte[] xBuf = new byte[64];
-  private int xBufOff;
-  private byte[] V = (byte[])SM3.iv.clone();
-
-  private int cntBlock = 0;
-
-  public SM3Digest()
-  {
-  }
-
-  public SM3Digest(SM3Digest t) {
-    System.arraycopy(t.xBuf, 0, this.xBuf, 0, t.xBuf.length);
-    this.xBufOff = t.xBufOff;
-    System.arraycopy(t.V, 0, this.V, 0, t.V.length);
-  }
-
-  public int doFinal(byte[] out, int outOff)
-  {
-    byte[] tmp = doFinal();
-    System.arraycopy(tmp, 0, out, 0, tmp.length);
-    return 32;
-  }
-
-  public void reset()
-  {
-    this.xBufOff = 0;
-    this.cntBlock = 0;
-    this.V = ((byte[])SM3.iv.clone());
-  }
-
-  public void update(byte[] in, int inOff, int len)
-  {
-    int partLen = 64 - this.xBufOff;
-    int inputLen = len;
-    int dPos = inOff;
-    if (partLen < inputLen)
-    {
-      System.arraycopy(in, dPos, this.xBuf, this.xBufOff, partLen);
-      inputLen -= partLen;
-      dPos += partLen;
-      doUpdate();
-      while (inputLen > 64)
-      {
-        System.arraycopy(in, dPos, this.xBuf, 0, 64);
-        inputLen -= 64;
-        dPos += 64;
-        doUpdate();
-      }
-    }
-
-    System.arraycopy(in, dPos, this.xBuf, this.xBufOff, inputLen);
-    this.xBufOff += inputLen;
-  }
-
-  private void doUpdate()
-  {
-    byte[] B = new byte[64];
-    for (int i = 0; i < 64; i += 64)
-    {
-      System.arraycopy(this.xBuf, i, B, 0, B.length);
-      doHash(B);
-    }
-    this.xBufOff = 0;
-  }
-
-  private void doHash(byte[] B)
-  {
-    byte[] tmp = SM3.CF(this.V, B);
-    System.arraycopy(tmp, 0, this.V, 0, this.V.length);
-    this.cntBlock += 1;
-  }
-
-  private byte[] doFinal()
-  {
-    byte[] B = new byte[64];
-    byte[] buffer = new byte[this.xBufOff];
-    System.arraycopy(this.xBuf, 0, buffer, 0, buffer.length);
-    byte[] tmp = SM3.padding(buffer, this.cntBlock);
-    for (int i = 0; i < tmp.length; i += 64)
-    {
-      System.arraycopy(tmp, i, B, 0, B.length);
-      doHash(B);
-    }
-    return this.V;
-  }
-
-  public void update(byte in)
-  {
-    byte[] buffer = { in };
-    update(buffer, 0, 1);
-  }
-
-  public int getDigestSize()
-  {
-    return 32;
-  }
-
-  public static String SM3Encrypt(String str){
-    byte[] md = new byte[32];
-    byte[] msg1 = str.getBytes(StandardCharsets.UTF_8);
-    SM3Digest sm3 = new SM3Digest();
-    sm3.update(msg1, 0, msg1.length);
-    sm3.doFinal(md, 0);
-    return new String(Hex.encode(md), StandardCharsets.UTF_8);
-  }
-
-  public static void main(String[] args) {
-    String s = SM3Encrypt("中文123");
-    System.out.println(s);
-  }
-}

+ 0 - 344
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4.java

@@ -1,344 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-public class SM4
-{
-	public static final int SM4_ENCRYPT = 1;
-
-	public static final int SM4_DECRYPT = 0;
-
-	private long GET_ULONG_BE(byte[] b, int i)
-	{
-		long n = (long)(b[i] & 0xff) << 24 | (long)((b[i + 1] & 0xff) << 16) | (long)((b[i + 2] & 0xff) << 8) | (long)(b[i + 3] & 0xff) & 0xffffffffL;
-		return n;
-	}
-
-	private void PUT_ULONG_BE(long n, byte[] b, int i)
-	{
-		b[i] = (byte)(int)(0xFF & n >> 24);
-        b[i + 1] = (byte)(int)(0xFF & n >> 16);
-        b[i + 2] = (byte)(int)(0xFF & n >> 8);
-        b[i + 3] = (byte)(int)(0xFF & n);
-	}
-
-	private long SHL(long x, int n)
-	{
-		return (x & 0xFFFFFFFF) << n;
-	}
-
-	private long ROTL(long x, int n)
-	{
-		return SHL(x, n) | x >> (32 - n);
-	}
-
-	private void SWAP(long[] sk, int i)
-	{
-		long t = sk[i];
-		sk[i] = sk[(31 - i)];
-		sk[(31 - i)] = t;
-	}
-
-	public static final byte[] SboxTable = { (byte) 0xd6, (byte) 0x90, (byte) 0xe9, (byte) 0xfe,
-		(byte) 0xcc, (byte) 0xe1, 0x3d, (byte) 0xb7, 0x16, (byte) 0xb6,
-		0x14, (byte) 0xc2, 0x28, (byte) 0xfb, 0x2c, 0x05, 0x2b, 0x67,
-		(byte) 0x9a, 0x76, 0x2a, (byte) 0xbe, 0x04, (byte) 0xc3,
-		(byte) 0xaa, 0x44, 0x13, 0x26, 0x49, (byte) 0x86, 0x06,
-		(byte) 0x99, (byte) 0x9c, 0x42, 0x50, (byte) 0xf4, (byte) 0x91,
-		(byte) 0xef, (byte) 0x98, 0x7a, 0x33, 0x54, 0x0b, 0x43,
-		(byte) 0xed, (byte) 0xcf, (byte) 0xac, 0x62, (byte) 0xe4,
-		(byte) 0xb3, 0x1c, (byte) 0xa9, (byte) 0xc9, 0x08, (byte) 0xe8,
-		(byte) 0x95, (byte) 0x80, (byte) 0xdf, (byte) 0x94, (byte) 0xfa,
-		0x75, (byte) 0x8f, 0x3f, (byte) 0xa6, 0x47, 0x07, (byte) 0xa7,
-		(byte) 0xfc, (byte) 0xf3, 0x73, 0x17, (byte) 0xba, (byte) 0x83,
-		0x59, 0x3c, 0x19, (byte) 0xe6, (byte) 0x85, 0x4f, (byte) 0xa8,
-		0x68, 0x6b, (byte) 0x81, (byte) 0xb2, 0x71, 0x64, (byte) 0xda,
-		(byte) 0x8b, (byte) 0xf8, (byte) 0xeb, 0x0f, 0x4b, 0x70, 0x56,
-		(byte) 0x9d, 0x35, 0x1e, 0x24, 0x0e, 0x5e, 0x63, 0x58, (byte) 0xd1,
-		(byte) 0xa2, 0x25, 0x22, 0x7c, 0x3b, 0x01, 0x21, 0x78, (byte) 0x87,
-		(byte) 0xd4, 0x00, 0x46, 0x57, (byte) 0x9f, (byte) 0xd3, 0x27,
-		0x52, 0x4c, 0x36, 0x02, (byte) 0xe7, (byte) 0xa0, (byte) 0xc4,
-		(byte) 0xc8, (byte) 0x9e, (byte) 0xea, (byte) 0xbf, (byte) 0x8a,
-		(byte) 0xd2, 0x40, (byte) 0xc7, 0x38, (byte) 0xb5, (byte) 0xa3,
-		(byte) 0xf7, (byte) 0xf2, (byte) 0xce, (byte) 0xf9, 0x61, 0x15,
-		(byte) 0xa1, (byte) 0xe0, (byte) 0xae, 0x5d, (byte) 0xa4,
-		(byte) 0x9b, 0x34, 0x1a, 0x55, (byte) 0xad, (byte) 0x93, 0x32,
-		0x30, (byte) 0xf5, (byte) 0x8c, (byte) 0xb1, (byte) 0xe3, 0x1d,
-		(byte) 0xf6, (byte) 0xe2, 0x2e, (byte) 0x82, 0x66, (byte) 0xca,
-		0x60, (byte) 0xc0, 0x29, 0x23, (byte) 0xab, 0x0d, 0x53, 0x4e, 0x6f,
-		(byte) 0xd5, (byte) 0xdb, 0x37, 0x45, (byte) 0xde, (byte) 0xfd,
-		(byte) 0x8e, 0x2f, 0x03, (byte) 0xff, 0x6a, 0x72, 0x6d, 0x6c, 0x5b,
-		0x51, (byte) 0x8d, 0x1b, (byte) 0xaf, (byte) 0x92, (byte) 0xbb,
-		(byte) 0xdd, (byte) 0xbc, 0x7f, 0x11, (byte) 0xd9, 0x5c, 0x41,
-		0x1f, 0x10, 0x5a, (byte) 0xd8, 0x0a, (byte) 0xc1, 0x31,
-		(byte) 0x88, (byte) 0xa5, (byte) 0xcd, 0x7b, (byte) 0xbd, 0x2d,
-		0x74, (byte) 0xd0, 0x12, (byte) 0xb8, (byte) 0xe5, (byte) 0xb4,
-		(byte) 0xb0, (byte) 0x89, 0x69, (byte) 0x97, 0x4a, 0x0c,
-		(byte) 0x96, 0x77, 0x7e, 0x65, (byte) 0xb9, (byte) 0xf1, 0x09,
-		(byte) 0xc5, 0x6e, (byte) 0xc6, (byte) 0x84, 0x18, (byte) 0xf0,
-		0x7d, (byte) 0xec, 0x3a, (byte) 0xdc, 0x4d, 0x20, 0x79,
-		(byte) 0xee, 0x5f, 0x3e, (byte) 0xd7, (byte) 0xcb, 0x39, 0x48 };
-
-	public static final int[] FK = { 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc };
-
-	public static final int[] CK = { 0x00070e15,0x1c232a31,0x383f464d,0x545b6269,
-		0x70777e85,0x8c939aa1,0xa8afb6bd,0xc4cbd2d9,
-		0xe0e7eef5,0xfc030a11,0x181f262d,0x343b4249,
-		0x50575e65,0x6c737a81,0x888f969d,0xa4abb2b9,
-		0xc0c7ced5,0xdce3eaf1,0xf8ff060d,0x141b2229,
-		0x30373e45,0x4c535a61,0x686f767d,0x848b9299,
-		0xa0a7aeb5,0xbcc3cad1,0xd8dfe6ed,0xf4fb0209,
-		0x10171e25,0x2c333a41,0x484f565d,0x646b7279 };
-
-	private byte sm4Sbox(byte inch)
-	{
-		int i = inch & 0xFF;
-		byte retVal = SboxTable[i];
-		return retVal;
-	}
-
-	private long sm4Lt(long ka)
-	{
-		long bb = 0L;
-		long c = 0L;
-		byte[] a = new byte[4];
-		byte[] b = new byte[4];
-		PUT_ULONG_BE(ka, a, 0);
-		b[0] = sm4Sbox(a[0]);
-		b[1] = sm4Sbox(a[1]);
-		b[2] = sm4Sbox(a[2]);
-		b[3] = sm4Sbox(a[3]);
-		bb = GET_ULONG_BE(b, 0);
-		c = bb ^ ROTL(bb, 2) ^ ROTL(bb, 10) ^ ROTL(bb, 18) ^ ROTL(bb, 24);
-		return c;
-	}
-
-	private long sm4F(long x0, long x1, long x2, long x3, long rk)
-	{
-		return x0 ^ sm4Lt(x1 ^ x2 ^ x3 ^ rk);
-	}
-
-	private long sm4CalciRK(long ka)
-	{
-		long bb = 0L;
-		long rk = 0L;
-		byte[] a = new byte[4];
-		byte[] b = new byte[4];
-		PUT_ULONG_BE(ka, a, 0);
-		b[0] = sm4Sbox(a[0]);
-		b[1] = sm4Sbox(a[1]);
-		b[2] = sm4Sbox(a[2]);
-		b[3] = sm4Sbox(a[3]);
-		bb = GET_ULONG_BE(b, 0);
-		rk = bb ^ ROTL(bb, 13) ^ ROTL(bb, 23);
-		return rk;
-	}
-
-	private void sm4_setkey(long[] SK, byte[] key)
-	{
-		long[] MK = new long[4];
-		long[] k = new long[36];
-		int i = 0;
-		MK[0] = GET_ULONG_BE(key, 0);
-		MK[1] = GET_ULONG_BE(key, 4);
-		MK[2] = GET_ULONG_BE(key, 8);
-		MK[3] = GET_ULONG_BE(key, 12);
-		k[0] = MK[0] ^ (long) FK[0];
-		k[1] = MK[1] ^ (long) FK[1];
-		k[2] = MK[2] ^ (long) FK[2];
-		k[3] = MK[3] ^ (long) FK[3];
-		for (; i < 32; i++)
-		{
-			k[(i + 4)] = (k[i] ^ sm4CalciRK(k[(i + 1)] ^ k[(i + 2)] ^ k[(i + 3)] ^ (long) CK[i]));
-			SK[i] = k[(i + 4)];
-		}
-	}
-
-	private void sm4_one_round(long[] sk, byte[] input, byte[] output)
-	{
-		int i = 0;
-		long[] ulbuf = new long[36];
-		ulbuf[0] = GET_ULONG_BE(input, 0);
-		ulbuf[1] = GET_ULONG_BE(input, 4);
-		ulbuf[2] = GET_ULONG_BE(input, 8);
-		ulbuf[3] = GET_ULONG_BE(input, 12);
-		while (i < 32)
-		{
-			ulbuf[(i + 4)] = sm4F(ulbuf[i], ulbuf[(i + 1)], ulbuf[(i + 2)], ulbuf[(i + 3)], sk[i]);
-			i++;
-		}
-		PUT_ULONG_BE(ulbuf[35], output, 0);
-		PUT_ULONG_BE(ulbuf[34], output, 4);
-		PUT_ULONG_BE(ulbuf[33], output, 8);
-		PUT_ULONG_BE(ulbuf[32], output, 12);
-	}
-
-	private byte[] padding(byte[] input, int mode)
-	{
-		if (input == null)
-		{
-			return null;
-		}
-
-		byte[] ret = (byte[]) null;
-		if (mode == SM4_ENCRYPT)
-		{
-			int p = 16 - input.length % 16;
-			ret = new byte[input.length + p];
-			System.arraycopy(input, 0, ret, 0, input.length);
-			for (int i = 0; i < p; i++)
-			{
-				ret[input.length + i] = (byte) p;
-			}
-		}
-		else
-		{
-			int p = input[input.length - 1];
-			ret = new byte[input.length - p];
-			System.arraycopy(input, 0, ret, 0, input.length - p);
-		}
-		return ret;
-	}
-
-	public void sm4_setkey_enc(SM4Context ctx, byte[] key) throws Exception
-	{
-		if (ctx == null)
-		{
-			throw new Exception("ctx is null!");
-		}
-
-		if (key == null || key.length != 16)
-		{
-			throw new Exception("key error!");
-		}
-
-		ctx.mode = SM4_ENCRYPT;
-		sm4_setkey(ctx.sk, key);
-	}
-
-	public void sm4_setkey_dec(SM4Context ctx, byte[] key) throws Exception
-	{
-		if (ctx == null)
-		{
-			throw new Exception("ctx is null!");
-		}
-
-		if (key == null || key.length != 16)
-		{
-			throw new Exception("key error!");
-		}
-
-		int i = 0;
-		ctx.mode = SM4_DECRYPT;
-		sm4_setkey(ctx.sk, key);
-		for (i = 0; i < 16; i++)
-		{
-			SWAP(ctx.sk, i);
-		}
-	}
-
-	public byte[] sm4_crypt_ecb(SM4Context ctx, byte[] input) throws Exception
-	{
-		if (input == null)
-		{
-			throw new Exception("input is null!");
-		}
-
-		if ((ctx.isPadding) && (ctx.mode == SM4_ENCRYPT))
-		{
-			input = padding(input, SM4_ENCRYPT);
-		}
-
-		int length = input.length;
-		ByteArrayInputStream bins = new ByteArrayInputStream(input);
-		ByteArrayOutputStream bous = new ByteArrayOutputStream();
-		for(; length > 0; length -= 16)
-		{
-			byte[] in = new byte[16];
-			byte[] out = new byte[16];
-			bins.read(in);
-			sm4_one_round(ctx.sk, in, out);
-			bous.write(out);
-		}
-
-		byte[] output = bous.toByteArray();
-		if (ctx.isPadding && ctx.mode == SM4_DECRYPT)
-		{
-			output = padding(output, SM4_DECRYPT);
-		}
-		bins.close();
-		bous.close();
-		return output;
-	}
-
-	public byte[] sm4_crypt_cbc(SM4Context ctx, byte[] iv, byte[] input) throws Exception
-	{
-		if (iv == null || iv.length != 16)
-		{
-			throw new Exception("iv error!");
-		}
-
-		if (input == null)
-		{
-			throw new Exception("input is null!");
-		}
-
-		if (ctx.isPadding && ctx.mode == SM4_ENCRYPT)
-		{
-			input = padding(input, SM4_ENCRYPT);
-		}
-
-		int i = 0;
-		int length = input.length;
-		ByteArrayInputStream bins = new ByteArrayInputStream(input);
-		ByteArrayOutputStream bous = new ByteArrayOutputStream();
-		if (ctx.mode == SM4_ENCRYPT)
-		{
-			for(; length > 0; length -= 16)
-			{
-				byte[] in = new byte[16];
-				byte[] out = new byte[16];
-				byte[] out1 = new byte[16];
-
-				bins.read(in);
-				for (i = 0; i < 16; i++)
-				{
-					out[i] = ((byte) (in[i] ^ iv[i]));
-				}
-				sm4_one_round(ctx.sk, out, out1);
-				System.arraycopy(out1, 0, iv, 0, 16);
-				bous.write(out1);
-			}
-		}
-		else
-		{
-			byte[] temp = new byte[16];
-			for(; length > 0; length -= 16)
-			{
-				byte[] in = new byte[16];
-				byte[] out = new byte[16];
-				byte[] out1 = new byte[16];
-
-				bins.read(in);
-				System.arraycopy(in, 0, temp, 0, 16);
-				sm4_one_round(ctx.sk, in, out);
-				for (i = 0; i < 16; i++)
-				{
-					out1[i] = ((byte) (out[i] ^ iv[i]));
-				}
-				System.arraycopy(temp, 0, iv, 0, 16);
-				bous.write(out1);
-			}
-		}
-
-		byte[] output = bous.toByteArray();
-		if (ctx.isPadding && ctx.mode == SM4_DECRYPT)
-		{
-			output = padding(output, SM4_DECRYPT);
-		}
-		bins.close();
-		bous.close();
-		return output;
-	}
-}

+ 0 - 17
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4Context.java

@@ -1,17 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-public class SM4Context
-{
-	public int mode;
-
-	public long[] sk;
-
-	public boolean isPadding;
-
-	public SM4Context()
-	{
-		this.mode = 1;
-		this.isPadding = true;
-		this.sk = new long[32];
-	}
-}

+ 0 - 167
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/SM4Utils.java

@@ -1,167 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-import org.apache.commons.codec.binary.Base64;
-
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-public class SM4Utils
-{
-	public String iv = "";
-
-	private boolean hexString = false;
-	public static Pattern p = Pattern.compile("\\s*|\t|\r|\n");
-	public SM4Utils()
-	{
-	}
-
-	public static String encryptData_ECB(String plainText, String secretKey)
-	{
-		try
-		{
-			SM4Context ctx = new SM4Context();
-			ctx.isPadding = true;
-			ctx.mode = SM4.SM4_ENCRYPT;
-			byte[] keyBytes;
-			keyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
-			SM4 sm4 = new SM4();
-			sm4.sm4_setkey_enc(ctx, keyBytes);
-			byte[] encrypted = sm4.sm4_crypt_ecb(ctx, plainText.getBytes(StandardCharsets.UTF_8));
-			String cipherText = Base64.encodeBase64String(encrypted);
-			if (cipherText != null && cipherText.trim().length() > 0)
-			{
-				Matcher m = p.matcher(cipherText);
-				cipherText = m.replaceAll("");
-			}
-			return cipherText;
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	public static  String decryptData_ECB(String cipherText, String secretKey)
-	{
-		try
-		{
-			SM4Context ctx = new SM4Context();
-			ctx.isPadding = true;
-			ctx.mode = SM4.SM4_DECRYPT;
-			byte[] keyBytes;
-			keyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
-			SM4 sm4 = new SM4();
-			sm4.sm4_setkey_dec(ctx, keyBytes);
-			byte[] decrypted = sm4.sm4_crypt_ecb(ctx, Base64.decodeBase64(cipherText));
-			return new String(decrypted, StandardCharsets.UTF_8);
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	public String encryptData_CBC(String plainText, String secretKey)
-	{
-		try
-		{
-			SM4Context ctx = new SM4Context();
-			ctx.isPadding = true;
-			ctx.mode = SM4.SM4_ENCRYPT;
-
-			byte[] keyBytes;
-			byte[] ivBytes;
-			if (hexString)
-			{
-				keyBytes = Util.hexStringToBytes(secretKey);
-				ivBytes = Util.hexStringToBytes(iv);
-			}
-			else
-			{
-				keyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
-				ivBytes = iv.getBytes(StandardCharsets.UTF_8);
-			}
-
-			SM4 sm4 = new SM4();
-			sm4.sm4_setkey_enc(ctx, keyBytes);
-			byte[] encrypted = sm4.sm4_crypt_cbc(ctx, ivBytes, plainText.getBytes(StandardCharsets.UTF_8));
-			String cipherText = Base64.encodeBase64String(encrypted);
-			if (cipherText != null && cipherText.trim().length() > 0)
-			{
-				Matcher m = p.matcher(cipherText);
-				cipherText = m.replaceAll("");
-			}
-			return cipherText;
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	public String decryptData_CBC(String cipherText, String secretKey)
-	{
-		try
-		{
-			SM4Context ctx = new SM4Context();
-			ctx.isPadding = true;
-			ctx.mode = SM4.SM4_DECRYPT;
-
-			byte[] keyBytes;
-			byte[] ivBytes;
-			if (hexString)
-			{
-				keyBytes = Util.hexStringToBytes(secretKey);
-				ivBytes = Util.hexStringToBytes(iv);
-			}
-			else
-			{
-				keyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
-				ivBytes = iv.getBytes(StandardCharsets.UTF_8);
-			}
-
-			SM4 sm4 = new SM4();
-			sm4.sm4_setkey_dec(ctx, keyBytes);
-			byte[] decrypted = sm4.sm4_crypt_cbc(ctx, ivBytes, Base64.decodeBase64(cipherText));
-			return new String(decrypted, StandardCharsets.UTF_8);
-		}
-		catch (Exception e)
-		{
-			e.printStackTrace();
-			return null;
-		}
-	}
-
-	public static void main(String[] args) throws IOException
-	{
-		String plainText = "abcd";
-
-		SM4Utils sm4 = new SM4Utils();
-		sm4.hexString = false;
-
-		System.out.println("ECBģʽ");
-		String cipherText = sm4.encryptData_ECB(plainText,"4370780c9a8c43e5");
-		System.out.println("加密后: " + cipherText);
-		System.out.println("");
-
-		plainText = sm4.decryptData_ECB(cipherText,"4370780c9a8c43e5");
-		System.out.println("解密后: " + plainText);
-		System.out.println("");
-
-		System.out.println("大");
-		sm4.iv = "UISwD9fW6cFh9SNS";
-		cipherText = sm4.encryptData_CBC(plainText,"4370780c9a8c43e5");
-		System.out.println("加密后: " + cipherText);
-		System.out.println("");
-
-		plainText = sm4.decryptData_CBC(cipherText,"4370780c9a8c43e5");
-		System.out.println("解密后: " + plainText);
-	}
-
-}

+ 0 - 43
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/Sm2KeyPair.java

@@ -1,43 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-
-
-public class Sm2KeyPair {
-    private byte[] priKey;
-    private byte[] pubKey;
-    public Sm2KeyPair(byte[] priKey, byte[] pubKey){
-        this.priKey = priKey;
-        this.pubKey = pubKey;
-    }
-
-    public byte[] getPriKey() {
-        return this.priKey;
-    }
-
-    public void setPriKey(byte[] priKey) {
-        this.priKey = priKey;
-    }
-
-    public byte[] getPubKey() {
-        return this.pubKey;
-    }
-
-    public void setPubKey(byte[] pubKey) {
-        this.pubKey = pubKey;
-    }
-
-    public String getPriKeyStr(){
-        return Util.getHexString(this.priKey);
-    }
-    public String getPubKeyStr() {
-        return Util.getHexString(this.pubKey);
-    }
-
-    @Override
-    public String toString() {
-        return "Sm2KeyPair{" +
-                "priKey=" + this.getPriKeyStr() +
-                ", pubKey=" + this.getPubKeyStr() +
-                '}';
-    }
-}

+ 0 - 662
hazard-stateSecrets/src/main/java/com/ozs/stateSecrets/utils/Util.java

@@ -1,662 +0,0 @@
-package com.ozs.stateSecrets.utils;
-
-import java.math.BigInteger;
-
-public class Util
-{
-	/**
-	 * 整形转换成网络传输的字节流(字节数组)型数据
-	 *
-	 * @param num 一个整型数据
-	 * @return 4个字节的自己数组
-	 */
-	public static byte[] intToBytes(int num)
-	{
-		byte[] bytes = new byte[4];
-		bytes[0] = (byte) (0xff & (num >> 0));
-		bytes[1] = (byte) (0xff & (num >> 8));
-		bytes[2] = (byte) (0xff & (num >> 16));
-		bytes[3] = (byte) (0xff & (num >> 24));
-		return bytes;
-	}
-
-	/**
-	 * 四个字节的字节数据转换成一个整形数据
-	 *
-	 * @param bytes 4个字节的字节数组
-	 * @return 一个整型数据
-	 */
-	public static int byteToInt(byte[] bytes)
-	{
-		int num = 0;
-		int temp;
-		temp = (0x000000ff & (bytes[0])) << 0;
-		num = num | temp;
-		temp = (0x000000ff & (bytes[1])) << 8;
-		num = num | temp;
-		temp = (0x000000ff & (bytes[2])) << 16;
-		num = num | temp;
-		temp = (0x000000ff & (bytes[3])) << 24;
-		num = num | temp;
-		return num;
-	}
-
-	/**
-	 * 长整形转换成网络传输的字节流(字节数组)型数据
-	 *
-	 * @param num 一个长整型数据
-	 * @return 4个字节的自己数组
-	 */
-	public static byte[] longToBytes(long num)
-	{
-		byte[] bytes = new byte[8];
-		for (int i = 0; i < 8; i++)
-		{
-			bytes[i] = (byte) (0xff & (num >> (i * 8)));
-		}
-
-		return bytes;
-	}
-
-	/**
-	 * 大数字转换字节流(字节数组)型数据
-	 *
-	 * @param n
-	 * @return
-	 */
-	public static byte[] byteConvert32Bytes(BigInteger n)
-	{
-		byte tmpd[] = (byte[])null;
-        if(n == null)
-        {
-        	return null;
-        }
-
-        if(n.toByteArray().length == 33)
-        {
-            tmpd = new byte[32];
-            System.arraycopy(n.toByteArray(), 1, tmpd, 0, 32);
-        }
-        else if(n.toByteArray().length == 32)
-        {
-            tmpd = n.toByteArray();
-        }
-        else
-        {
-            tmpd = new byte[32];
-            for(int i = 0; i < 32 - n.toByteArray().length; i++)
-            {
-            	tmpd[i] = 0;
-            }
-            System.arraycopy(n.toByteArray(), 0, tmpd, 32 - n.toByteArray().length, n.toByteArray().length);
-        }
-        return tmpd;
-	}
-
-	/**
-	 * 换字节流(字节数组)型数据转大数字
-	 *
-	 * @param b
-	 * @return
-	 */
-	public static BigInteger byteConvertInteger(byte[] b)
-	{
-	    if (b[0] < 0)
-	    {
-	    	byte[] temp = new byte[b.length + 1];
-	    	temp[0] = 0;
-	    	System.arraycopy(b, 0, temp, 1, b.length);
-	    	return new BigInteger(temp);
-	    }
-	    return new BigInteger(b);
-	}
-
-	/**
-	 * 根据字节数组获得值(十六进制数字)
-	 *
-	 * @param bytes
-	 * @return
-	 */
-	public static String getHexString(byte[] bytes)
-	{
-		return getHexString(bytes, true);
-	}
-
-	/**
-	 * 根据字节数组获得值(十六进制数字)
-	 *
-	 * @param bytes
-	 * @param upperCase
-	 * @return
-	 */
-	public static String getHexString(byte[] bytes, boolean upperCase)
-	{
-		String ret = "";
-		for (int i = 0; i < bytes.length; i++)
-		{
-			ret += Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1);
-		}
-		return upperCase ? ret.toUpperCase() : ret;
-	}
-
-	/**
-	 * 打印十六进制字符串
-	 *
-	 * @param bytes
-	 */
-	public static void printHexString(byte[] bytes)
-	{
-		for (int i = 0; i < bytes.length; i++)
-		{
-			String hex = Integer.toHexString(bytes[i] & 0xFF);
-			if (hex.length() == 1)
-			{
-				hex = '0' + hex;
-			}
-			System.out.print("0x" + hex.toUpperCase() + ",");
-		}
-		System.out.println("");
-	}
-
-	/**
-	 * Convert hex string to byte[]
-	 *
-	 * @param hexString
-	 *            the hex string
-	 * @return byte[]
-	 */
-	public static byte[] hexStringToBytes(String hexString)
-	{
-		if (hexString == null || hexString.equals(""))
-		{
-			return null;
-		}
-
-		hexString = hexString.toUpperCase();
-		int length = hexString.length() / 2;
-		char[] hexChars = hexString.toCharArray();
-		byte[] d = new byte[length];
-		for (int i = 0; i < length; i++)
-		{
-			int pos = i * 2;
-			d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
-		}
-		return d;
-	}
-
-	/**
-	 * Convert char to byte
-	 *
-	 * @param c
-	 *            char
-	 * @return byte
-	 */
-	public static byte charToByte(char c)
-	{
-		return (byte) "0123456789ABCDEF".indexOf(c);
-	}
-
-	/**
-     * 用于建立十六进制字符的输出的小写字符数组
-     */
-    private static final char[] DIGITS_LOWER = {'0', '1', '2', '3', '4', '5',
-            '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-
-    /**
-     * 用于建立十六进制字符的输出的大写字符数组
-     */
-    private static final char[] DIGITS_UPPER = {'0', '1', '2', '3', '4', '5',
-            '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
-    /**
-     * 将字节数组转换为十六进制字符数组
-     *
-     * @param data byte[]
-     * @return 十六进制char[]
-     */
-    public static char[] encodeHex(byte[] data) {
-        return encodeHex(data, true);
-    }
-
-    /**
-     * 将字节数组转换为十六进制字符数组
-     *
-     * @param data        byte[]
-     * @param toLowerCase <code>true</code> 传换成小写格式 , <code>false</code> 传换成大写格式
-     * @return 十六进制char[]
-     */
-    public static char[] encodeHex(byte[] data, boolean toLowerCase) {
-        return encodeHex(data, toLowerCase ? DIGITS_LOWER : DIGITS_UPPER);
-    }
-
-    /**
-     * 将字节数组转换为十六进制字符数组
-     *
-     * @param data     byte[]
-     * @param toDigits 用于控制输出的char[]
-     * @return 十六进制char[]
-     */
-    protected static char[] encodeHex(byte[] data, char[] toDigits) {
-        int l = data.length;
-        char[] out = new char[l << 1];
-        // two characters form the hex value.
-        for (int i = 0, j = 0; i < l; i++) {
-            out[j++] = toDigits[(0xF0 & data[i]) >>> 4];
-            out[j++] = toDigits[0x0F & data[i]];
-        }
-        return out;
-    }
-
-    /**
-     * 将字节数组转换为十六进制字符串
-     *
-     * @param data byte[]
-     * @return 十六进制String
-     */
-    public static String encodeHexString(byte[] data) {
-        return encodeHexString(data, true);
-    }
-
-    /**
-     * 将字节数组转换为十六进制字符串
-     *
-     * @param data        byte[]
-     * @param toLowerCase <code>true</code> 传换成小写格式 , <code>false</code> 传换成大写格式
-     * @return 十六进制String
-     */
-    public static String encodeHexString(byte[] data, boolean toLowerCase) {
-        return encodeHexString(data, toLowerCase ? DIGITS_LOWER : DIGITS_UPPER);
-    }
-
-    /**
-     * 将字节数组转换为十六进制字符串
-     *
-     * @param data     byte[]
-     * @param toDigits 用于控制输出的char[]
-     * @return 十六进制String
-     */
-    protected static String encodeHexString(byte[] data, char[] toDigits) {
-        return new String(encodeHex(data, toDigits));
-    }
-
-    /**
-     * 将十六进制字符数组转换为字节数组
-     *
-     * @param data 十六进制char[]
-     * @return byte[]
-     * @throws RuntimeException 如果源十六进制字符数组是一个奇怪的长度,将抛出运行时异常
-     */
-    public static byte[] decodeHex(char[] data) {
-        int len = data.length;
-
-        if ((len & 0x01) != 0) {
-            throw new RuntimeException("Odd number of characters.");
-        }
-
-        byte[] out = new byte[len >> 1];
-
-        // two characters form the hex value.
-        for (int i = 0, j = 0; j < len; i++) {
-            int f = toDigit(data[j], j) << 4;
-            j++;
-            f = f | toDigit(data[j], j);
-            j++;
-            out[i] = (byte) (f & 0xFF);
-        }
-
-        return out;
-    }
-
-    /**
-     * 将十六进制字符转换成一个整数
-     *
-     * @param ch    十六进制char
-     * @param index 十六进制字符在字符数组中的位置
-     * @return 一个整数
-     * @throws RuntimeException 当ch不是一个合法的十六进制字符时,抛出运行时异常
-     */
-    protected static int toDigit(char ch, int index) {
-        int digit = Character.digit(ch, 16);
-        if (digit == -1) {
-            throw new RuntimeException("Illegal hexadecimal character " + ch
-                    + " at index " + index);
-        }
-        return digit;
-    }
-
-    /**
-     * 数字字符串转ASCII码字符串
-     *
-     * @param String
-     *            字符串
-     * @return ASCII字符串
-     */
-    public static String StringToAsciiString(String content) {
-        String result = "";
-        int max = content.length();
-        for (int i = 0; i < max; i++) {
-            char c = content.charAt(i);
-            String b = Integer.toHexString(c);
-            result = result + b;
-        }
-        return result;
-    }
-
-    /**
-     * 十六进制转字符串
-     *
-     * @param hexString
-     *            十六进制字符串
-     * @param encodeType
-     *            编码类型4:Unicode,2:普通编码
-     * @return 字符串
-     */
-    public static String hexStringToString(String hexString, int encodeType) {
-        String result = "";
-        int max = hexString.length() / encodeType;
-        for (int i = 0; i < max; i++) {
-            char c = (char) hexStringToAlgorism(hexString
-                    .substring(i * encodeType, (i + 1) * encodeType));
-            result += c;
-        }
-        return result;
-    }
-
-    /**
-     * 十六进制字符串装十进制
-     *
-     * @param hex
-     *            十六进制字符串
-     * @return 十进制数值
-     */
-    public static int hexStringToAlgorism(String hex) {
-        hex = hex.toUpperCase();
-        int max = hex.length();
-        int result = 0;
-        for (int i = max; i > 0; i--) {
-            char c = hex.charAt(i - 1);
-            int algorism = 0;
-            if (c >= '0' && c <= '9') {
-                algorism = c - '0';
-            } else {
-                algorism = c - 55;
-            }
-            result += Math.pow(16, max - i) * algorism;
-        }
-        return result;
-    }
-
-    /**
-     * 十六转二进制
-     *
-     * @param hex
-     *            十六进制字符串
-     * @return 二进制字符串
-     */
-    public static String hexStringToBinary(String hex) {
-        hex = hex.toUpperCase();
-        String result = "";
-        int max = hex.length();
-        for (int i = 0; i < max; i++) {
-            char c = hex.charAt(i);
-            switch (c) {
-            case '0':
-                result += "0000";
-                break;
-            case '1':
-                result += "0001";
-                break;
-            case '2':
-                result += "0010";
-                break;
-            case '3':
-                result += "0011";
-                break;
-            case '4':
-                result += "0100";
-                break;
-            case '5':
-                result += "0101";
-                break;
-            case '6':
-                result += "0110";
-                break;
-            case '7':
-                result += "0111";
-                break;
-            case '8':
-                result += "1000";
-                break;
-            case '9':
-                result += "1001";
-                break;
-            case 'A':
-                result += "1010";
-                break;
-            case 'B':
-                result += "1011";
-                break;
-            case 'C':
-                result += "1100";
-                break;
-            case 'D':
-                result += "1101";
-                break;
-            case 'E':
-                result += "1110";
-                break;
-            case 'F':
-                result += "1111";
-                break;
-            }
-        }
-        return result;
-    }
-
-    /**
-     * ASCII码字符串转数字字符串
-     *
-     * @param String
-     *            ASCII字符串
-     * @return 字符串
-     */
-    public static String AsciiStringToString(String content) {
-        String result = "";
-        int length = content.length() / 2;
-        for (int i = 0; i < length; i++) {
-            String c = content.substring(i * 2, i * 2 + 2);
-            int a = hexStringToAlgorism(c);
-            char b = (char) a;
-            String d = String.valueOf(b);
-            result += d;
-        }
-        return result;
-    }
-
-    /**
-     * 将十进制转换为指定长度的十六进制字符串
-     *
-     * @param algorism
-     *            int 十进制数字
-     * @param maxLength
-     *            int 转换后的十六进制字符串长度
-     * @return String 转换后的十六进制字符串
-     */
-    public static String algorismToHexString(int algorism, int maxLength) {
-        String result = "";
-        result = Integer.toHexString(algorism);
-
-        if (result.length() % 2 == 1) {
-            result = "0" + result;
-        }
-        return patchHexString(result.toUpperCase(), maxLength);
-    }
-
-    /**
-     * 字节数组转为普通字符串(ASCII对应的字符)
-     *
-     * @param bytearray
-     *            byte[]
-     * @return String
-     */
-    public static String byteToString(byte[] bytearray) {
-        String result = "";
-        char temp;
-
-        int length = bytearray.length;
-        for (int i = 0; i < length; i++) {
-            temp = (char) bytearray[i];
-            result += temp;
-        }
-        return result;
-    }
-
-    /**
-     * 二进制字符串转十进制
-     *
-     * @param binary
-     *            二进制字符串
-     * @return 十进制数值
-     */
-    public static int binaryToAlgorism(String binary) {
-        int max = binary.length();
-        int result = 0;
-        for (int i = max; i > 0; i--) {
-            char c = binary.charAt(i - 1);
-            int algorism = c - '0';
-            result += Math.pow(2, max - i) * algorism;
-        }
-        return result;
-    }
-
-    /**
-     * 十进制转换为十六进制字符串
-     *
-     * @param algorism
-     *            int 十进制的数字
-     * @return String 对应的十六进制字符串
-     */
-    public static String algorismToHEXString(int algorism) {
-        String result = "";
-        result = Integer.toHexString(algorism);
-
-        if (result.length() % 2 == 1) {
-            result = "0" + result;
-
-        }
-        result = result.toUpperCase();
-
-        return result;
-    }
-
-    /**
-     * HEX字符串前补0,主要用于长度位数不足。
-     *
-     * @param str
-     *            String 需要补充长度的十六进制字符串
-     * @param maxLength
-     *            int 补充后十六进制字符串的长度
-     * @return 补充结果
-     */
-    static public String patchHexString(String str, int maxLength) {
-        String temp = "";
-        for (int i = 0; i < maxLength - str.length(); i++) {
-            temp = "0" + temp;
-        }
-        str = (temp + str).substring(0, maxLength);
-        return str;
-    }
-
-    /**
-     * 将一个字符串转换为int
-     *
-     * @param s
-     *            String 要转换的字符串
-     * @param defaultInt
-     *            int 如果出现异常,默认返回的数字
-     * @param radix
-     *            int 要转换的字符串是什么进制的,如16 8 10.
-     * @return int 转换后的数字
-     */
-    public static int parseToInt(String s, int defaultInt, int radix) {
-        int i = 0;
-        try {
-            i = Integer.parseInt(s, radix);
-        } catch (NumberFormatException ex) {
-            i = defaultInt;
-        }
-        return i;
-    }
-
-    /**
-     * 将一个十进制形式的数字字符串转换为int
-     *
-     * @param s
-     *            String 要转换的字符串
-     * @param defaultInt
-     *            int 如果出现异常,默认返回的数字
-     * @return int 转换后的数字
-     */
-    public static int parseToInt(String s, int defaultInt) {
-        int i = 0;
-        try {
-            i = Integer.parseInt(s);
-        } catch (NumberFormatException ex) {
-            i = defaultInt;
-        }
-        return i;
-    }
-
-    /**
-     * 十六进制串转化为byte数组
-     *
-     * @return the array of byte
-     */
-    public static byte[] hexToByte(String hex)
-            throws IllegalArgumentException {
-        if (hex.length() % 2 != 0) {
-            throw new IllegalArgumentException();
-        }
-        char[] arr = hex.toCharArray();
-        byte[] b = new byte[hex.length() / 2];
-        for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) {
-            String swap = "" + arr[i++] + arr[i];
-            int byteint = Integer.parseInt(swap, 16) & 0xFF;
-            b[j] = new Integer(byteint).byteValue();
-        }
-        return b;
-    }
-
-    /**
-     * 字节数组转换为十六进制字符串
-     *
-     * @param b
-     *            byte[] 需要转换的字节数组
-     * @return String 十六进制字符串
-     */
-    public static String byteToHex(byte b[]) {
-        if (b == null) {
-            throw new IllegalArgumentException(
-                    "Argument b ( byte array ) is null! ");
-        }
-        String hs = "";
-        String stmp = "";
-        for (int n = 0; n < b.length; n++) {
-            stmp = Integer.toHexString(b[n] & 0xff);
-            if (stmp.length() == 1) {
-                hs = hs + "0" + stmp;
-            } else {
-                hs = hs + stmp;
-            }
-        }
-        return hs.toUpperCase();
-    }
-
-    public static byte[] subByte(byte[] input, int startIndex, int length) {
-		byte[] bt = new byte[length];
-		for (int i = 0; i < length; i++) {
-			bt[i] = input[i + startIndex];
-		}
-		return bt;
-    }
-}

+ 0 - 1
pom.xml

@@ -73,7 +73,6 @@
         <module>hazard-admin</module>
         <module>business-service</module>
         <module>hazard-sdk</module>
-        <module>hazard-stateSecrets</module>
     </modules>