zhongdaoyi@wondertek.com.cn

审片间接口初始化

package com.wondertek.controller;
import com.wondertek.dto.LMRoomDto;
import com.wondertek.service.LiveMonitorRoomService;
import com.wondertek.util.PageBean;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/monitor/room")
public class LiveMonitorRoomController {
@Resource
private LiveMonitorRoomService liveMonitorRoomService;
/**
* 审片间维护-列表页
* @param lmRoomDto
* @return
*/
@GetMapping("queryPage")
PageBean queryPage(LMRoomDto lmRoomDto){
return liveMonitorRoomService.queryPage(lmRoomDto);
}
/**
* 审片间-列表页
* @param lmRoomDto
* @return
*/
@GetMapping("editPage")
PageBean editPage(LMRoomDto lmRoomDto){
return liveMonitorRoomService.queryPage(lmRoomDto);
}
}
... ...
package com.wondertek.dto;
import lombok.Data;
@Data
public class CrpDataVo {
/**
* 频道唯一标识
* <p>关联转码平台的频道ID</p>
*/
private String taskId;
/** 转码平台频道ID */
private Long channelId;
/** 关联的审片间ID */
private Long roomId;
/**
* 任务类型
* <p>取值:</p>
* <ul>
* <li>"0" - 主任务</li>
* <li>"1" - 备任务</li>
* </ul>
*/
private String taskType;
}
... ...
package com.wondertek.dto;
import lombok.Data;
@Data
public class LMRoomDto {
/** 审片间名称 */
private String name;
private Integer page=1;
private Integer size=10;
}
... ...
package com.wondertek.dto;
import lombok.Data;
import java.util.List;
@Data
public class LMRoomParam {
private Long id;
private String name;
private String liveName;
private List<CrpDataVo> dataList;
}
... ...
... ... @@ -37,5 +37,7 @@ public class LiveMonitorRoom {
private LocalDateTime updatedTime;
/** 多画输出流地址 */
private String mixOutputUrl;
/** 直播名称 */
private String liveName;
}
\ No newline at end of file
... ...
package com.wondertek.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wondertek.dto.LMRoomDto;
import com.wondertek.entity.LiveMonitorRoom;
import com.wondertek.vo.LMRoomListVo;
import org.apache.ibatis.annotations.Param;
/**
* @Description:
... ... @@ -10,4 +15,6 @@ import com.wondertek.entity.LiveMonitorRoom;
* @Version 1.0
*/
public interface LiveMonitorRoomMapper extends BaseMapper<LiveMonitorRoom> {
IPage<LMRoomListVo> findPageList(Page<LMRoomListVo> page, @Param("dto") LMRoomDto dto);
}
... ...
package com.wondertek.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wondertek.dto.BackupMaterialDto;
import com.wondertek.dto.LMRoomDto;
import com.wondertek.dto.LMRoomParam;
import com.wondertek.entity.LiveMonitorRoom;
import com.wondertek.util.PageBean;
import com.wondertek.util.ResultBean;
public interface LiveMonitorRoomService extends IService<LiveMonitorRoom> {
PageBean queryPage(LMRoomDto lmRoomDto);
PageBean editPage(LMRoomDto lmRoomDto);
ResultBean create(LMRoomParam lmRoomParam);
}
... ...
package com.wondertek.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wondertek.entity.StreamTask;
public interface StreamTaskService extends IService<StreamTask> {
}
... ...
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("创建成功");
}
}
... ...
package com.wondertek.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wondertek.entity.StreamTask;
import com.wondertek.mapper.StreamTaskMapper;
import com.wondertek.service.StreamTaskService;
import org.springframework.stereotype.Service;
@Service
public class StreamTaskServiceImpl extends ServiceImpl<StreamTaskMapper, StreamTask> implements StreamTaskService {
}
... ...
package com.wondertek.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class LMRoomListVo {
private Long id;
/** 审片间名称 */
private String name;
private String brocStatus;
/** 审片间状态 0-启用 1-禁用 */
private String roomStatus;
/** 创建人 */
private String createdBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createdTime;
/** 更新人 */
private String updatedBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updatedTime;
/** 多画输出流地址 */
private String mixOutputUrl;
/** 直播名称 */
private String liveName;
}
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wondertek.mapper.LiveMonitorRoomMapper">
<select id="findPageList" resultType="com.wondertek.vo.LMRoomListVo">
SELECT
`id`,
`name`,
`broc_status`,
`room_status`,
`created_by`,
`created_time`,
`updated_by`,
`updated_time`,
`mix_output_url`,
`live_name`
FROM
crp_live_monitor_room`
<where>
<if test="dto.name != null and dto.name != ''">
and `name` like CONCAT('%',#{dto.name},'%')
</if>
</where>
order by created_time desc,updated_time DESC
</select>
</mapper>
... ...