package cn.gistack.sm.intelligentCall.service.impl; import cn.gistack.sm.intelligentCall.entity.CallSmsNoticeTask; import cn.gistack.sm.intelligentCall.mapper.CallSmsNoticeTaskMapper; import cn.gistack.sm.intelligentCall.service.ICallSmsNoticeTaskService; import cn.gistack.sm.intelligentCall.vo.CallSmsNoticeTaskVO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author zhongrj * @date 2023-06-13 */ @Service public class CallSmsNoticeTaskServiceImpl extends ServiceImpl implements ICallSmsNoticeTaskService { /** * 自定义分页列表查询 * @param page * @param callSmsNoticeTask * @return */ @Override public IPage selectCallSmsNoticeTaskPage(IPage page, CallSmsNoticeTaskVO callSmsNoticeTask) { return page.setRecords(baseMapper.selectCallSmsNoticeTaskPage(page,callSmsNoticeTask)); } /** * 外呼短信通知任务创建 * @param taskId 外呼任务id * @return */ @Override public Boolean createCallSmsNoticeTask(String taskId) { boolean flag = false; CallSmsNoticeTask callSmsNoticeTask = new CallSmsNoticeTask(); // 判断已插入,防止重复插入的情况 CallSmsNoticeTask notFillRecord = getOne(new QueryWrapper().eq("task_id", taskId)); if (notFillRecord != null){ return false; } // 通过外呼任务id 查询任务调度时间 String scheduleTime = baseMapper.getTaskScheduleTimeByTaskId(taskId); // 从调度时间开始往后加2个小时,为结束时间 if(null!= scheduleTime && !scheduleTime.equals("")){ long l = 0; try { l = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(scheduleTime).getTime(); } catch (ParseException e) { e.printStackTrace(); } long m = 2*60*60*1000; // 相减得到时间 Long x = l+m; // 设置信息 callSmsNoticeTask.setTaskId(Integer.parseInt(taskId)); callSmsNoticeTask.setCreateTime(new Date()); callSmsNoticeTask.setCreateUser(AuthUtil.getUserId()); callSmsNoticeTask.setStartTime(new Date(l)); callSmsNoticeTask.setEndTime(new Date(x)); // 新增 flag = save(callSmsNoticeTask); } return flag; } }