ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java
@@ -1,17 +1,19 @@ package com.ruoyi.web.controller.zhang; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.domain.LiveStreaming; import com.ruoyi.service.LiveStreamingBackService; import com.ruoyi.service.LiveStreamingService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM; import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE; @@ -21,20 +23,30 @@ @RequestMapping("/zLiveStreamingBack") public class LiveStreamingBackController extends BaseController { @Autowired private LiveStreamingService liveStreamingService; private LiveStreamingBackService liveStreamingBackService; @GetMapping("/all") public AjaxResult listAll(LiveStreaming liveStreaming){ public AjaxResult listAll(LiveStreaming liveStreaming) throws ParseException { Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize); return liveStreamingBackService.selectDataList(liveStreaming, pageNum, pageSize); } /** * 通过id获取直播回放详细信息 */ @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(liveStreamingService.getById(id)); return success(liveStreamingBackService.getById(id)); } /** * 批量删除会议记录 */ @Log(title = "直播回放", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return liveStreamingBackService.deleteData(ids); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java
@@ -26,7 +26,7 @@ private LiveStreamingService liveStreamingService; @GetMapping("/all") public AjaxResult listAll(LiveStreaming liveStreaming){ public AjaxResult listAll(LiveStreaming liveStreaming) throws ParseException { Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize); zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java
@@ -104,4 +104,9 @@ */ private String avatar; /** * 状态0:进行中,1:回放 */ private Integer status; } zhang-content/src/main/java/com/ruoyi/domain/Physcial.java
@@ -67,6 +67,4 @@ * 用户id */ private Long uid; } zhang-content/src/main/java/com/ruoyi/domain/ZYearInfo.java
@@ -88,5 +88,4 @@ private String url; } zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java
@@ -10,4 +10,6 @@ AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize); List<LiveStreaming> selectByIds(Long[] ids); AjaxResult deleteData(Long[] ids); } zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java
@@ -9,7 +9,7 @@ import java.util.List; public interface LiveStreamingService extends IService<LiveStreaming> { AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize); AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) throws ParseException; List<LiveStreaming> selectByIds(Long[] ids); zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java
@@ -4,13 +4,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.EsModel; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.LiveStreaming; import com.ruoyi.domain.Meeting; import com.ruoyi.mapper.LiveStreamingBackMapper; import com.ruoyi.service.EsService; import com.ruoyi.service.LiveStreamingBackService; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -19,12 +27,19 @@ @Service public class LiveStreamingBackServiceImpl extends ServiceImpl<LiveStreamingBackMapper, LiveStreaming> implements LiveStreamingBackService { @Resource private EsService esSer; @Resource private RestHighLevelClient restHighLevelClient; private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) { LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>(); // lqw.in(LiveStreaming::getFamilyId,familyIdList); lqw.orderByDesc(LiveStreaming::getId); lqw.like(StringUtils.isNotEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle()) .like(StringUtils.isNotEmpty(liveStreaming.getApplyPerson()),LiveStreaming::getApplyPerson,liveStreaming.getApplyPerson()) .eq(LiveStreaming::getStatus,1) .like(StringUtils.isNotEmpty(liveStreaming.getContactPerson()),LiveStreaming::getContactPerson,liveStreaming.getContactPerson()); lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime()); @@ -74,4 +89,45 @@ return list; } @Override public AjaxResult deleteData(Long[] ids) { // List<Meeting> dataList = meetingService.listByIds(Arrays.asList(ids)); // // ZInfoUser myself = zInfoUserService.getMyself(); // Long familyId = myself.getFamilyId(); // // List<ZAuthority> authority = zAuthorityService.getAuthority(); // List<Long> familyIdList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EVENT_LIST_REMOVE)).map(ZAuthority::getFid).collect(Collectors.toList()); // familyIdList.add(familyId); // // for (Meeting data : dataList) { // if (!familyIdList.contains(data.getFamilyId())){ // throw new RuntimeException("你没有权限操作此家庭的数据"); // } // } List<LiveStreaming> liveStreamings = listByIds(Arrays.asList(ids)); if (removeByIds(Arrays.asList(ids))) { //删除es中的数据 liveStreamings.stream().forEach(meeting -> { EsModel esModel = esSer.findByCtId((meeting.getId().intValue()), "直播回放"); if (esModel != null){ DeleteRequest deleteRequest = new DeleteRequest("allsearchdata", esModel.getId()); try { restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } } }); return AjaxResult.success(); }else { return AjaxResult.error(); } } } zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java
@@ -28,17 +28,50 @@ @Resource private EsService esSer; private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) { private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) throws ParseException { LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>(); // lqw.in(LiveStreaming::getFamilyId,familyIdList); lqw.orderByDesc(LiveStreaming::getId); lqw.like(StringUtils.isNotEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle()) .like(StringUtils.isNotEmpty(liveStreaming.getApplyPerson()),LiveStreaming::getApplyPerson,liveStreaming.getApplyPerson()) .like(StringUtils.isNotEmpty(liveStreaming.getContactPerson()),LiveStreaming::getContactPerson,liveStreaming.getContactPerson()) .like(StringUtils.isNotEmpty(liveStreaming.getRoomId()),LiveStreaming::getRoomId,liveStreaming.getRoomId()); lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime()); .eq(LiveStreaming::getStatus,0); List<LiveStreaming> liveStreamingList = list(lqw); for (LiveStreaming liveStreaming1: liveStreamingList) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar nowTime = Calendar.getInstance(); String currentTime = df.format(nowTime.getTime()); Date date = df.parse(currentTime); if(liveStreaming1.getStartTime() != null && liveStreaming1.getEndTime() != null){ if (!belongCalendar(date,liveStreaming1.getStartTime(),liveStreaming1.getEndTime())){ liveStreaming1.setStatus(1); updateById(liveStreaming1); }} } return lqw; } /**MaNongXF * 判断时间是否处于某个时间段内 * * @param time 需要比较的时间 * @param from 起始时间 * @param to 结束时间 * @return */ public static boolean belongCalendar(Date time, Date from, Date to) { System.out.println("11111"+time+"222"+from+"333"+to); Calendar date = Calendar.getInstance(); date.setTime(time); Calendar after = Calendar.getInstance(); after.setTime(from); Calendar before = Calendar.getInstance(); before.setTime(to); if (date.after(after) && date.before(before)) { return true; } else { return false; } } private LambdaQueryWrapper<LiveStreaming> uniqueCondition(LiveStreaming liveStreaming){ @@ -52,7 +85,7 @@ } @Override public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) { public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) throws ParseException { //要查自己家庭的 // ZInfoUser myself = zInfoUserService.getMyself(); // if(myself==null) @@ -71,6 +104,7 @@ LambdaQueryWrapper<LiveStreaming> lqw = buildCondition(liveStreaming); Page<LiveStreaming> liveStreamingPage = new Page<>(pageNum, pageSize); Page<LiveStreaming> pageResult = page(liveStreamingPage, lqw); @@ -79,7 +113,6 @@ // List<LiveStreaming> dtoResult = markOwnData(familyId, beanRecords); HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); @@ -104,7 +137,6 @@ nowTime.setTime(liveStreaming.getStartTime()); nowTime.add(Calendar.MINUTE, liveStreaming.getDuration()); String currentTime = df.format(nowTime.getTime()); System.out.println("30分钟后的时间" + currentTime); return df.parse(currentTime); } @@ -119,7 +151,7 @@ if (liveStreaming.getMaxPerson() > 120){ throw new RuntimeException("可容纳人数暂时最多为120人"); } liveStreaming.setStatus(0); liveStreaming.setEndTime(getEndTime1(liveStreaming)); if (save(liveStreaming)) { zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java