From e54bf5e73411d1adf41fb44326c5742380abdba4 Mon Sep 17 00:00:00 2001 From: daxpay Date: Mon, 3 Aug 2026 12:01:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor(risk):=20=E9=A3=8E=E9=99=A9=E5=91=BD?= =?UTF-8?q?=E4=B8=AD=E8=AE=B0=E5=BD=95=E7=A7=BB=E9=99=A4=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E5=A4=84=E7=BD=AE=E6=B5=81=E7=A8=8B,=20=E5=88=A0=E9=99=A4=20ha?= =?UTF-8?q?ndle=20=E6=8E=A5=E5=8F=A3/=E6=9E=9A=E4=B8=BE/=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=B8=8E=E5=A4=84=E7=90=86=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../enum/pay_risk_hit_handle_status.json | 7 ---- .../admin/PayRiskHitAdminController.java | 9 ----- .../open/plugin/risk/entity/PayRiskHit.java | 16 -------- .../enums/PayRiskHitHandleStatusEnum.java | 37 ------------------- .../risk/param/PayRiskHitHandleParam.java | 30 --------------- .../plugin/risk/param/PayRiskHitQuery.java | 3 -- .../plugin/risk/result/PayRiskHitResult.java | 14 ------- .../risk/service/PayRiskHitService.java | 37 +------------------ 17 files changed, 1 insertion(+), 215 deletions(-) delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/enum/pay_risk_hit_handle_status.json delete mode 100644 daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/enums/PayRiskHitHandleStatusEnum.java delete mode 100644 daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitHandleParam.java diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/en-US/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/id-ID/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ja-JP/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ko-KR/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/ms-MY/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/th-TH/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index ef971edbb..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/vi-VN/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "Pending", - "ignored": "Ignored", - "added_blacklist": "Added to blacklist", - "merchant_disabled": "Merchant marked disabled", - "other": "Other" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index 8c396bff6..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-CN/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "待处理", - "ignored": "已忽略", - "added_blacklist": "已加入黑名单", - "merchant_disabled": "已标记停用商户", - "other": "其他" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index 8c396bff6..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-HK/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "待处理", - "ignored": "已忽略", - "added_blacklist": "已加入黑名单", - "merchant_disabled": "已标记停用商户", - "other": "其他" -} diff --git a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/enum/pay_risk_hit_handle_status.json b/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/enum/pay_risk_hit_handle_status.json deleted file mode 100644 index 8c396bff6..000000000 --- a/daxpay-platform/daxpay-platform-common/common-i18n/src/main/resources/i18n/zh-TW/enum/pay_risk_hit_handle_status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pending": "待处理", - "ignored": "已忽略", - "added_blacklist": "已加入黑名单", - "merchant_disabled": "已标记停用商户", - "other": "其他" -} diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/controller/admin/PayRiskHitAdminController.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/controller/admin/PayRiskHitAdminController.java index 045ab8142..949b04b77 100644 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/controller/admin/PayRiskHitAdminController.java +++ b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/controller/admin/PayRiskHitAdminController.java @@ -6,7 +6,6 @@ import cn.daxpay.open.platform.core.rest.Res; import cn.daxpay.open.platform.core.rest.param.PageParam; import cn.daxpay.open.platform.core.rest.result.PageResult; import cn.daxpay.open.platform.core.rest.result.Result; -import cn.daxpay.open.plugin.risk.param.PayRiskHitHandleParam; import cn.daxpay.open.plugin.risk.param.PayRiskHitQuery; import cn.daxpay.open.plugin.risk.result.PayRiskHitResult; import cn.daxpay.open.plugin.risk.service.PayRiskHitService; @@ -42,12 +41,4 @@ public class PayRiskHitAdminController { public Result get(@NotNull(message = "{validation.field.id.notNull}") Long id) { return Res.ok(payRiskHitService.findById(id)); } - - @PermCode(code = PermCodes.Action.MANAGE) - @Operation(summary = "处理命中") - @PostMapping("/handle") - public Result handle(@RequestBody @Validated PayRiskHitHandleParam param) { - payRiskHitService.handle(param); - return Res.ok(); - } } diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/entity/PayRiskHit.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/entity/PayRiskHit.java index f13b195b6..b4bd9d702 100644 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/entity/PayRiskHit.java +++ b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/entity/PayRiskHit.java @@ -3,7 +3,6 @@ package cn.daxpay.open.plugin.risk.entity; import cn.daxpay.open.platform.common.mybatisplus.base.MpBaseEntity; import cn.daxpay.open.platform.common.mybatisplus.function.ToResult; import cn.daxpay.open.plugin.risk.convert.PayRiskHitConvert; -import cn.daxpay.open.plugin.risk.enums.PayRiskHitHandleStatusEnum; import cn.daxpay.open.plugin.risk.enums.PayRiskHitPhaseEnum; import cn.daxpay.open.plugin.risk.enums.PayRiskHitSceneEnum; import cn.daxpay.open.plugin.risk.result.PayRiskHitResult; @@ -13,8 +12,6 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import lombok.experimental.FieldNameConstants; -import java.time.OffsetDateTime; - /// # 支付风险命中记录 /// /// 记录事前拦截与事后命中,供运营预警与处置。 @@ -78,19 +75,6 @@ public class PayRiskHit extends MpBaseEntity implements ToResult findByCode(String code) { - return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst(); - } -} diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitHandleParam.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitHandleParam.java deleted file mode 100644 index 3e74d2fe3..000000000 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitHandleParam.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.daxpay.open.plugin.risk.param; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Data; -import lombok.experimental.Accessors; - -/// # 风险命中处理参数 -/// -@Data -@Accessors(chain = true) -@Schema(title = "风险命中处理参数") -public class PayRiskHitHandleParam { - - @Schema(description = "主键") - @NotNull(message = "{validation.field.id.notNull}") - private Long id; - - /// 处理状态:ignored / added_blacklist / merchant_disabled / other - @Schema(description = "处理状态") - @NotBlank(message = "{validation.field.status.notBlank}") - @Size(max = 32, message = "{validation.field.product.size}") - private String handleStatus; - - @Schema(description = "处理说明") - @Size(max = 500, message = "{validation.field.remark.size}") - private String handleRemark; -} diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitQuery.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitQuery.java index 94f321f56..774bff0bd 100644 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitQuery.java +++ b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/param/PayRiskHitQuery.java @@ -29,9 +29,6 @@ public class PayRiskHitQuery { @Schema(description = "商户号") private String mchNo; - @Schema(description = "处理状态") - private String handleStatus; - @Schema(description = "来源场景") private String scene; diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/result/PayRiskHitResult.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/result/PayRiskHitResult.java index 0c542af6d..b1f4e4c4c 100644 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/result/PayRiskHitResult.java +++ b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/result/PayRiskHitResult.java @@ -9,8 +9,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import java.time.OffsetDateTime; - /// # 风险命中结果 /// @EqualsAndHashCode(callSuper = true) @@ -78,18 +76,6 @@ public class PayRiskHitResult extends BaseResult { @Schema(description = "来源场景") private String scene; - @Schema(description = "处理状态") - private String handleStatus; - - @Schema(description = "处理说明") - private String handleRemark; - - @Schema(description = "处理人") - private Long handleUserId; - - @Schema(description = "处理时间") - private OffsetDateTime handleTime; - @Schema(description = "备注") private String remark; } diff --git a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/service/PayRiskHitService.java b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/service/PayRiskHitService.java index f407d20ce..56d345237 100644 --- a/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/service/PayRiskHitService.java +++ b/daxpay-plugin/daxpay-plugin-risk/src/main/java/cn/daxpay/open/plugin/risk/service/PayRiskHitService.java @@ -1,21 +1,15 @@ package cn.daxpay.open.plugin.risk.service; import cn.daxpay.open.payment.strategy.risk.PayRiskCheckContext; -import cn.daxpay.open.platform.capability.auth.util.SecurityUtil; import cn.daxpay.open.platform.common.mybatisplus.util.MpUtil; import cn.daxpay.open.platform.common.translate.service.TransService; -import cn.daxpay.open.platform.core.code.PayErrorCode; -import cn.daxpay.open.platform.core.exception.BizInfoException; import cn.daxpay.open.platform.core.exception.DataNotExistException; import cn.daxpay.open.platform.core.rest.param.PageParam; import cn.daxpay.open.platform.core.rest.result.PageResult; import cn.daxpay.open.plugin.risk.dao.PayRiskHitManager; -import cn.daxpay.open.plugin.risk.entity.PayBlacklist; import cn.daxpay.open.plugin.risk.entity.PayRiskHit; -import cn.daxpay.open.plugin.risk.enums.PayRiskHitHandleStatusEnum; import cn.daxpay.open.plugin.risk.enums.PayRiskHitPhaseEnum; import cn.daxpay.open.plugin.risk.enums.PayRiskHitSceneEnum; -import cn.daxpay.open.plugin.risk.param.PayRiskHitHandleParam; import cn.daxpay.open.plugin.risk.param.PayRiskHitQuery; import cn.daxpay.open.plugin.risk.result.PayRiskHitResult; import cn.hutool.core.util.StrUtil; @@ -24,9 +18,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.OffsetDateTime; -import java.time.ZoneOffset; - /// # 风险命中服务 /// @Slf4j @@ -35,7 +26,6 @@ import java.time.ZoneOffset; public class PayRiskHitService { private final PayRiskHitManager payRiskHitManager; - private final PayBlacklistService payBlacklistService; private final TransService transService; /// 分页 @@ -54,30 +44,6 @@ public class PayRiskHitService { return result; } - /// 处理命中 - @Transactional(rollbackFor = Exception.class) - public void handle(PayRiskHitHandleParam param) { - PayRiskHitHandleStatusEnum status = PayRiskHitHandleStatusEnum.findByCode(param.getHandleStatus()) - .orElseThrow(() -> new BizInfoException(PayErrorCode.OPERATION_FAIL, - "pay.error.risk.handleStatusInvalid")); - PayRiskHit entity = getEntity(param.getId()); - if (status == PayRiskHitHandleStatusEnum.ADDED_BLACKLIST) { - // 微信名单需 wxAppId;命中快照无该字段时无法自动写入 - PayBlacklist bl = payBlacklistService.ensureBlacklist( - entity.getHitType(), - entity.getHitValue(), - entity.getChannel(), - null, - param.getHandleRemark()); - entity.setBlacklistId(bl.getId()); - } - entity.setHandleStatus(status.getCode()); - entity.setHandleRemark(param.getHandleRemark()); - entity.setHandleUserId(SecurityUtil.getUserIdOrDefaultId()); - entity.setHandleTime(OffsetDateTime.now(ZoneOffset.UTC)); - payRiskHitManager.updateById(entity); - } - /// 记录命中(支付接入 / 检查器调用) @Transactional(rollbackFor = Exception.class) public void recordHit(PayRiskCheckContext ctx, String hitType, String hitValue, Long blacklistId) { @@ -101,8 +67,7 @@ public class PayRiskHitService { .setClientIp(ctx.getClientIp()) .setOpenid(ctx.getOpenId()) .setBuyerId(ctx.getBuyerId()) - .setScene(StrUtil.blankToDefault(ctx.getScene(), PayRiskHitSceneEnum.UNKNOWN.getCode())) - .setHandleStatus(PayRiskHitHandleStatusEnum.PENDING.getCode()); + .setScene(StrUtil.blankToDefault(ctx.getScene(), PayRiskHitSceneEnum.UNKNOWN.getCode())); payRiskHitManager.save(hit); }