LiveMonitorRoomServiceImpl.java 2.91 KB
package com.wondertek.service.impl;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wondertek.dto.CrpDataVo;
import com.wondertek.dto.LMRoomDto;
import com.wondertek.dto.LMRoomParam;
import com.wondertek.entity.LiveMonitorRoom;
import com.wondertek.entity.StreamTask;
import com.wondertek.mapper.LiveMonitorRoomMapper;
import com.wondertek.service.LiveMonitorRoomService;
import com.wondertek.service.StreamTaskService;
import com.wondertek.util.PageBean;
import com.wondertek.util.ResultBean;
import com.wondertek.vo.LMRoomListVo;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

@Service
public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMapper, LiveMonitorRoom> implements LiveMonitorRoomService {

    @Resource
    private LiveMonitorRoomMapper liveMonitorRoomMapper;

    @Resource
    private StreamTaskService monitorMarkService;

    @Override
    public PageBean queryPage(LMRoomDto lmRoomDto) {
        Page<LMRoomListVo> page = new Page<>(lmRoomDto.getPage(), lmRoomDto.getSize());
        IPage<LMRoomListVo> resultPage = liveMonitorRoomMapper.findPageList(page, lmRoomDto);
        return new PageBean(Integer.parseInt(String.valueOf(resultPage.getPages())),resultPage.getTotal(),resultPage.getRecords());
    }

    @Override
    public PageBean editPage(LMRoomDto lmRoomDto) {
        return null;
    }


    @Override
    public ResultBean create(LMRoomParam lmRoomParam) {


        //审片间信息
        LiveMonitorRoom liveMonitorRoom = new LiveMonitorRoom();
        liveMonitorRoom.setName(lmRoomParam.getName());
        liveMonitorRoom.setRoomStatus("0");
        liveMonitorRoom.setCreatedBy("");
        liveMonitorRoom.setCreatedTime(LocalDateTime.now());
        liveMonitorRoom.setLiveName(lmRoomParam.getLiveName());
        boolean b = saveOrUpdate(liveMonitorRoom);
        Long roomId = liveMonitorRoom.getId();


        List<CrpDataVo> dataList = lmRoomParam.getDataList();

        //初始化子任务信息
        if(!CollectionUtils.isEmpty(dataList)){
            List<StreamTask> taskList = dataList.stream().map(crpDataVo -> {
                StreamTask streamTask = new StreamTask();
                streamTask.setTaskId(crpDataVo.getTaskId());
                streamTask.setChannelId(crpDataVo.getChannelId());
                streamTask.setRoomId(roomId);
                streamTask.setTaskType(crpDataVo.getTaskType());
                streamTask.setCreatedBy("");
                streamTask.setCreatedTime(LocalDateTime.now());
                return streamTask;
            }).toList();
            monitorMarkService.saveOrUpdateBatch(taskList);
        }

        return ResultBean.ok("创建成功");
    }
}