be41a1f1 by 张方超

# 修改/core/upgrade/list接口

1. 课程返回新增能打包判断逻辑
2. 课程返回,ppt文件字段格式修改
1 parent 94a624aa
1 ALTER TABLE `legov22`.`core_course`
2 ADD COLUMN `can_pack` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否打包,默认否' AFTER `del_flag`;
...\ No newline at end of file ...\ No newline at end of file
1 package com.lego.common.core.domain.dto;
2
3 import lombok.Data;
4
5 /**
6 * 业务文件vo
7 * @author zfc
8 * @version 1.0
9 * @date 2025/6/2 18:41
10 */
11 @Data
12 public class BizFileVo {
13
14 private String ossId;
15
16 private String url;
17
18 private String type;
19
20 private Integer sort;
21 }
1 package com.lego.common.core.service; 1 package com.lego.common.core.service;
2 2
3 import com.lego.common.core.domain.dto.BizFileVo;
4
5 import java.util.List;
6
3 /** 7 /**
4 * 通用 OSS服务 8 * 通用 OSS服务
5 * 9 *
...@@ -15,4 +19,5 @@ public interface OssService { ...@@ -15,4 +19,5 @@ public interface OssService {
15 */ 19 */
16 String selectUrlByIds(String ossIds); 20 String selectUrlByIds(String ossIds);
17 21
22 List<BizFileVo> selectFileVoByIds(String ossIds);
18 } 23 }
......
...@@ -118,4 +118,9 @@ public class Course extends BaseEntity { ...@@ -118,4 +118,9 @@ public class Course extends BaseEntity {
118 @TableLogic 118 @TableLogic
119 private String delFlag; 119 private String delFlag;
120 120
121 /**
122 * 是否打包,默认否
123 */
124 private Integer canPack;
125
121 } 126 }
...\ No newline at end of file ...\ No newline at end of file
......
1 package com.lego.core.domin.vo; 1 package com.lego.core.domin.vo;
2 2
3 import com.lego.common.core.domain.dto.BizFileVo;
3 import lombok.Data; 4 import lombok.Data;
4 5
6 import java.util.List;
7
5 /** 8 /**
6 * 课程视图对象 core_course 9 * 课程视图对象 core_course
7 * 10 *
...@@ -118,6 +121,11 @@ public class CourseVo { ...@@ -118,6 +121,11 @@ public class CourseVo {
118 private String pptOssUrl; 121 private String pptOssUrl;
119 122
120 /** 123 /**
124 *
125 */
126 private List<BizFileVo> pptFileVoList;
127
128 /**
121 * ppt名称 129 * ppt名称
122 */ 130 */
123 private String pptName; 131 private String pptName;
......
...@@ -3,6 +3,7 @@ package com.lego.core.service.impl; ...@@ -3,6 +3,7 @@ package com.lego.core.service.impl;
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.util.ObjectUtil; 4 import cn.hutool.core.util.ObjectUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
6 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 7 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 8 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8 import com.lego.common.core.page.TableDataInfo; 9 import com.lego.common.core.page.TableDataInfo;
...@@ -109,13 +110,20 @@ public class CourseServiceImpl implements ICourseService { ...@@ -109,13 +110,20 @@ public class CourseServiceImpl implements ICourseService {
109 return list; 110 return list;
110 } 111 }
111 112
113 public List<CourseVo> selectCanPackList() {
114 LambdaQueryWrapper<Course> w = Wrappers.lambdaQuery();
115 w.eq(Course::getCanPack, 1);
116 return baseMapper.selectVoList(w);
117
118 }
119
112 /** 120 /**
113 * 获取所有课程 121 * 获取所有课程
114 * @return 122 * @return
115 */ 123 */
116 @Override 124 @Override
117 public List<CourseVo> list() { 125 public List<CourseVo> list() {
118 List<CourseVo> list = baseMapper.selectVoList(null); 126 List<CourseVo> list = selectCanPackList();
119 for (CourseVo vo : list) { 127 for (CourseVo vo : list) {
120 if(StrUtil.isNotBlank(vo.getTwoDimensionalOssId())){ 128 if(StrUtil.isNotBlank(vo.getTwoDimensionalOssId())){
121 vo.setTwoDimensionalOssUrl(ossUrlService.selectUrlByIds(vo.getTwoDimensionalOssId())); 129 vo.setTwoDimensionalOssUrl(ossUrlService.selectUrlByIds(vo.getTwoDimensionalOssId()));
...@@ -143,6 +151,7 @@ public class CourseServiceImpl implements ICourseService { ...@@ -143,6 +151,7 @@ public class CourseServiceImpl implements ICourseService {
143 } 151 }
144 if(StrUtil.isNotBlank(vo.getPptOssId())){ 152 if(StrUtil.isNotBlank(vo.getPptOssId())){
145 vo.setPptOssUrl(ossUrlService.selectUrlByIds(vo.getPptOssId())); 153 vo.setPptOssUrl(ossUrlService.selectUrlByIds(vo.getPptOssId()));
154 vo.setPptFileVoList(ossUrlService.selectFileVoByIds(vo.getPptOssId()));
146 } 155 }
147 if(StrUtil.isNotBlank(vo.getOssId())){ 156 if(StrUtil.isNotBlank(vo.getOssId())){
148 vo.setOssUrl(ossUrlService.selectUrlByIds(vo.getOssId())); 157 vo.setOssUrl(ossUrlService.selectUrlByIds(vo.getOssId()));
......
...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
10 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 10 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
11 import com.lego.common.core.service.ConfigService; 11 import com.lego.common.core.service.ConfigService;
12 import com.lego.system.domain.bo.SysOssBo; 12 import com.lego.system.domain.bo.SysOssBo;
13 import com.lego.common.core.domain.dto.BizFileVo;
13 import com.lego.system.service.ISysOssService; 14 import com.lego.system.service.ISysOssService;
14 import com.lego.common.constant.CacheNames; 15 import com.lego.common.constant.CacheNames;
15 import com.lego.common.core.domain.PageQuery; 16 import com.lego.common.core.domain.PageQuery;
...@@ -28,6 +29,7 @@ import com.lego.system.domain.SysOss; ...@@ -28,6 +29,7 @@ import com.lego.system.domain.SysOss;
28 import com.lego.system.domain.vo.SysOssVo; 29 import com.lego.system.domain.vo.SysOssVo;
29 import com.lego.system.mapper.SysOssMapper; 30 import com.lego.system.mapper.SysOssMapper;
30 import lombok.RequiredArgsConstructor; 31 import lombok.RequiredArgsConstructor;
32 import lombok.extern.slf4j.Slf4j;
31 import org.springframework.cache.annotation.Cacheable; 33 import org.springframework.cache.annotation.Cacheable;
32 import org.springframework.http.MediaType; 34 import org.springframework.http.MediaType;
33 import org.springframework.stereotype.Service; 35 import org.springframework.stereotype.Service;
...@@ -50,6 +52,7 @@ import java.util.stream.Collectors; ...@@ -50,6 +52,7 @@ import java.util.stream.Collectors;
50 */ 52 */
51 @RequiredArgsConstructor 53 @RequiredArgsConstructor
52 @Service 54 @Service
55 @Slf4j
53 public class SysOssServiceImpl implements ISysOssService, OssService { 56 public class SysOssServiceImpl implements ISysOssService, OssService {
54 57
55 private final SysOssMapper baseMapper; 58 private final SysOssMapper baseMapper;
...@@ -125,6 +128,39 @@ public class SysOssServiceImpl implements ISysOssService, OssService { ...@@ -125,6 +128,39 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
125 return String.join(StringUtils.SEPARATOR, repList); 128 return String.join(StringUtils.SEPARATOR, repList);
126 } 129 }
127 130
131 @Override
132 public List<BizFileVo> selectFileVoByIds(String ossIds) {
133 List<BizFileVo> voList = new ArrayList<>();
134 String baseUrl = configService.getConfigValue("sys.oss.baseUrl");
135 int sort = 0;
136 for (Long id : StringUtils.splitTo(ossIds, Convert::toLong)) {
137 SysOssVo sysOssVo = SpringUtils.getAopProxy(this).getById(id);
138 sort +=1;
139 if (null == sysOssVo) {
140 log.error("selectFileVoByIds失败,数据不存在,ossId【{}】", id);
141 continue;
142 }
143 try {
144 String url = this.matchingUrl(sysOssVo).getUrl();
145 if (StrUtil.isNotBlank(baseUrl)) {
146 url = url.replace("127.0.0.1:9000", baseUrl);
147 }
148 BizFileVo vo = new BizFileVo();
149 vo.setOssId(String.valueOf(id));
150 vo.setType(sysOssVo.getFileSuffix());
151 vo.setUrl(url);
152 vo.setSort(sort);
153 voList.add(vo);
154
155 } catch (Exception ex) {
156 // 如果oss异常无法连接则将数据直接返回
157 log.warn("selectFileVoByIds发生异常,ex:", ex);
158 }
159 }
160
161 return voList;
162 }
163
128 private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) { 164 private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
129 Map<String, Object> params = bo.getParams(); 165 Map<String, Object> params = bo.getParams();
130 LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery(); 166 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!