Ver código fonte

feat: scene_code改为前端下拉9选1,撤销硬编码ZHUANZHANG_QITA

- 进件弹窗加回场景码下拉框(9个枚举)
- 后端createOnboard恢复sceneCode参数
- 代码: 前端传参 + 后端校验
alphaH 7 horas atrás
pai
commit
34edd692a8

+ 1 - 0
frontend/src/api/module_payment/account.ts

@@ -67,6 +67,7 @@ export const AccountAPI = {
 
   createOnboard(data: {
     enterprise_id: string;
+    scene_code: string;
     scene_directions: string;
     scene_image: string;
     sites?: string;

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

@@ -512,6 +512,11 @@
     <el-dialog v-model="onboardDialogVisible" title="提交进件资料" width="650px" destroy-on-close
       :close-on-click-modal="false">
       <el-form ref="onboardFormRef" :model="onboardForm" :rules="onboardRules" label-width="120px">
+        <el-form-item label="场景码" prop="scene_code" required>
+          <el-select v-model="onboardForm.scene_code" placeholder="请选择转账场景">
+            <el-option v-for="s in ONBOARD_SCENE_OPTIONS" :key="s.value" :label="s.label" :value="s.value" />
+          </el-select>
+        </el-form-item>
         <el-form-item label="场景说明" prop="scene_directions" required>
           <el-input v-model="onboardForm.scene_directions" type="textarea" :rows="3"
             placeholder="谁/通过什么媒介/主要为谁提供什么服务/用于在什么场景给什么人群转账" maxlength="1024" show-word-limit />
@@ -839,7 +844,20 @@ const uploadRef = ref();
 const onboardSiteTypes = ref<string[]>([]);
 const onboardSites = reactive<Record<string, string>>({});
 
+const ONBOARD_SCENE_OPTIONS = [
+  { value: "XIANJIN_YINGXIAO", label: "现金营销" },
+  { value: "XINGZHENG_BUTIE", label: "行政补贴" },
+  { value: "BAOXIAN_LIPEI", label: "保险理赔" },
+  { value: "YONGJIN_BAOCHOU", label: "佣金报酬" },
+  { value: "QIYE_PEIFU", label: "企业赔付" },
+  { value: "CAIGOU_HUOKUAN", label: "采购货款" },
+  { value: "ERSHOU_HUISHOU", label: "二手回收" },
+  { value: "GONGYI_BUZHU", label: "公益补助" },
+  { value: "ZHUANZHANG_QITA", label: "其他场景" },
+];
+
 const onboardForm = reactive({
+  scene_code: "ZHUANZHANG_QITA",
   scene_directions: "",
   scene_image: "",
 });
@@ -850,6 +868,7 @@ const validateSceneImage = (_rule: any, _value: any, callback: any) => {
 };
 
 const onboardRules: FormRules = {
+  scene_code: [{ required: true, message: "请选择场景码", trigger: "change" }],
   scene_directions: [{ required: true, message: "请填写场景说明", trigger: "blur" }],
   scene_image: [{ validator: validateSceneImage, trigger: "change" }],
 };
@@ -918,6 +937,7 @@ async function handleOnboardSubmit() {
       }
       const res = await AccountAPI.createOnboard({
         enterprise_id: currentEnterpriseId.value!,
+        scene_code: onboardForm.scene_code,
         scene_directions: onboardForm.scene_directions,
         scene_image: onboardImageIds.value.join(","),
         sites,

+ 1 - 0
java/src/main/java/com/payment/platform/module/payment/account/controller/AccountController.java

@@ -128,6 +128,7 @@ public class AccountController {
     public Result<Map<String, String>> createOnboard(@RequestBody Map<String, Object> b) {
         return Result.ok(alipayTransferService.createOnboard(
                 (String) b.get("enterprise_id"),
+                (String) b.get("scene_code"),
                 (String) b.get("scene_directions"),
                 (String) b.get("scene_image"),
                 (String) b.get("sites")));

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

@@ -246,7 +246,7 @@ public class AlipayTransferService {
     }
 
     /** alipay.fund.expandindirect.create — 创建进件单 */
-    public Map<String, String> createOnboard(String enterpriseId,
+    public Map<String, String> createOnboard(String enterpriseId, String sceneCode,
                                               String sceneDirections, String sceneImageKeys,
                                               String sites) {
         if (sceneDirections == null || sceneDirections.isBlank())
@@ -260,7 +260,7 @@ public class AlipayTransferService {
             model.setBizScene(ONBOARD_BIZ_SCENE);
             model.setOutBizNo(outBizNo);
             model.setBizType("CREATE");
-            model.setSceneCode("ZHUANZHANG_QITA");
+            model.setSceneCode(sceneCode);
             model.setSceneDirections(sceneDirections);
             model.setSceneImage(sceneImageKeys);
             if (sites != null && !sites.isBlank()) model.setSites(sites);