From 1b40800b8395a27f7a278f7934a340ed0597ac22 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 10 Dec 2024 10:36:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=8E=E9=99=A9=E6=97=B6=E6=AE=B5=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/SensitiveInfoSerialize.java | 56 ++++ .../common/core/annotation/Sensitive.java | 19 ++ .../common/core/enums/SensitizedType.java | 63 +++++ .../common/core/utils/SensitizedUtil.java | 252 ++++++++++++++++++ .../controller/RiskTimeController.java | 37 +++ .../supplement/domain/dto/ParamsDto.java | 4 + .../supplement/domain/vo/ProVioVo.java | 3 + .../domain/vo/RiskRectDetailVo.java | 3 + .../supplement/domain/vo/RiskRectVo.java | 3 + .../supplement/domain/vo/RiskTimeVo.java | 39 +++ .../supplement/mapper/RiskTimeMapper.java | 26 ++ .../supplement/service/RiskTimeService.java | 23 ++ .../service/impl/RiskRectServiceImpl.java | 4 - .../service/impl/RiskTimeServiceImpl.java | 52 ++++ .../mapper/supplement/RiskTimeMapper.xml | 34 +++ 15 files changed, 614 insertions(+), 4 deletions(-) create mode 100644 securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/SensitiveInfoSerialize.java create mode 100644 securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/annotation/Sensitive.java create mode 100644 securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/enums/SensitizedType.java create mode 100644 securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/utils/SensitizedUtil.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/controller/RiskTimeController.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskTimeVo.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/mapper/RiskTimeMapper.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/RiskTimeService.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskTimeServiceImpl.java create mode 100644 securityControl-modules/securityControl-proteam/src/main/resources/mapper/supplement/RiskTimeMapper.xml diff --git a/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/SensitiveInfoSerialize.java b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/SensitiveInfoSerialize.java new file mode 100644 index 0000000..eb74702 --- /dev/null +++ b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/SensitiveInfoSerialize.java @@ -0,0 +1,56 @@ +package com.securityControl.common.core; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.BeanProperty; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.ContextualSerializer; +import com.securityControl.common.core.annotation.Sensitive; +import com.securityControl.common.core.enums.SensitizedType; +import com.securityControl.common.core.utils.SensitizedUtil; + +import java.io.IOException; +import java.util.Objects; + +/** + * @className:SensitiveInfoSerialize + * @author:cwchen + * @date:2024-12-10-9:53 + * @version:1.0 + * @description: + */ +public class SensitiveInfoSerialize extends JsonSerializer implements ContextualSerializer { + private SensitizedType sensitizedType; + /** + * 步骤一 + * 方法来源于ContextualSerializer,获取属性上的注解属性,同时返回一个合适的序列化器 + */ + @Override + public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException { + // 获取自定义注解 + Sensitive annotation = beanProperty.getAnnotation(Sensitive.class); + // 注解不为空,且标注的字段为String + if(Objects.nonNull(annotation) && Objects.equals(String.class, beanProperty.getType().getRawClass())){ + this.sensitizedType = annotation.value(); + //自定义情况,返回本序列化器,将顺利进入到该类中的serialize方法中 + return this; + } + // 注解为空,字段不为String,寻找合适的序列化器进行处理 + return serializerProvider.findValueSerializer(beanProperty.getType(), beanProperty); + } + /** + * 步骤二 + * 方法来源于JsonSerializer:指定返回类型为String类型,serialize()将修改后的数据返回 + */ + @Override + public void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { + if(Objects.isNull(sensitizedType)){ + // 定义策略为空,返回原字符串 + jsonGenerator.writeString(str); + }else { + // 定义策略不为空,返回策略处理过的字符串 + jsonGenerator.writeString(SensitizedUtil.desensitized(str,sensitizedType)); + } + } +} diff --git a/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/annotation/Sensitive.java b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/annotation/Sensitive.java new file mode 100644 index 0000000..1b8a1d0 --- /dev/null +++ b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/annotation/Sensitive.java @@ -0,0 +1,19 @@ +package com.securityControl.common.core.annotation; + +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.securityControl.common.core.SensitiveInfoSerialize; +import com.securityControl.common.core.enums.SensitizedType; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) //作用于字段上 +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotationsInside // 表示自定义自己的注解Sensitive +@JsonSerialize(using = SensitiveInfoSerialize.class) // 该注解使用序列化的方式 +public @interface Sensitive { + SensitizedType value(); +} \ No newline at end of file diff --git a/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/enums/SensitizedType.java b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/enums/SensitizedType.java new file mode 100644 index 0000000..58df832 --- /dev/null +++ b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/enums/SensitizedType.java @@ -0,0 +1,63 @@ +package com.securityControl.common.core.enums; + +/** + * @className:SensitizedType + * @author:cwchen + * @date:2024-12-10-9:52 + * @version:1.0 + * @description: 脱敏字段类型枚举 + */ +public enum SensitizedType { + /** + * 用户id + */ + USER_ID, + /** + * 中文名 + */ + CHINESE_NAME, + /** + * 身份证号 + */ + ID_CARD, + /** + * 座机号 + */ + FIXED_PHONE, + /** + * 手机号 + */ + MOBILE_PHONE, + /** + * 地址 + */ + ADDRESS, + /** + * 电子邮件 + */ + EMAIL, + /** + * 密码 + */ + PASSWORD, + /** + * 中国大陆车牌,包含普通车辆、新能源车辆 + */ + CAR_LICENSE, + /** + * 银行卡 + */ + BANK_CARD, + /** + * IPv4地址 + */ + IPV4, + /** + * IPv6地址 + */ + IPV6, + /** + * 定义了一个first_mask的规则,只显示第一个字符。 + */ + FIRST_MASK +} diff --git a/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/utils/SensitizedUtil.java b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/utils/SensitizedUtil.java new file mode 100644 index 0000000..228fe34 --- /dev/null +++ b/securityControl-common/securityControl-common-core/src/main/java/com/securityControl/common/core/utils/SensitizedUtil.java @@ -0,0 +1,252 @@ +package com.securityControl.common.core.utils; +import cn.hutool.core.util.CharUtil; +import cn.hutool.core.util.StrUtil; +import com.securityControl.common.core.enums.SensitizedType; +/** + * @className:SensitizedUtil + * @author:cwchen + * @date:2024-12-10-9:57 + * @version:1.0 + * @description: + */ +public class SensitizedUtil { + public static String desensitized(CharSequence str, SensitizedType desensitizedType) { + if (StrUtil.isBlank(str)) { + return StrUtil.EMPTY; + } + String newStr = String.valueOf(str); + switch (desensitizedType) { + case USER_ID: + newStr = String.valueOf(userId()); + break; + case CHINESE_NAME: + newStr = chineseName(String.valueOf(str)); + break; + case ID_CARD: + newStr = idCardNum(String.valueOf(str), 3, 4); + break; + case FIXED_PHONE: + newStr = fixedPhone(String.valueOf(str)); + break; + case MOBILE_PHONE: + newStr = mobilePhone(String.valueOf(str)); + break; + case ADDRESS: + newStr = address(String.valueOf(str), 8); + break; + case EMAIL: + newStr = email(String.valueOf(str)); + break; + case PASSWORD: + newStr = password(String.valueOf(str)); + break; + case CAR_LICENSE: + newStr = carLicense(String.valueOf(str)); + break; + case BANK_CARD: + newStr = bankCard(String.valueOf(str)); + break; + case IPV4: + newStr = ipv4(String.valueOf(str)); + break; + case IPV6: + newStr = ipv6(String.valueOf(str)); + break; + case FIRST_MASK: + newStr = firstMask(String.valueOf(str)); + break; + default: + } + return newStr; + } + /** + * 【用户id】不对外提供userId + * + * @return 脱敏后的主键 + */ + public static Long userId() { + return 0L; + } + /** + * 定义了一个first_mask的规则,只显示第一个字符。
+ * 脱敏前:123456789;脱敏后:1********。 + * + * @param str 字符串 + * @return 脱敏后的字符串 + */ + public static String firstMask(String str) { + if (StrUtil.isBlank(str)) { + return StrUtil.EMPTY; + } + return StrUtil.hide(str, 1, str.length()); + } + /** + * 【中文姓名】只显示第一个汉字,其他隐藏为2个星号,比如:李** + * + * @param fullName 姓名 + * @return 脱敏后的姓名 + */ + public static String chineseName(String fullName) { + return firstMask(fullName); + } + /** + * 【身份证号】前1位 和后2位 + * + * @param idCardNum 身份证 + * @param front 保留:前面的front位数;从1开始 + * @param end 保留:后面的end位数;从1开始 + * @return 脱敏后的身份证 + */ + public static String idCardNum(String idCardNum, int front, int end) { + //身份证不能为空 + if (StrUtil.isBlank(idCardNum)) { + return StrUtil.EMPTY; + } + //需要截取的长度不能大于身份证号长度 + if ((front + end) > idCardNum.length()) { + return StrUtil.EMPTY; + } + //需要截取的不能小于0 + if (front < 0 || end < 0) { + return StrUtil.EMPTY; + } + return StrUtil.hide(idCardNum, front, idCardNum.length() - end); + } + /** + * 【固定电话 前四位,后两位 + * + * @param num 固定电话 + * @return 脱敏后的固定电话; + */ + public static String fixedPhone(String num) { + if (StrUtil.isBlank(num)) { + return StrUtil.EMPTY; + } + return StrUtil.hide(num, 4, num.length() - 2); + } + /** + * 【手机号码】前三位,后4位,其他隐藏,比如135****2210 + * + * @param num 移动电话; + * @return 脱敏后的移动电话; + */ + public static String mobilePhone(String num) { + if (StrUtil.isBlank(num)) { + return StrUtil.EMPTY; + } + return StrUtil.hide(num, 3, num.length() - 4); + } + /** + * 【地址】只显示到地区,不显示详细地址,比如:北京市海淀区**** + * + * @param address 家庭住址 + * @param sensitiveSize 敏感信息长度 + * @return 脱敏后的家庭地址 + */ + public static String address(String address, int sensitiveSize) { + if (StrUtil.isBlank(address)) { + return StrUtil.EMPTY; + } + int length = address.length(); + return StrUtil.hide(address, length - sensitiveSize, length); + } + /** + * 【电子邮箱】邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.com + * + * @param email 邮箱 + * @return 脱敏后的邮箱 + */ + public static String email(String email) { + if (StrUtil.isBlank(email)) { + return StrUtil.EMPTY; + } + int index = StrUtil.indexOf(email, '@'); + if (index <= 1) { + return email; + } + return StrUtil.hide(email, 1, index); + } + /** + * 【密码】密码的全部字符都用*代替,比如:****** + * + * @param password 密码 + * @return 脱敏后的密码 + */ + public static String password(String password) { + if (StrUtil.isBlank(password)) { + return StrUtil.EMPTY; + } + return StrUtil.repeat('*', password.length()); + } + /** + * 【中国车牌】车牌中间用*代替 + * eg1:null -》 "" + * eg1:"" -》 "" + * eg3:苏D40000 -》 苏D4***0 + * eg4:陕A12345D -》 陕A1****D + * eg5:京A123 -》 京A123 如果是错误的车牌,不处理 + * + * @param carLicense 完整的车牌号 + * @return 脱敏后的车牌 + */ + public static String carLicense(String carLicense) { + if (StrUtil.isBlank(carLicense)) { + return StrUtil.EMPTY; + } + // 普通车牌 + if (carLicense.length() == 7) { + carLicense = StrUtil.hide(carLicense, 3, 6); + } else if (carLicense.length() == 8) { + // 新能源车牌 + carLicense = StrUtil.hide(carLicense, 3, 7); + } + return carLicense; + } + /** + * 银行卡号脱敏 + * eg: 1101 **** **** **** 3256 + * + * @param bankCardNo 银行卡号 + * @return 脱敏之后的银行卡号 + * @since 5.6.3 + */ + public static String bankCard(String bankCardNo) { + if (StrUtil.isBlank(bankCardNo)) { + return bankCardNo; + } + bankCardNo = StrUtil.trim(bankCardNo); + if (bankCardNo.length() < 9) { + return bankCardNo; + } + final int length = bankCardNo.length(); + final int midLength = length - 8; + final StringBuilder buf = new StringBuilder(); + buf.append(bankCardNo, 0, 4); + for (int i = 0; i < midLength; ++i) { + if (i % 4 == 0) { + buf.append(CharUtil.SPACE); + } + buf.append('*'); + } + buf.append(CharUtil.SPACE).append(bankCardNo, length - 4, length); + return buf.toString(); + } + /** + * IPv4脱敏,如:脱敏前:192.0.2.1;脱敏后:192.*.*.*。 + * + * @param ipv4 IPv4地址 + * @return 脱敏后的地址 + */ + public static String ipv4(String ipv4) { + return StrUtil.subBefore(ipv4, '.', false) + ".*.*.*"; + } + /** + * IPv4脱敏,如:脱敏前:2001:0db8:86a3:08d3:1319:8a2e:0370:7344;脱敏后:2001:*:*:*:*:*:*:* + * + * @param ipv6 IPv4地址 + * @return 脱敏后的地址 + */ + public static String ipv6(String ipv6) { + return StrUtil.subBefore(ipv6, ':', false) + ":*:*:*:*:*:*:*"; + } +} diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/controller/RiskTimeController.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/controller/RiskTimeController.java new file mode 100644 index 0000000..095d7ca --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/controller/RiskTimeController.java @@ -0,0 +1,37 @@ +package com.sercurityControl.proteam.supplement.controller; + +import com.securityControl.common.log.annotation.Log; +import com.securityControl.common.log.enums.BusinessType; +import com.sercurityControl.proteam.supplement.domain.dto.ParamsDto; +import com.sercurityControl.proteam.supplement.service.RiskTimeService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @className:RiskTimeController + * @author:cwchen + * @date:2024-12-10-9:18 + * @version:1.0 + * @description:风险时段分析-controller + */ +@RestController +@RequestMapping("/pot/riskTime/") +@Slf4j +public class RiskTimeController { + + @Resource(name = "RiskTimeService") + private RiskTimeService service; + + @ApiOperation(value = "风险时段分析-列表") + @PostMapping(value = "getRiskRectList") + @Log(title = "风险时段分析", menu = "值班任务->风险时段分析", businessType = BusinessType.QUERY, details = "风险时段分析") + public Map getRiskTimeList(ParamsDto dto) { + return service.getRiskTimeList(dto); + } +} diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/dto/ParamsDto.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/dto/ParamsDto.java index 8659b80..d10cb5a 100644 --- a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/dto/ParamsDto.java +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/dto/ParamsDto.java @@ -20,6 +20,10 @@ public class ParamsDto { private String riskLevel; /**是否整改 0.未整改 1.已整改*/ private String isRect; + /**开始日期*/ + private String startDay; + /**结束日期*/ + private String endDay; private int page; diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/ProVioVo.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/ProVioVo.java index e269b1a..b6acf18 100644 --- a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/ProVioVo.java +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/ProVioVo.java @@ -1,5 +1,7 @@ package com.sercurityControl.proteam.supplement.domain.vo; +import com.securityControl.common.core.annotation.Sensitive; +import com.securityControl.common.core.enums.SensitizedType; import com.securityControl.common.core.web.page.PageDomain; import lombok.Data; @@ -22,6 +24,7 @@ public class ProVioVo{ /**班组长*/ private String workManager; /**班组长手机号*/ + @Sensitive(SensitizedType.MOBILE_PHONE) private String workManagerPhone; /**风险等级*/ private String riskLevel; diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectDetailVo.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectDetailVo.java index 4d4a135..7fd67c6 100644 --- a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectDetailVo.java +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectDetailVo.java @@ -1,5 +1,7 @@ package com.sercurityControl.proteam.supplement.domain.vo; +import com.securityControl.common.core.annotation.Sensitive; +import com.securityControl.common.core.enums.SensitizedType; import lombok.Data; import java.util.List; @@ -27,6 +29,7 @@ public class RiskRectDetailVo { /**班组长*/ private String workManager; /**班组长手机号*/ + @Sensitive(SensitizedType.MOBILE_PHONE) private String workManagerPhone; /**违章等级*/ private String levelId; diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectVo.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectVo.java index cfc3bc6..0691985 100644 --- a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectVo.java +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskRectVo.java @@ -1,5 +1,7 @@ package com.sercurityControl.proteam.supplement.domain.vo; +import com.securityControl.common.core.annotation.Sensitive; +import com.securityControl.common.core.enums.SensitizedType; import lombok.Data; /** @@ -23,6 +25,7 @@ public class RiskRectVo { /**班组长*/ private String workManager; /**班组长手机号*/ + @Sensitive(SensitizedType.MOBILE_PHONE) private String workManagerPhone; /**违章等级*/ private String levelId; diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskTimeVo.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskTimeVo.java new file mode 100644 index 0000000..a0d8ddf --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/domain/vo/RiskTimeVo.java @@ -0,0 +1,39 @@ +package com.sercurityControl.proteam.supplement.domain.vo; + +import com.securityControl.common.core.annotation.Sensitive; +import com.securityControl.common.core.enums.SensitizedType; +import lombok.Data; + +/** + * @className:ProVioVo + * @author:cwchen + * @date:2024-12-09-15:12 + * @version:1.0 + * @description:风险时段分析-vo + */ +@Data +public class RiskTimeVo { + + /**id*/ + private String id; + /**作业票编号*/ + private String ticketNo; + /**作业票名称*/ + private String ticketName; + /**工程名称*/ + private String proName; + /**班组长*/ + private String workManager; + /**班组长手机号*/ + @Sensitive(SensitizedType.MOBILE_PHONE) + private String workManagerPhone; + /**风险等级*/ + private String riskLevel; + /**作业部位*/ + private String workSite; + /**工序*/ + private String gx; + /**时间*/ + private String time; + +} diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/mapper/RiskTimeMapper.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/mapper/RiskTimeMapper.java new file mode 100644 index 0000000..ae7d7ac --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/mapper/RiskTimeMapper.java @@ -0,0 +1,26 @@ +package com.sercurityControl.proteam.supplement.mapper; + +import com.sercurityControl.proteam.supplement.domain.dto.ParamsDto; +import com.sercurityControl.proteam.supplement.domain.vo.RiskTimeVo; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @className:RiskTimeMapper + * @author:cwchen + * @date:2024-12-10-9:20 + * @version:1.0 + * @description:风险时段分析-mapper + */ +@Repository("RiskTimeMapper") +public interface RiskTimeMapper { + /** + * 风险时段分析-列表 + * @param dto + * @return List + * @author cwchen + * @date 2024/12/10 9:26 + */ + List getRiskTimeList(ParamsDto dto); +} diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/RiskTimeService.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/RiskTimeService.java new file mode 100644 index 0000000..8abea12 --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/RiskTimeService.java @@ -0,0 +1,23 @@ +package com.sercurityControl.proteam.supplement.service; + +import com.sercurityControl.proteam.supplement.domain.dto.ParamsDto; + +import java.util.Map; + +/** + * @className:RiskTimeService + * @author:cwchen + * @date:2024-12-10-9:19 + * @version:1.0 + * @description:风险时段分析-service + */ +public interface RiskTimeService { + /** + * 风险时段分析 + * @param dto + * @return Map + * @author cwchen + * @date 2024/12/10 9:25 + */ + Map getRiskTimeList(ParamsDto dto); +} diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskRectServiceImpl.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskRectServiceImpl.java index 105509f..9abfecb 100644 --- a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskRectServiceImpl.java +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskRectServiceImpl.java @@ -40,10 +40,6 @@ public class RiskRectServiceImpl implements RiskRectService { List list = null; try { list = mapper.getRiskRectList(dto); - /*list.forEach(item->{ - List rectTimeList = mapper.getRectTime(item); - item.setTime(rectTimeList.get(0)); - });*/ } catch (Exception e) { log.error(e.toString(),e); } diff --git a/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskTimeServiceImpl.java b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskTimeServiceImpl.java new file mode 100644 index 0000000..5ffb839 --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/java/com/sercurityControl/proteam/supplement/service/impl/RiskTimeServiceImpl.java @@ -0,0 +1,52 @@ +package com.sercurityControl.proteam.supplement.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.securityControl.common.core.constant.HttpStatus; +import com.sercurityControl.proteam.supplement.domain.dto.ParamsDto; +import com.sercurityControl.proteam.supplement.domain.vo.RiskRectVo; +import com.sercurityControl.proteam.supplement.domain.vo.RiskTimeVo; +import com.sercurityControl.proteam.supplement.mapper.RiskTimeMapper; +import com.sercurityControl.proteam.supplement.service.RiskTimeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @className:RiskTimeServiceImpl + * @author:cwchen + * @date:2024-12-10-9:19 + * @version:1.0 + * @description:风险时段分析-impl + */ +@Service(value = "RiskTimeService") +@Slf4j +public class RiskTimeServiceImpl implements RiskTimeService { + + @Resource(name = "RiskTimeMapper") + private RiskTimeMapper mapper; + + @Override + public Map getRiskTimeList(ParamsDto dto) { + PageHelper.startPage(dto.getPage(), dto.getLimit()); + Map map = new HashMap<>(16); + List list = null; + try { + list = mapper.getRiskTimeList(dto); + } catch (Exception e) { + log.error(e.toString(),e); + } + PageInfo pageInfo = new PageInfo<>(list); + map.put("code", HttpStatus.SUCCESS); + map.put("msg", "获取数据成功"); + map.put("count", pageInfo.getTotal()); + map.put("curr", dto.getPage()); + map.put("limit", dto.getLimit()); + map.put("data", pageInfo.getList()); + return map; + } +} diff --git a/securityControl-modules/securityControl-proteam/src/main/resources/mapper/supplement/RiskTimeMapper.xml b/securityControl-modules/securityControl-proteam/src/main/resources/mapper/supplement/RiskTimeMapper.xml new file mode 100644 index 0000000..9f8f75b --- /dev/null +++ b/securityControl-modules/securityControl-proteam/src/main/resources/mapper/supplement/RiskTimeMapper.xml @@ -0,0 +1,34 @@ + + + + + + + \ No newline at end of file