ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java
@@ -46,6 +46,17 @@ } /** * 直播详情 * @param id * @return */ @ApiOperation("直播详情") @GetMapping("/detail/{id}") public R<XiaoeLiveVo> detail(@ApiParam(name = "id",value = "直播id", required = true) @PathVariable("id") String id) { return R.ok(xiaoeLiveService.getLiveDetail(id)); } /** * 预约直播 * @param id * @return ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java
New file @@ -0,0 +1,89 @@ package com.ruoyi.goods.controller.management; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.goods.domain.dto.XiaoeLiveDto; import com.ruoyi.goods.domain.dto.XiaoeLiveQueryDto; import com.ruoyi.goods.domain.vo.XiaoeLiveVo; import com.ruoyi.goods.service.biz.XiaoeLiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; /** * @author mitao * @date 2025/1/12 */ @Api(tags = {"管理后台直播相关接口"}) @RestController @RequestMapping("/mgt/live") @RequiredArgsConstructor public class MgtLiveController { private final XiaoeLiveService xiaoeLiveService; /** * 直播分页列表 * @param dto * @return */ @ApiOperation("直播分页列表") @PostMapping("/page") public R<Page<XiaoeLiveVo>> page(@Valid @RequestBody XiaoeLiveQueryDto dto) { return R.ok(xiaoeLiveService.getMgtLivePage(dto)); } /** * 直播详情 * @param id * @return */ @ApiOperation("直播详情") @GetMapping("/detail/{id}") public R<XiaoeLiveVo> detail(@ApiParam(name = "id",value = "直播id", required = true) @PathVariable("id") String id) { return R.ok(xiaoeLiveService.getLiveDetail(id)); } /** * 创建直播 * @param dto * @return */ @ApiOperation("添加直播") @PostMapping("/create") public R<?> create(@Valid @RequestBody XiaoeLiveDto dto) { xiaoeLiveService.create(dto,1); return R.ok(); } /** * 编辑直播 * @param dto * @return */ @ApiOperation("编辑直播") @PutMapping public R<Boolean> edit(@Valid @RequestBody XiaoeLiveDto dto) { return R.ok(xiaoeLiveService.edit(dto)); } /** * 删除直播 * @param id * @return */ @ApiOperation("删除") @DeleteMapping("/{id}") public R<?> delete(@ApiParam(name = "id",value = "直播id", required = true) @PathVariable("id") String id) { xiaoeLiveService.deleteLive(id); return R.ok(); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java
@@ -32,4 +32,7 @@ @ApiModelProperty(value = "每页条数,最大50条;默认10") private Integer pageSize; @ApiModelProperty("门店id") private Long shopId; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java
@@ -106,4 +106,7 @@ @ApiModelProperty("预约状态 1:已预约 0:未预约") private Integer appointmentState=0; @ApiModelProperty("创建门店") private String shopName; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java
@@ -1,5 +1,6 @@ package com.ruoyi.goods.service.biz; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -81,6 +82,14 @@ return livePageList; } /** * 直播详情 * @param id * @return */ public XiaoeLiveVo getLiveDetail(String id) { return xiaoeUtils.getLiveDetail(id); } /** * 预约直播 * @param id @@ -245,5 +254,34 @@ return xiaoeUtils.editLive(dto); } /** * 管理后台直播分页列表 * @param dto * @return */ public Page<XiaoeLiveVo> getMgtLivePage(XiaoeLiveQueryDto dto) { Page<XiaoeLiveVo> livePageList = xiaoeUtils.getLivePageList(dto); Long shopId = dto.getShopId(); if (Objects.nonNull(shopId)) { List<XiaoeLiveRecord> xiaoeLiveRecords = xiaoeLiveRecordService.getListByShopId(shopId); if (CollUtil.isNotEmpty(xiaoeLiveRecords)) { List<String> liveIdList = xiaoeLiveRecords.stream().map(XiaoeLiveRecord::getLiveId).collect(Collectors.toList()); List<XiaoeLiveVo> filteredList = livePageList.getRecords().stream().filter(item -> liveIdList.contains(item.getId())).collect(Collectors.toList()); livePageList.setRecords(filteredList); } } return livePageList; } /** * 删除直播 * @param id */ public void deleteLive(String id) { Boolean flag = xiaoeUtils.deleteLive(id); if (flag) { //删除直播添加记录 xiaoeLiveRecordService.lambdaUpdate().eq(XiaoeLiveRecord::getLiveId, id).remove(); } } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java
@@ -112,7 +112,7 @@ Map<String,Object> postParams = new HashMap<>(); postParams.put("search_content", dto.getSearchContent()); postParams.put("create_mode", dto.getCreateMode()); postParams.put("state", dto.getState()); postParams.put("state", 0); postParams.put("search_alive_type", dto.getSearchAliveType()); postParams.put("alive_play_state", dto.getAlivePlayState()); postParams.put("page", dto.getPage());