package com.xvji.utils;

/**
 * 从若依定时任务的invokeTarget中解析业务任务ID
 */
public class InvokeTargetUtils {

    /**
     * 解析invokeTarget，提取业务任务ID
     * @param invokeTarget 格式：com.xvji.quartz.TaskQuartzJob.executePredictTask(1001)
     * @return 业务任务ID（如1001），解析失败返回null
     */
    public static Long parseTaskIdFromInvokeTarget(String invokeTarget) {
        if (invokeTarget == null || !invokeTarget.contains("(") || !invokeTarget.contains(")")) {
            return null; // 格式不正确
        }
        // 截取括号中的内容（如从"xxx(1001)"中截取"1001"）
        String taskIdStr = invokeTarget.substring(
                invokeTarget.indexOf("(") + 1,
                invokeTarget.indexOf(")")
        );
        // 转为Long类型
        try {
            return Long.parseLong(taskIdStr.trim());
        } catch (NumberFormatException e) {
            return null; // 参数不是数字
        }
    }
}