be41a1f1 by 张方超

# 修改/core/upgrade/list接口

1. 课程返回新增能打包判断逻辑
2. 课程返回,ppt文件字段格式修改
1 parent 94a624aa
ALTER TABLE `legov22`.`core_course`
ADD COLUMN `can_pack` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否打包,默认否' AFTER `del_flag`;
\ No newline at end of file
package com.lego.common.core.domain.dto;
import lombok.Data;
/**
* 业务文件vo
* @author zfc
* @version 1.0
* @date 2025/6/2 18:41
*/
@Data
public class BizFileVo {
private String ossId;
private String url;
private String type;
private Integer sort;
}
package com.lego.common.core.service;
import com.lego.common.core.domain.dto.BizFileVo;
import java.util.List;
/**
* 通用 OSS服务
*
......@@ -15,4 +19,5 @@ public interface OssService {
*/
String selectUrlByIds(String ossIds);
List<BizFileVo> selectFileVoByIds(String ossIds);
}
......
......@@ -118,4 +118,9 @@ public class Course extends BaseEntity {
@TableLogic
private String delFlag;
/**
* 是否打包,默认否
*/
private Integer canPack;
}
\ No newline at end of file
......
package com.lego.core.domin.vo;
import com.lego.common.core.domain.dto.BizFileVo;
import lombok.Data;
import java.util.List;
/**
* 课程视图对象 core_course
*
......@@ -118,6 +121,11 @@ public class CourseVo {
private String pptOssUrl;
/**
*
*/
private List<BizFileVo> pptFileVoList;
/**
* ppt名称
*/
private String pptName;
......
......@@ -3,6 +3,7 @@ package com.lego.core.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lego.common.core.page.TableDataInfo;
......@@ -109,13 +110,20 @@ public class CourseServiceImpl implements ICourseService {
return list;
}
public List<CourseVo> selectCanPackList() {
LambdaQueryWrapper<Course> w = Wrappers.lambdaQuery();
w.eq(Course::getCanPack, 1);
return baseMapper.selectVoList(w);
}
/**
* 获取所有课程
* @return
*/
@Override
public List<CourseVo> list() {
List<CourseVo> list = baseMapper.selectVoList(null);
List<CourseVo> list = selectCanPackList();
for (CourseVo vo : list) {
if(StrUtil.isNotBlank(vo.getTwoDimensionalOssId())){
vo.setTwoDimensionalOssUrl(ossUrlService.selectUrlByIds(vo.getTwoDimensionalOssId()));
......@@ -143,6 +151,7 @@ public class CourseServiceImpl implements ICourseService {
}
if(StrUtil.isNotBlank(vo.getPptOssId())){
vo.setPptOssUrl(ossUrlService.selectUrlByIds(vo.getPptOssId()));
vo.setPptFileVoList(ossUrlService.selectFileVoByIds(vo.getPptOssId()));
}
if(StrUtil.isNotBlank(vo.getOssId())){
vo.setOssUrl(ossUrlService.selectUrlByIds(vo.getOssId()));
......
......@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lego.common.core.service.ConfigService;
import com.lego.system.domain.bo.SysOssBo;
import com.lego.common.core.domain.dto.BizFileVo;
import com.lego.system.service.ISysOssService;
import com.lego.common.constant.CacheNames;
import com.lego.common.core.domain.PageQuery;
......@@ -28,6 +29,7 @@ import com.lego.system.domain.SysOss;
import com.lego.system.domain.vo.SysOssVo;
import com.lego.system.mapper.SysOssMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
......@@ -50,6 +52,7 @@ import java.util.stream.Collectors;
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class SysOssServiceImpl implements ISysOssService, OssService {
private final SysOssMapper baseMapper;
......@@ -125,6 +128,39 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
return String.join(StringUtils.SEPARATOR, repList);
}
@Override
public List<BizFileVo> selectFileVoByIds(String ossIds) {
List<BizFileVo> voList = new ArrayList<>();
String baseUrl = configService.getConfigValue("sys.oss.baseUrl");
int sort = 0;
for (Long id : StringUtils.splitTo(ossIds, Convert::toLong)) {
SysOssVo sysOssVo = SpringUtils.getAopProxy(this).getById(id);
sort +=1;
if (null == sysOssVo) {
log.error("selectFileVoByIds失败,数据不存在,ossId【{}】", id);
continue;
}
try {
String url = this.matchingUrl(sysOssVo).getUrl();
if (StrUtil.isNotBlank(baseUrl)) {
url = url.replace("127.0.0.1:9000", baseUrl);
}
BizFileVo vo = new BizFileVo();
vo.setOssId(String.valueOf(id));
vo.setType(sysOssVo.getFileSuffix());
vo.setUrl(url);
vo.setSort(sort);
voList.add(vo);
} catch (Exception ex) {
// 如果oss异常无法连接则将数据直接返回
log.warn("selectFileVoByIds发生异常,ex:", ex);
}
}
return voList;
}
private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery();
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!