From 0f9fdb03e866a21b9242d5ad8d65ca9359e1950f Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期日, 12 一月 2025 18:03:29 +0800 Subject: [PATCH] 管理后台直播模块接口 --- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java | 11 +++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java | 3 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java | 38 ++++++++++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java | 3 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java | 89 +++++++++++++++++++++++++++++ 6 files changed, 145 insertions(+), 1 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java index 2efc448..428ab64 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java +++ b/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 diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java new file mode 100644 index 0000000..278fa26 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java @@ -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(); + } +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java index 83974ca..7f4bd6d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java index 0eeebe2..bc529de 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java +++ b/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; + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java index 9df3c7d..43fe15b 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java +++ b/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(); + } + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java index d409416..b34b7b4 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java +++ b/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()); -- Gitblit v1.7.1