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