From c480eb65432f700d971d9a79173d77986df1df54 Mon Sep 17 00:00:00 2001 From: zqy <2522236926> Date: 星期五, 24 五月 2024 16:46:23 +0800 Subject: [PATCH] 直播 --- zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java | 9 + zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java | 132 ++++++++++++++++++ zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java | 63 +++++++++ zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java | 77 +++++++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java | 48 ++++++ zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java | 16 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java | 40 +++++ zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java | 9 + zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java | 13 + 9 files changed, 407 insertions(+), 0 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java new file mode 100644 index 0000000..f0a88f2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingBackController.java @@ -0,0 +1,40 @@ +package com.ruoyi.web.controller.zhang; + +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.utils.ServletUtils; +import com.ruoyi.domain.LiveStreaming; +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 static com.ruoyi.common.core.page.TableSupport.PAGE_NUM; +import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE; + +@Slf4j +@RestController +@RequestMapping("/zLiveStreamingBack") +public class LiveStreamingBackController extends BaseController { + @Autowired + private LiveStreamingService liveStreamingService; + + @GetMapping("/all") + public AjaxResult listAll(LiveStreaming liveStreaming){ + Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); + Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); + return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize); + } + /** + * 閫氳繃id鑾峰彇鐩存挱鍥炴斁璇︾粏淇℃伅 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(liveStreamingService.getById(id)); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java new file mode 100644 index 0000000..938c27d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/LiveStreamingController.java @@ -0,0 +1,48 @@ +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.LiveStreamingService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM; +import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE; + +@Slf4j +@RestController +@RequestMapping("/zLiveStreaming") +public class LiveStreamingController extends BaseController { + @Autowired + private LiveStreamingService liveStreamingService; + + @GetMapping("/all") + public AjaxResult listAll(LiveStreaming liveStreaming){ + Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); + Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); + return liveStreamingService.selectDataList(liveStreaming, pageNum, pageSize); + } + /** + * 閫氳繃id鑾峰彇鐩存挱璇︾粏淇℃伅 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(liveStreamingService.getById(id)); + } + /** + * 鏂板鐩存挱 + */ + @Log(title = "鐩存挱", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody LiveStreaming liveStreaming) + { + return liveStreamingService.addData(liveStreaming); + } +} diff --git a/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java b/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java new file mode 100644 index 0000000..d0b55d9 --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/domain/LiveStreaming.java @@ -0,0 +1,63 @@ +package com.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; + +import java.sql.Timestamp; +import java.util.Date; + +@Data +@TableName("live_streaming") +public class LiveStreaming { + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 寮�濮嬪紑浼氭椂闂� + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + /** + * 缁撴潫寮�浼氭椂闂� + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + /** + * 鏍囬 + */ + private String title; + /** + * 鐢宠浜� + */ + private String applyPerson; + /** + * 鑱旂郴浜� + */ + private String contactPerson; + /** + * 鑱旂郴鐢佃瘽 + */ + private String contactPhone; + /** + * 鐢熸垚鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 寮�濮嬫椂闂� + */ + @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP) + private Timestamp happenStartTime; + + /** + * 缁撴潫鏃堕棿 + */ + @TableField(exist = false, jdbcType = JdbcType.TIMESTAMP) + private Timestamp happenEndTime; + +} diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java new file mode 100644 index 0000000..b87c077 --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingBackMapper.java @@ -0,0 +1,9 @@ +package com.ruoyi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.domain.LiveStreaming; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface LiveStreamingBackMapper extends BaseMapper<LiveStreaming> { +} diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java new file mode 100644 index 0000000..90be548 --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/mapper/LiveStreamingMapper.java @@ -0,0 +1,9 @@ +package com.ruoyi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.domain.LiveStreaming; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface LiveStreamingMapper extends BaseMapper<LiveStreaming> { +} diff --git a/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java new file mode 100644 index 0000000..afab862 --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingBackService.java @@ -0,0 +1,13 @@ +package com.ruoyi.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.domain.LiveStreaming; + +import java.util.List; + +public interface LiveStreamingBackService extends IService<LiveStreaming> { + AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize); + + List<LiveStreaming> selectByIds(Long[] ids); +} diff --git a/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java new file mode 100644 index 0000000..59354ff --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/service/LiveStreamingService.java @@ -0,0 +1,16 @@ +package com.ruoyi.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.domain.LiveStreaming; +import org.springframework.stereotype.Service; + +import java.util.List; + +public interface LiveStreamingService extends IService<LiveStreaming> { + AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize); + + List<LiveStreaming> selectByIds(Long[] ids); + + AjaxResult addData(LiveStreaming liveStreaming); +} diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java new file mode 100644 index 0000000..78b43fe --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingBackServiceImpl.java @@ -0,0 +1,77 @@ +package com.ruoyi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.utils.MapUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.domain.LiveStreaming; +import com.ruoyi.mapper.LiveStreamingBackMapper; +import com.ruoyi.service.LiveStreamingBackService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +@Service +public class LiveStreamingBackServiceImpl extends ServiceImpl<LiveStreamingBackMapper, LiveStreaming> implements LiveStreamingBackService { + + private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) { + LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>(); +// lqw.in(LiveStreaming::getFamilyId,familyIdList); + lqw.orderByDesc(LiveStreaming::getCreateTime); + 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()); + lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime()); + + return lqw; + } + + @Override + public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) { + //瑕佹煡鑷繁瀹跺涵鐨� +// ZInfoUser myself = zInfoUserService.getMyself(); +// if(myself==null) +// { +// // System.out.println("ssssss"); +// return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�"); +// } +// Long familyId = myself.getFamilyId(); +// //涔熻鏌ュ埆浜烘巿鏉冪殑 +// List<ZAuthority> authority = zAuthorityService.getAuthority(); +// List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); +// //鍔犱笂鑷繁瀹跺涵鐨刬d +// idList.add(familyId); +// String familyIds = listFamilyIds(); +// String secondFamilyAuthority = listSecondFamilyIds(); + LambdaQueryWrapper<LiveStreaming> lqw = buildCondition(liveStreaming); + + + Page<LiveStreaming> liveStreamingPage = new Page<>(pageNum, pageSize); + Page<LiveStreaming> pageResult = page(liveStreamingPage, lqw); + + List<LiveStreaming> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹� + +// List<LiveStreaming> dtoResult = markOwnData(familyId, beanRecords); + + HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords); + return AjaxResult.success(data); + + } + + + @Override + public List<LiveStreaming> selectByIds(Long[] ids) { + List<LiveStreaming> list = new ArrayList<>(); + if (ids.length != 0) + list = listByIds(Arrays.asList(ids)); + else + list = list(); + return list; + } + +} diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java new file mode 100644 index 0000000..f153e93 --- /dev/null +++ b/zhang-content/src/main/java/com/ruoyi/service/impl/LiveStreamingServiceImpl.java @@ -0,0 +1,132 @@ +package com.ruoyi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.*; +import com.ruoyi.mapper.LiveStreamingMapper; +import com.ruoyi.service.EsService; +import com.ruoyi.service.LiveStreamingService; +import com.ruoyi.service.ZAuthorityService; +import com.ruoyi.service.ZInfoUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +import static com.ruoyi.constant.MenuAuthority.DOCTOR_LIST; +@Slf4j +@Service +public class LiveStreamingServiceImpl extends ServiceImpl<LiveStreamingMapper, LiveStreaming> implements LiveStreamingService { + + @Resource + ZInfoUserService zInfoUserService; + + @Resource + ZAuthorityService zAuthorityService; + + @Resource + private EsService esSer; + + private LambdaQueryWrapper<LiveStreaming> buildCondition(LiveStreaming liveStreaming) { + LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>(); +// lqw.in(LiveStreaming::getFamilyId,familyIdList); + lqw.orderByDesc(LiveStreaming::getCreateTime); + 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()); + lqw.between(liveStreaming.getHappenStartTime() != null && liveStreaming.getHappenEndTime() != null,LiveStreaming::getCreateTime,liveStreaming.getHappenStartTime(),liveStreaming.getHappenEndTime()); + + return lqw; + } + + private LambdaQueryWrapper<LiveStreaming> uniqueCondition(LiveStreaming liveStreaming){ + LambdaQueryWrapper<LiveStreaming> lqw = new LambdaQueryWrapper<>(); + lqw.eq(!StringUtils.isEmpty(liveStreaming.getTitle()), LiveStreaming::getTitle, liveStreaming.getTitle()); + lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPhone()), LiveStreaming::getContactPhone, liveStreaming.getContactPhone()); + lqw.eq(!StringUtils.isEmpty(liveStreaming.getApplyPerson()), LiveStreaming::getApplyPerson, liveStreaming.getApplyPerson()); + lqw.eq(!StringUtils.isEmpty(liveStreaming.getContactPerson()), LiveStreaming::getContactPerson, liveStreaming.getContactPerson()); + return lqw; + } + + @Override + public AjaxResult selectDataList(LiveStreaming liveStreaming, Integer pageNum, Integer pageSize) { + //瑕佹煡鑷繁瀹跺涵鐨� +// ZInfoUser myself = zInfoUserService.getMyself(); +// if(myself==null) +// { +// // System.out.println("ssssss"); +// return AjaxResult.success("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�"); +// } +// Long familyId = myself.getFamilyId(); +// //涔熻鏌ュ埆浜烘巿鏉冪殑 +// List<ZAuthority> authority = zAuthorityService.getAuthority(); +// List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); +// //鍔犱笂鑷繁瀹跺涵鐨刬d +// idList.add(familyId); +// String familyIds = listFamilyIds(); +// String secondFamilyAuthority = listSecondFamilyIds(); + LambdaQueryWrapper<LiveStreaming> lqw = buildCondition(liveStreaming); + + + Page<LiveStreaming> liveStreamingPage = new Page<>(pageNum, pageSize); + Page<LiveStreaming> pageResult = page(liveStreamingPage, lqw); + + List<LiveStreaming> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹� + +// List<LiveStreaming> dtoResult = markOwnData(familyId, beanRecords); + + HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords); + return AjaxResult.success(data); + + } + + + @Override + public List<LiveStreaming> selectByIds(Long[] ids) { + List<LiveStreaming> list = new ArrayList<>(); + if (ids.length != 0) + list = listByIds(Arrays.asList(ids)); + else + list = list(); + return list; + } + + @Override + public AjaxResult addData(LiveStreaming liveStreaming) { + LambdaQueryWrapper<LiveStreaming> lqw = uniqueCondition(liveStreaming); + List<LiveStreaming> list = list(lqw); + + if(list.size()>0){ + throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁"); + } + + if (save(liveStreaming)) { + EsModel esModel = new EsModel(); + Long inte =liveStreaming.getId(); + String uuid = UUID.randomUUID().toString().replace("-",""); + esModel.setId(uuid); + esModel.setCtId(Long.valueOf(inte)); + esModel.setCtTableName("鐩存挱"); + esModel.setBy1(liveStreaming.getTitle()); + esModel.setBy2(liveStreaming.getApplyPerson()); + + //杩欓噷瀛樺偍鏌ヨ璇︽儏鐨勮矾寰� + esModel.setBy5("/zLIveStreaming"); +// esModel.setFid(familyId); + esSer.insertTable(esModel); +// System.out.println(esModel); + + return AjaxResult.success(); + } else { + return AjaxResult.error(); + + } + } +} -- Gitblit v1.9.1