LiveMonitorRoomServiceImpl.java 5.18 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)){
             dataList.forEach(crpDataVo -> {
                Long sId = crpDataVo.getId();
                StreamTask streamTask = monitorMarkService.getById(sId);
                streamTask.setTaskId(crpDataVo.getTaskId());
                streamTask.setChannelId(crpDataVo.getChannelId());
                streamTask.setRoomId(roomId);
                streamTask.setTaskType(crpDataVo.getTaskType());
                streamTask.setCreatedBy("");
                streamTask.setCreatedTime(LocalDateTime.now());
                 monitorMarkService.updateById(streamTask);
            });
        }

        return ResultBean.ok("修改成功");
    }

    @Override
    public ResultBean update(LMRoomParam lmRoomParam) {

        Long id = lmRoomParam.getId();

        LiveMonitorRoom monitorRoom = getById(id);

        if(monitorRoom == null){
            return ResultBean.error("房间不存在");
        }

        monitorRoom.setName(lmRoomParam.getName());
        monitorRoom.setLiveName(lmRoomParam.getLiveName());
        saveOrUpdate(monitorRoom);

        //更新子任务
        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 null;
    }

    @Override
    public ResultBean updateStatus(Long id, String status) {

        LiveMonitorRoom monitorRoom = getById(id);

        if(monitorRoom == null){
            return ResultBean.error("房间不存在");
        }

        String brocStatus = monitorRoom.getBrocStatus();

        if("0".equals(brocStatus)){
            return ResultBean.error("播控中房间不能禁用");
        }
        monitorRoom.setRoomStatus(status);
        monitorRoom.setUpdatedTime(LocalDateTime.now());
        saveOrUpdate(monitorRoom);

        return ResultBean.ok("修改成功");
    }

    @Override
    public ResultBean delete(Long id) {
        LiveMonitorRoom monitorRoom = getById(id);

        if(monitorRoom == null){
            return ResultBean.error("房间不存在");
        }

        String roomStatus = monitorRoom.getRoomStatus();

        if("0".equals(roomStatus)){
            return ResultBean.error("启用的房间不能删除");
        }
        monitorRoom.setDel("1");
        monitorRoom.setUpdatedTime(LocalDateTime.now());
        saveOrUpdate(monitorRoom);

        return ResultBean.ok("删除成功");
    }
}