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