mitao
2025-01-12 0f9fdb03e866a21b9242d5ad8d65ca9359e1950f
管理后台直播模块接口
5个文件已修改
1个文件已添加
146 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLiveController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLiveController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/XiaoeLiveQueryDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/XiaoeLiveVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/biz/XiaoeLiveService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/utils/XiaoeUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());