package cn.iocoder.yudao.module.ums.service.application;
|
|
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskApprovalValidator;
|
import cn.iocoder.yudao.module.ums.dal.dataobject.application.UmsApplicationDO;
|
import cn.iocoder.yudao.module.ums.dal.mysql.application.UmsApplicationMapper;
|
import jakarta.annotation.Resource;
|
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.task.api.Task;
|
import org.springframework.stereotype.Component;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.module.ums.enums.ErrorCodeConstants.*;
|
|
@Component
|
public class UmsApplicationApprovalValidator implements BpmTaskApprovalValidator {
|
@Resource private UmsApplicationMapper mapper;
|
|
@Override
|
public void validate(Long userId, Task task, ProcessInstance instance) {
|
if (!"ums_membership_approve".equals(instance.getProcessDefinitionKey())) return;
|
// 发起人节点由 BPM 在流程启动时自动提交;缴费由后续审批人确认。
|
if ("StartUserNode".equals(task.getTaskDefinitionKey())) return;
|
Long id;
|
try { id = Long.valueOf(instance.getBusinessKey()); }
|
catch (Exception e) { throw exception(APPLICATION_NOT_EXISTS); }
|
UmsApplicationDO application = mapper.selectById(id);
|
if (application == null) throw exception(APPLICATION_NOT_EXISTS);
|
if (application.getFeePaid() == null) throw exception(APPLICATION_FEE_CONFIRM_REQUIRED);
|
}
|
}
|