ソースを参照

fix: scene_image校验改为自定义validator检查onboardImageIds数组而非空字符串form字段

alphaH 1 日 前
コミット
b085748b6b

+ 6 - 0
frontend/src/views/module_payment/account/index.vue

@@ -870,9 +870,15 @@ const onboardForm = reactive({
   scene_image: "",
 });
 
+const validateSceneImage = (_rule: any, _value: any, callback: any) => {
+  if (onboardImageIds.value.length === 0) callback(new Error("请上传场景截图"));
+  else callback();
+};
+
 const onboardRules: FormRules = {
   scene_code: [{ required: true, message: "请选择场景码", trigger: "change" }],
   scene_directions: [{ required: true, message: "请填写场景说明", trigger: "blur" }],
+  scene_image: [{ validator: validateSceneImage, trigger: "change" }],
 };
 
 const ALLOWED_EXTENSIONS = [".jpg", ".jpeg", ".png", ".pdf"];

+ 3 - 3
java/src/main/java/com/payment/platform/module/payment/account/service/AlipayTransferService.java

@@ -229,9 +229,9 @@ public class AlipayTransferService {
             AlipayFundExpandindirectImageUploadRequest request = new AlipayFundExpandindirectImageUploadRequest();
             request.setProductCode(ONBOARD_PRODUCT_CODE);
             request.setBizScene(ONBOARD_BIZ_SCENE);
-            String imageType = ext.equals(".pdf") ? "pdf" : ext.equals(".png") ? "png" : "jpg";
-            request.setImageType(imageType);
-            String mimeType = ext.equals(".pdf") ? "application/pdf" : ext.equals(".png") ? "image/png" : "image/jpeg";
+            String replace = ext.replace(".", "");
+            request.setImageType(replace);
+            String mimeType = ext.equals(".pdf") ? "application/pdf" : ("image/" + replace);
             FileItem fileItem = new FileItem(fileName, fileBytes, mimeType);
             request.setImageContent(fileItem);
             AlipayFundExpandindirectImageUploadResponse response =

+ 24 - 0
logs/payment-platform.log

@@ -1797,3 +1797,27 @@ Caused by: java.io.EOFException: null
 2026-07-15 14:32:27.221 [tomcat-handler-8] WARN  c.p.p.c.e.GlobalExceptionHandler - 业务异常 [/api/v1/payment/account/onboard/upload] 400: 上传进件图片失败: Business Failed
 2026-07-15 14:35:19.181 [SpringApplicationShutdownHook] INFO  c.alibaba.druid.pool.DruidDataSource - {dataSource-1} closing ...
 2026-07-15 14:35:19.184 [SpringApplicationShutdownHook] INFO  c.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
+2026-07-15 14:35:25.322 [background-preinit] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final
+2026-07-15 14:35:25.384 [main] INFO  c.p.platform.PaymentApplication - Starting PaymentApplication using Java 21.0.11 with PID 39808 (D:\project2\payment-platform\java\target\classes started by 1 in D:\project2\payment-platform)
+2026-07-15 14:35:25.385 [main] INFO  c.p.platform.PaymentApplication - The following 1 profile is active: "dev"
+2026-07-15 14:35:26.286 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
+2026-07-15 14:35:26.288 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2026-07-15 14:35:26.344 [main] INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 44 ms. Found 0 Redis repository interfaces.
+2026-07-15 14:35:26.901 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8001 (http)
+2026-07-15 14:35:26.910 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8001"]
+2026-07-15 14:35:26.911 [main] INFO  o.a.catalina.core.StandardService - Starting service [Tomcat]
+2026-07-15 14:35:26.911 [main] INFO  o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.20]
+2026-07-15 14:35:26.958 [main] INFO  o.a.c.c.C.[.[localhost].[/api/v1] - Initializing Spring embedded WebApplicationContext
+2026-07-15 14:35:26.959 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1432 ms
+2026-07-15 14:35:26.988 [main] INFO  c.a.d.s.b.a.DruidDataSourceAutoConfigure - Init DruidDataSource
+2026-07-15 14:35:28.477 [main] INFO  c.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
+2026-07-15 14:35:29.257 [main] WARN  c.p.p.c.alipay.AlipayClientFactory - 支付宝默认配置不完整,将仅使用服务商/租户专属客户端
+2026-07-15 14:35:29.424 [main] INFO  c.p.platform.core.oss.OssService - OSS client initialized: bucket=hunanxiaojunzioss, endpoint=oss-cn-beijing.aliyuncs.com
+2026-07-15 14:35:29.758 [main] INFO  c.p.p.m.p.e.s.EnterpriseNameSyncScheduler - [企业名称同步] 调度器启动
+2026-07-15 14:35:30.004 [main] INFO  c.p.p.m.p.n.s.NotificationService - 已注册 7 个通知处理器: [AccountHandler, BillHandler, EmployeeHandler, EnterpriseHandler, InstitutionHandler, OrderHandler, VoucherHandler]
+2026-07-15 14:35:30.497 [main] INFO  o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@23169374, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4f2b1a2f, org.springframework.security.web.context.SecurityContextHolderFilter@58a0f75b, org.springframework.security.web.header.HeaderWriterFilter@756030e2, org.springframework.web.filter.CorsFilter@6c2a33af, org.springframework.security.web.authentication.logout.LogoutFilter@189f3ccd, com.payment.platform.core.security.JwtAuthFilter@337c0ee4, com.payment.platform.core.security.TenantApiKeyAuthFilter@4fe9a396, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1b84d03d, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@41d8ac75, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@53202b06, org.springframework.security.web.session.SessionManagementFilter@258ac1e6, org.springframework.security.web.access.ExceptionTranslationFilter@623a891d, org.springframework.security.web.access.intercept.AuthorizationFilter@7bf2e475]
+2026-07-15 14:35:30.886 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8001"]
+2026-07-15 14:35:30.898 [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8001 (http) with context path '/api/v1'
+2026-07-15 14:35:30.994 [main] INFO  c.p.platform.PaymentApplication - Started PaymentApplication in 6.175 seconds (process running for 6.886)
+2026-07-15 14:35:33.009 [main] INFO  c.p.p.core.config.AppStartupRunner - 系统配置缓存初始化完成
+2026-07-15 14:35:34.191 [main] INFO  c.p.p.core.config.AppStartupRunner - 数据字典缓存初始化完成 (10 个字典类型)