소스 검색

refactor: 当面付开通 signAndAuth/rate 固定为后端值,不再由前端传入

- FacetofaceService: signAndAuth 固定 true, rate 固定 0.6
- F2fOrderCreateDTO: 移除 signAndAuth / rate 字段和 ConditionalRateRequired 校验
- 删除 ConditionalRateRequired.java / ConditionalRateRequiredValidator.java
- 前端 enterprise/index.vue: 移除签约开关和费率输入框
alphaH 2 주 전
부모
커밋
4d2cac681c

+ 0 - 18
frontend/src/views/module_payment/enterprise/index.vue

@@ -144,12 +144,6 @@
         <el-form-item label="店铺内景照">
           <input type="file" accept="image/*" @change="handleShopScenePicChange" />
         </el-form-item>
-        <el-form-item label="签约且授权" prop="sign_and_auth">
-          <el-switch v-model="f2fForm.sign_and_auth" />
-        </el-form-item>
-        <el-form-item v-if="f2fForm.sign_and_auth" label="费率" prop="rate">
-          <el-input v-model="f2fForm.rate" placeholder="0.38~0.6,如 0.38" />
-        </el-form-item>
         <el-form-item label="备注">
           <el-input v-model="f2fForm.remark" type="textarea" :rows="2" placeholder="选填" />
         </el-form-item>
@@ -471,8 +465,6 @@ const f2fForm = reactive({
   contact_name: "",
   contact_mobile: "",
   contact_email: "",
-  sign_and_auth: false,
-  rate: "",
   remark: "",
   shop_sign_board_pic_base64: "",
   shop_scene_pic_base64: "",
@@ -500,8 +492,6 @@ function handleOpenF2fApply(enterprise: any) {
     contact_name: "",
     contact_mobile: "",
     contact_email: "",
-    sign_and_auth: false,
-    rate: "",
     remark: "",
     shop_sign_board_pic_base64: "",
     shop_scene_pic_base64: "",
@@ -544,12 +534,6 @@ async function handleSubmitF2f() {
   } catch {
     return;
   }
-  // 签约且授权时费率必填
-  if (f2fForm.sign_and_auth && !f2fForm.rate) {
-    ElMessage.warning("签约且授权时请填写费率");
-    return;
-  }
-
   f2fSubmitting.value = true;
   try {
     const submitData: Record<string, any> = {
@@ -558,10 +542,8 @@ async function handleSubmitF2f() {
       mcc_code: f2fForm.mcc_code,
       contact_name: f2fForm.contact_name,
       contact_mobile: f2fForm.contact_mobile,
-      sign_and_auth: f2fForm.sign_and_auth,
     };
     if (f2fForm.contact_email) submitData.contact_email = f2fForm.contact_email;
-    if (f2fForm.sign_and_auth && f2fForm.rate) submitData.rate = f2fForm.rate;
     if (f2fForm.remark) submitData.remark = f2fForm.remark;
     if (f2fForm.shop_sign_board_pic_base64) submitData.shop_sign_board_pic_base64 = f2fForm.shop_sign_board_pic_base64;
     if (f2fForm.shop_scene_pic_base64) submitData.shop_scene_pic_base64 = f2fForm.shop_scene_pic_base64;

+ 0 - 20
java/src/main/java/com/payment/platform/common/validator/ConditionalRateRequired.java

@@ -1,20 +0,0 @@
-package com.payment.platform.common.validator;
-
-import jakarta.validation.Constraint;
-import jakarta.validation.Payload;
-
-import java.lang.annotation.*;
-
-/**
- * 条件校验注解:当 signAndAuth=true 时,rate 必填
- * 对应 Python FacetofaceApplySchema.validate_rate()
- */
-@Documented
-@Constraint(validatedBy = ConditionalRateRequiredValidator.class)
-@Target({ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ConditionalRateRequired {
-    String message() default "签约且授权时费率不能为空";
-    Class<?>[] groups() default {};
-    Class<? extends Payload>[] payload() default {};
-}

+ 0 - 31
java/src/main/java/com/payment/platform/common/validator/ConditionalRateRequiredValidator.java

@@ -1,31 +0,0 @@
-package com.payment.platform.common.validator;
-
-import com.payment.platform.module.payment.facetoface.dto.F2fOrderCreateDTO;
-import jakarta.validation.ConstraintValidator;
-import jakarta.validation.ConstraintValidatorContext;
-
-/**
- * 条件校验:如果 signAndAuth=true,则 rate 必须非空
- * 对应 Python:
- *    @model_validator(mode="after")
- *    def validate_rate(self):
- *        if self.sign_and_auth and not self.rate:
- *            raise ValueError("签约且授权时费率不能为空")
- */
-public class ConditionalRateRequiredValidator implements ConstraintValidator<ConditionalRateRequired, F2fOrderCreateDTO> {
-
-    @Override
-    public boolean isValid(F2fOrderCreateDTO dto, ConstraintValidatorContext context) {
-        if (dto == null) {
-            return true;
-        }
-        if (Boolean.TRUE.equals(dto.getSignAndAuth()) && (dto.getRate() == null || dto.getRate().isBlank())) {
-            context.disableDefaultConstraintViolation();
-            context.buildConstraintViolationWithTemplate("签约且授权时费率不能为空")
-                    .addPropertyNode("rate")
-                    .addConstraintViolation();
-            return false;
-        }
-        return true;
-    }
-}

+ 0 - 8
java/src/main/java/com/payment/platform/module/payment/facetoface/dto/F2fOrderCreateDTO.java

@@ -1,6 +1,5 @@
 package com.payment.platform.module.payment.facetoface.dto;
 
-import com.payment.platform.common.validator.ConditionalRateRequired;
 import com.payment.platform.common.validator.EmailValid;
 import com.payment.platform.common.validator.Phone;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -8,7 +7,6 @@ import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 
 @Data
-@ConditionalRateRequired
 public class F2fOrderCreateDTO {
 
     @NotBlank(message = "企业ID不能为空")
@@ -38,12 +36,6 @@ public class F2fOrderCreateDTO {
     @Schema(description = "工单编号")
     private String orderTicket;
 
-    @Schema(description = "是否签约并授权")
-    private Boolean signAndAuth;
-
-    @Schema(description = "费率")
-    private String rate;
-
     @NotBlank(message = "MCC码不能为空")
     @Schema(description = "商家经营类目编码,如 A0001_B0199")
     private String mccCode;

+ 3 - 6
java/src/main/java/com/payment/platform/module/payment/facetoface/service/FacetofaceService.java

@@ -159,12 +159,9 @@ public class FacetofaceService {
                 };
                 signRequest.setBatchNo(batchNo);
                 signRequest.setMccCode(dto.getMccCode());
-                if (dto.getSignAndAuth() != null) {
-                    signRequest.setSignAndAuth(dto.getSignAndAuth());
-                }
-                if (StrUtil.isNotBlank(dto.getRate())) {
-                    signRequest.setRate(dto.getRate());
-                }
+                // 签约且授权固定为 true,费率固定 0.6%,不再由前端传入
+                signRequest.setSignAndAuth(true);
+                signRequest.setRate("0.6");
                 // base64 图片 → FileItem
                 if (StrUtil.isNotBlank(dto.getShopSignBoardPicBase64())) {
                     byte[] signBoardBytes = Base64.getDecoder().decode(dto.getShopSignBoardPicBase64());