From 8f2b25bdc4ec1c803704d8ca37690462bb1106ea Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 16 五月 2024 16:49:56 +0800
Subject: [PATCH] 学习文件管理端
---
src/main/java/com/mindskip/xzs/utility/Constants.java | 2
src/main/java/com/mindskip/xzs/controller/common/UploadController.java | 13 +++-
src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java | 27 +++++++-
src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java | 4
src/main/resources/mapper/StudyTypeMapper.xml | 2
src/main/java/com/mindskip/xzs/configuration/spring/mvc/WebMvcConfiguration.java | 33 ++++++++--
src/main/java/com/mindskip/xzs/domain/OnlineStudy.java | 2
src/main/resources/mapper/OnlineStudyMapper.xml | 27 ++++++--
src/main/java/com/mindskip/xzs/base/RestResponse.java | 6 ++
src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java | 43 +++++++++++++-
10 files changed, 127 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/base/RestResponse.java b/src/main/java/com/mindskip/xzs/base/RestResponse.java
index e8b9d09..4614a5e 100644
--- a/src/main/java/com/mindskip/xzs/base/RestResponse.java
+++ b/src/main/java/com/mindskip/xzs/base/RestResponse.java
@@ -97,4 +97,10 @@
public RestResponse() {
}
+
+ @Override
+ public RestResponse put(String key, Object value) {
+ super.put(key, value);
+ return this;
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/configuration/spring/mvc/WebMvcConfiguration.java b/src/main/java/com/mindskip/xzs/configuration/spring/mvc/WebMvcConfiguration.java
index 6fa3cae..7068633 100644
--- a/src/main/java/com/mindskip/xzs/configuration/spring/mvc/WebMvcConfiguration.java
+++ b/src/main/java/com/mindskip/xzs/configuration/spring/mvc/WebMvcConfiguration.java
@@ -6,7 +6,11 @@
import com.mindskip.xzs.utility.Constants;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.*;
import java.io.File;
@@ -57,14 +61,27 @@
super.addInterceptors(registry);
}
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**")
- .allowCredentials(true)
- .allowedMethods("*")
- .allowedOrigins("*")
- .allowedHeaders("*");
- super.addCorsMappings(registry);
+ /**
+ * 璺ㄥ煙閰嶇疆
+ */
+ @Bean
+ public CorsFilter corsFilter()
+ {
+ CorsConfiguration config = new CorsConfiguration();
+ config.setAllowCredentials(true);
+ // 璁剧疆璁块棶婧愬湴鍧�
+ config.addAllowedOrigin("*");
+ // 璁剧疆璁块棶婧愯姹傚ご
+ config.addAllowedHeader("*");
+ // 璁剧疆璁块棶婧愯姹傛柟娉�
+ config.addAllowedMethod("*");
+ // 鏈夋晥鏈� 1800绉�
+ config.setMaxAge(1800L);
+ // 娣诲姞鏄犲皠璺緞锛屾嫤鎴竴鍒囪姹�
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", config);
+ // 杩斿洖鏂扮殑CorsFilter
+ return new CorsFilter(source);
}
}
diff --git a/src/main/java/com/mindskip/xzs/controller/common/UploadController.java b/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
index 2c2ed72..4c1f474 100644
--- a/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
+++ b/src/main/java/com/mindskip/xzs/controller/common/UploadController.java
@@ -11,6 +11,8 @@
import java.io.File;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.UUID;
/**
* @author锛歺p
@@ -36,8 +38,8 @@
}
try {
// 鑾峰彇鏂囦欢鍚�
- String fileName = StringUtils.cleanPath(file.getOriginalFilename());
-
+ String originalFileName = StringUtils.cleanPath(file.getOriginalFilename());
+ String randomName = UUID.randomUUID().toString().replace("-", "") + originalFileName.substring(originalFileName.lastIndexOf("."));
// 鎸囧畾鏂囦欢瀛樺偍璺緞
String uploadDir = ruoYiConfig.getUrl(); // 淇敼涓烘偍甯屾湜瀛樺偍鐨勭洰褰�
// 濡傛灉鐩綍涓嶅瓨鍦紝鍒欏垱寤虹洰褰�
@@ -46,11 +48,14 @@
dir.mkdirs();
}
// 鏋勫缓鐩爣鏂囦欢鐨勮矾寰�
- String filePath = uploadDir + "/" + fileName;
+ String filePath = uploadDir + "/" + randomName;
// 灏嗘枃浠朵繚瀛樺埌鐩爣浣嶇疆
file.transferTo(new File(filePath));
// 杩斿洖鎴愬姛鍝嶅簲
- return RestResponse.ok("鏂囦欢涓婁紶鎴愬姛");
+ HashMap hashMap = new HashMap(2);
+ hashMap.put("name", originalFileName);
+ hashMap.put("url", randomName);
+ return RestResponse.ok(hashMap);
} catch (IOException e) {
e.printStackTrace();
// 杩斿洖澶辫触鍝嶅簲
diff --git a/src/main/java/com/mindskip/xzs/domain/OnlineStudy.java b/src/main/java/com/mindskip/xzs/domain/OnlineStudy.java
index b29cb1a..01fc2e4 100644
--- a/src/main/java/com/mindskip/xzs/domain/OnlineStudy.java
+++ b/src/main/java/com/mindskip/xzs/domain/OnlineStudy.java
@@ -22,7 +22,7 @@
private String contentUrl;
/** 鎵�灞炲垎绫� */
- private String belongType;
+ private Integer belongType;
/** 涓婚 */
private String subject;
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java b/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
index ebbb906..8d30e56 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/OnlineStudyVO.java
@@ -3,7 +3,9 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
import java.util.Date;
+import java.util.List;
/**
* @author锛歺p
@@ -23,19 +25,36 @@
private String contentType;
/** 鏂囦欢鍦板潃 */
- @NotBlank(message = "璇蜂笂浼犳枃浠�")
- private String contentUrl;
+ @NotNull(message = "璇蜂笂浼犳枃浠�")
+ private UploadFile contentUrl;
+ private String contentUrlString;
/** 鎵�灞炲垎绫� */
- @NotBlank(message = "璇烽�夋嫨鍒嗙被")
- private String belongType;
+ @NotNull(message = "璇烽�夋嫨鍒嗙被")
+ private Integer belongType;
+ private String typeName;
/** 涓婚 */
@NotBlank(message = "璇疯緭鍏ヤ富棰�")
private String subject;
+ /** 闄勪欢 */
+ private List<UploadFile> attachment;
+ private String attachmentString;
+
private Date createTime;
private Date updateTime;
+ @Data
+ public static class UploadFile {
+
+ /** 鍦板潃 */
+ private String url;
+
+
+ /** 鏂囦欢鍘熷鍚� */
+ private String name;
+
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java b/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
index a4ee989..123b02f 100644
--- a/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
@@ -14,9 +14,9 @@
@Mapper
public interface OnlineStudyMapper {
- void add(@Param("form") OnlineStudyVO form);
+ void add(@Param("form") OnlineStudy form);
- void update(@Param("form") OnlineStudyVO form);
+ void update(@Param("form") OnlineStudy form);
void remove(@Param("ids") List<Integer> ids);
diff --git a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
index 3af5f30..b62c392 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
@@ -1,14 +1,25 @@
package com.mindskip.xzs.service.impl;
+import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.RestResponse;
+import com.mindskip.xzs.domain.OnlineStudy;
+import com.mindskip.xzs.domain.question.QuestionObject;
import com.mindskip.xzs.domain.vo.OnlineStudyVO;
import com.mindskip.xzs.repository.OnlineStudyMapper;
import com.mindskip.xzs.service.OnlineStudyService;
+import com.mindskip.xzs.utility.JsonUtil;
+import jdk.nashorn.internal.ir.IfNode;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* @author锛歺p
@@ -22,13 +33,32 @@
@Override
public RestResponse add(OnlineStudyVO form) {
- mapper.add(form);
+ OnlineStudy onlineStudy = new OnlineStudy();
+ BeanUtils.copyProperties(form, onlineStudy);
+ onlineStudy.setContentUrl(JSON.toJSONString(form.getContentUrl()));
+ if (! CollectionUtils.isEmpty(form.getAttachment())) {
+ onlineStudy.setAttachment(JSON.toJSONString(form.getAttachment()));
+ }
+ onlineStudy.setCreateTime(new Date());
+ onlineStudy.setUpdateTime(new Date());
+ mapper.add(onlineStudy);
return RestResponse.ok("娣诲姞鎴愬姛");
}
@Override
public RestResponse update(OnlineStudyVO form) {
- mapper.update(form);
+ if (Objects.isNull(form.getId())) {
+ throw new RuntimeException("璇烽�夋嫨瑕佷慨鏀圭殑鏁版嵁");
+ }
+ OnlineStudy onlineStudy = new OnlineStudy();
+ BeanUtils.copyProperties(form, onlineStudy);
+ onlineStudy.setContentUrl(JSON.toJSONString(form.getContentUrl()));
+ if (! CollectionUtils.isEmpty(form.getAttachment())) {
+ onlineStudy.setAttachment(JSON.toJSONString(form.getAttachment()));
+ } else {
+ onlineStudy.setAttachment("");
+ }
+ mapper.update(onlineStudy);
return RestResponse.ok("淇敼鎴愬姛");
}
@@ -41,7 +71,12 @@
@Override
public RestResponse page(OnlineStudyVO query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
- List<OnlineStudyVO> data = mapper.page(query);
- return RestResponse.ok(data);
+ PageInfo<OnlineStudyVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() ->
+ mapper.page(query));
+ page.getList().stream().forEach(item -> {
+ item.setContentUrl(JSON.parseObject(item.getContentUrlString(), OnlineStudyVO.UploadFile.class));
+ item.setAttachment(JSON.parseArray(item.getAttachmentString(), OnlineStudyVO.UploadFile.class));
+ });
+ return RestResponse.ok(page.getList()).put("total", page.getTotal());
}
}
diff --git a/src/main/java/com/mindskip/xzs/utility/Constants.java b/src/main/java/com/mindskip/xzs/utility/Constants.java
index fd4fec5..4c7a67c 100644
--- a/src/main/java/com/mindskip/xzs/utility/Constants.java
+++ b/src/main/java/com/mindskip/xzs/utility/Constants.java
@@ -132,7 +132,7 @@
/**
* 璧勬簮鏄犲皠璺緞 鍓嶇紑
*/
- public static final String RESOURCE_PREFIX = "/files";
+ public static final String RESOURCE_PREFIX = "/api/files";
/**
* RMI 杩滅▼鏂规硶璋冪敤
diff --git a/src/main/resources/mapper/OnlineStudyMapper.xml b/src/main/resources/mapper/OnlineStudyMapper.xml
index 4fdadf3..1be4954 100644
--- a/src/main/resources/mapper/OnlineStudyMapper.xml
+++ b/src/main/resources/mapper/OnlineStudyMapper.xml
@@ -6,13 +6,25 @@
<select id="page" resultType="com.mindskip.xzs.domain.vo.OnlineStudyVO">
SELECT
- id,content_type, content_url, belong_type, subject, create_time, update_time, attachment
+ tos.id,
+ tos.content_type,
+ tos.content_url as contentUrlString,
+ tos.belong_type,
+ tos.subject,
+ tos.create_time,
+ tos.update_time,
+ tos.attachment as attachmentString,
+ tst.type_name
FROM
- t_online_study
+ t_online_study tos
+ INNER JOIN t_study_type tst ON tst.id = tos.belong_type
<where>
- AND deleted = 0
+ AND tos.deleted = 0
<if test="query.subject != null and query.subject != ''">
- AND subject like concat('%', #{query.subject}, '%')
+ AND tos.subject like concat('%', #{query.subject}, '%')
+ </if>
+ <if test="query.belongType != null">
+ AND tst.id = #{query.belongType}
</if>
</where>
ORDER BY
@@ -31,14 +43,13 @@
<set>
<if test="form.contentType != null and form.contentType != ''">content_type = #{form.contentType},</if>
<if test="form.contentUrl != null and form.contentUrl != ''">content_url = #{form.contentUrl},</if>
- <if test="form.belong_type != null and form.belong_type != ''">belong_type = #{form.belongType},</if>
- <if test="form.belongType != null and form.belongType != ''">belong_type = #{form.belongType},</if>
+ <if test="form.belongType != null">belong_type = #{form.belongType},</if>
<if test="form.subject != null and form.subject != ''">subject = #{form.subject},</if>
<if test="form.updateTime != null">update_time = #{form.updateTime},</if>
- <if test="form.attachment != null and form.attachment != ''">attachment = #{form.attachment},</if>
+ attachment = #{form.attachment}
</set>
WHERE
- id = #{vo.id}
+ id = #{form.id}
</update>
<update id="remove">
diff --git a/src/main/resources/mapper/StudyTypeMapper.xml b/src/main/resources/mapper/StudyTypeMapper.xml
index d0d4856..ba56423 100644
--- a/src/main/resources/mapper/StudyTypeMapper.xml
+++ b/src/main/resources/mapper/StudyTypeMapper.xml
@@ -39,6 +39,8 @@
t_study_type
WHERE
deleted = 0
+ ORDER BY
+ order_num ASC
</select>
</mapper>
--
Gitblit v1.8.0