package com.ruoyi.task.api.contract;
import com.ruoyi.task.api.TaskSubtaskApi;
import com.ruoyi.task.domain.IvrTaskVisitResult;
import com.ruoyi.task.domain.ServiceSubtask;
import com.ruoyi.task.domain.ServiceSubtaskDetail;
import com.ruoyi.task.domain.ServiceSubtaskDetailTrace;
import com.ruoyi.task.domain.ServiceTask;
import com.ruoyi.task.domain.entity.ServiceSubtaskEntity;
import com.ruoyi.task.mapper.IvrTaskVisitResultMapper;
import com.ruoyi.task.mapper.ServiceSubtaskDetailMapper;
import com.ruoyi.task.mapper.ServiceSubtaskMapper;
import com.ruoyi.task.service.IServiceSubtaskDetailTraceService;
import com.ruoyi.task.service.IServiceTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* {@link TaskSubtaskApi} 的模块内实现:把调用原样转发给归属本模块的 Mapper / Service。
*
*
为什么放在 {@code api.contract} 包
* 与 {@code ServiceTaskMatchApiImpl} / {@code SubtaskStatApiImpl} / {@code SubtaskOptionMatchApiImpl}
* 等 ruoyi-common 契约的实现放在一起,便于"对外契约 → 实现"成对阅读。
*
* 行为约定
* 本类不做任何业务判断(不校验、不补字段、不改状态),只转发;
* 电话流程原有的业务分支一律留在 {@code ruoyi-phone},
* 这样"搬迁"是纯搬家,行为与模块化前逐行一致。
*/
@Slf4j
@Component
public class TaskSubtaskApiImpl implements TaskSubtaskApi {
@Autowired
private ServiceSubtaskMapper serviceSubtaskMapper;
@Autowired
private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper;
@Autowired
private IvrTaskVisitResultMapper serviceTaskVisitResultMapper;
@Autowired
private IServiceTaskService serviceTaskService;
@Autowired
private IServiceSubtaskDetailTraceService traceService;
@Override
public ServiceSubtask getSubtask(Long subId) {
return serviceSubtaskMapper.selectServiceSubtaskById(subId);
}
@Override
public List findSubtasks(ServiceSubtaskEntity query) {
return serviceSubtaskMapper.selectServiceSubtaskList(query);
}
@Override
public int updateSubtask(ServiceSubtask subtask) {
Boolean updated = serviceSubtaskMapper.updateServiceSubtask(subtask);
return Boolean.TRUE.equals(updated) ? 1 : 0;
}
@Override
public ServiceTask getTask(Long taskid) {
return serviceTaskService.selectServiceTaskByTaskid(taskid);
}
@Override
public List findSubtaskDetails(ServiceSubtaskDetail query) {
return serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(query);
}
@Override
public int insertSubtaskDetail(ServiceSubtaskDetail detail) {
return serviceSubtaskDetailMapper.insertServiceSubtaskDetail(detail);
}
@Override
public int updateSubtaskDetail(ServiceSubtaskDetail detail) {
return serviceSubtaskDetailMapper.updateServiceSubtaskDetail(detail);
}
@Override
public int insertVisitResult(IvrTaskVisitResult visitResult) {
return serviceTaskVisitResultMapper.insertIvrTaskVisitResult(visitResult);
}
@Override
public int insertDetailTrace(ServiceSubtaskDetailTrace trace) {
return traceService.insertServiceSubtaskDetailTtrace(trace);
}
}