1.介绍

在实际项目中经常要使用到一些字段校验,这时我们可以通过最简单的在高级管理中的唯一校验可以配置简单校验规则,但对于复杂的校验则要通过事件来进行实现

  • 高级管理中的唯一校验

    2.设计思路

    2.1 首先创建一个表单
  • 案例


2.2 然后编写后端代码

  • 查看目录结构


  • 可以参考这个后端事件demo进行编写代码


  • 这是此次校验案例的代码
        package com.cvte.lcp.template.product.application.event;

        import com.cvte.lcp.base.common.annotation.internal.InternalPxEvent;
        import com.cvte.lcp.base.common.dto.form.data.ObjFormDataAttrDTO;
        import com.cvte.lcp.internal.common.dto.InternalEventDataDTO;
        import com.cvte.lcp.internal.common.dto.InternalReturnT;
        import com.cvte.lcp.internal.interfaces.InternalEvent;
        import com.cvte.lcp.internal.plugin.AbstractInternalEventAction;
        import lombok.extern.slf4j.Slf4j;

        import java.util.Map;

            /**
             * @Description: 校验处理demo
             * @Author: hcl
             * @Date: 2024/6/18
             */
            @InternalPxEvent(execClassName = "checkSubmitDemoEvent", eventDesc = "表单提交校验2")
            @Slf4j
            public class CheckSubmitDemoEvent extends AbstractInternalEventAction {
                @Override
                public InternalReturnT<InternalEventDataDTO> doAction(InternalEvent internalEvent) throws Exception {
                    Map<String, ObjFormDataAttrDTO> allObjAttrItemMap = internalEvent.getInternalEventDataDTO().getObjFormDataDTO().getAllObjAttrItemMap();
                    //TEST是组件编码
                    ObjFormDataAttrDTO test = allObjAttrItemMap.get("TEST");
                    ObjFormDataAttrDTO test2 = allObjAttrItemMap.get("TEST2");
                    log.info("==============================" + test.getAttrValue().toString() + "========" + test2.getAttrValue().toString());
                    if ("1".equals(test.getAttrValue().toString()) || "2".equals(test2.getAttrValue().toString())) {
                        return new InternalReturnT<>(InternalReturnT.SUCCESS_STATUS, "提交成功=======");
                    }
                        return new InternalReturnT<>(InternalReturnT.FAIL_STATUS, "提交失败=======");
                }
            }

  • 如果要前端接口调用后端接口可以参考下面这个


2.3 然后我们应自己创建一个事件,在应用->事件中心->事件执行程序中点击新增创建



  • 设置程序名称,选择适用范围、程序类型、所属服务以及绑定资源
  • 适用范围:选择自己想要的(此次案例为表单事件)

  • 程序类型:选择自己想要实现的(内置程序也就是编写后端代码)

  • 所属服务:选择lcp-template-product(固定)

  • 绑定资源:选择自己在后端创建的对应的资源(案例代码创建的是表单校验2)


2.4 创建事件订阅

  • 点击事件订阅->新增一个订阅


  • 选择适用范围(跟上述的一直)、选择表单(选择需要校验的表单)、选择触发时机(根据业务需求来选择,案例中选取创建后进行表单校验)、选择执行程序(也就是你创建的事件,案例中的事件为long_测试),点击保存后即可

3.效果

  • 输入test=1 test2=2,符合条件通过校验

  • 输入test=3 test2=3,不符合条件校验,创建失败

作者:王浩彬  创建时间:2024-06-17 16:13
最后编辑:tz_docs  更新时间:2025-05-12 18:04