From 1420c8862fec67bf1e844d279be567d81c22f40a Mon Sep 17 00:00:00 2001 From: wxl <727869402@qq.com> Date: Wed, 18 Dec 2024 23:26:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E7=AC=94=E8=AE=B0=20?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E7=94=9F=E6=88=90=E5=A4=B4=E5=83=8F=E5=92=8C?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dd/admin/business/api/ApiController.java | 31 +++++++++++++++++++ .../file/controller/FileController.java | 23 ++++++++++++++ .../admin/business/note/domain/NoteDto.java | 5 ++- .../common/model/result/UploadResultBean.java | 21 +++++++++++++ .../security/jwt/config/SecurityConfig.java | 9 ++++++ .../utils/RandomXiaohongshuAuthorName.java | 28 +++++++++++++++++ .../com/dd/admin/common/utils/StringUtil.java | 1 + 7 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/dd/admin/common/model/result/UploadResultBean.java create mode 100644 src/main/java/com/dd/admin/common/utils/RandomXiaohongshuAuthorName.java diff --git a/src/main/java/com/dd/admin/business/api/ApiController.java b/src/main/java/com/dd/admin/business/api/ApiController.java index bfcac00..533c618 100644 --- a/src/main/java/com/dd/admin/business/api/ApiController.java +++ b/src/main/java/com/dd/admin/business/api/ApiController.java @@ -1,6 +1,8 @@ package com.dd.admin.business.api; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.io.file.FileNameUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.dd.admin.business.card.domain.CardDto; import com.dd.admin.business.card.domain.CardVo; @@ -12,20 +14,30 @@ import com.dd.admin.common.aop.operationLog.aop.OperLog; import com.dd.admin.common.aop.operationLog.aop.OperType; import com.dd.admin.common.model.result.ResultBean; import com.dd.admin.common.security.SecurityUtil; +import com.dd.admin.common.utils.AddressUtils; +import com.dd.admin.common.utils.IPUtils; +import com.dd.admin.common.utils.RandomXiaohongshuAuthorName; +import com.dd.admin.common.utils.StringUtil; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.Collection; import java.util.List; @RestController public class ApiController { @Autowired NoteService noteService; + @Autowired + HttpServletRequest request; @ApiOperation(value = "获取所有笔记") @ApiOperationSupport(order = 1) @@ -52,4 +64,23 @@ public class ApiController { return ResultBean.success(noteVo); } + + @ApiOperation(value = "创建笔记") + @ApiOperationSupport(order = 1) + @PostMapping("/api/addNote") + @OperLog(operModule = "创建笔记",operType = OperType.ADD,operDesc = "创建笔记") + public ResultBean addNote(@RequestBody NoteDto noteDto) { + Note note = BeanUtil.copyProperties(noteDto, Note.class); + if(CollectionUtil.isNotEmpty(noteDto.getImgs())){ + note.setFirstPicture(noteDto.getImgs().get(0)); + } + note.setAuthorName(RandomXiaohongshuAuthorName.generateAuthorName()); + note.setAuthorAvatar("http://8.146.211.120:8080/upload/avatar/avatar ("+ StringUtil.createCode(1) +").jpg"); + note.setIpAddress(IPUtils.getIpAddr(request)); // 请求IP + note.setIpRealAddress(AddressUtils.getRealAddress(note.getIpAddress())); + noteService.save(note); + return ResultBean.success(); + } + + } diff --git a/src/main/java/com/dd/admin/business/file/controller/FileController.java b/src/main/java/com/dd/admin/business/file/controller/FileController.java index 3613802..863a065 100644 --- a/src/main/java/com/dd/admin/business/file/controller/FileController.java +++ b/src/main/java/com/dd/admin/business/file/controller/FileController.java @@ -1,7 +1,9 @@ package com.dd.admin.business.file.controller; import cn.hutool.core.bean.BeanUtil; +import com.dd.admin.common.model.result.UploadResultBean; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -10,6 +12,8 @@ import com.dd.admin.common.model.result.ResultBean; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; + +import javax.servlet.http.HttpServletRequest; import javax.validation.constraints.NotBlank; import com.dd.admin.business.file.entity.File; import com.dd.admin.business.file.domain.FileVo; @@ -36,6 +40,10 @@ public class FileController { @Autowired FileService fileService; + @Autowired + HttpServletRequest request; + @Value("${server.port}") + String port; @ApiOperation(value = "文件-分页列表") @ApiOperationSupport(order = 1) @@ -101,4 +109,19 @@ public class FileController { map.put("filePath",filePath); return ResultBean.success(map); } + + @ApiOperation(value = "文件-上传") + @PostMapping("/appUpload") + @ResponseBody + public UploadResultBean appUpload(@RequestPart("file") MultipartFile file, String fileSavePath) { + FileVo uploadResult = fileService.uploadFile(file,fileSavePath); + String fileId = uploadResult.getFileId(); + String filePath = uploadResult.getFileSavePath(); + UploadResultBean resultBean = new UploadResultBean(); + resultBean.setResult(uploadResult); + String serverName = request.getServerName(); + System.out.println(serverName); + resultBean.setData("http://" + serverName + ":" + port + filePath); + return resultBean; + } } diff --git a/src/main/java/com/dd/admin/business/note/domain/NoteDto.java b/src/main/java/com/dd/admin/business/note/domain/NoteDto.java index 44082f2..36d7ad0 100644 --- a/src/main/java/com/dd/admin/business/note/domain/NoteDto.java +++ b/src/main/java/com/dd/admin/business/note/domain/NoteDto.java @@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.List; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -85,5 +87,6 @@ public class NoteDto { @ApiModelProperty(value = "收藏数") private Long starCount; - + @ApiModelProperty(value = "图片列表") + private List imgs; } diff --git a/src/main/java/com/dd/admin/common/model/result/UploadResultBean.java b/src/main/java/com/dd/admin/common/model/result/UploadResultBean.java new file mode 100644 index 0000000..a29f796 --- /dev/null +++ b/src/main/java/com/dd/admin/common/model/result/UploadResultBean.java @@ -0,0 +1,21 @@ +package com.dd.admin.common.model.result; + + +import com.dd.admin.common.exception.enums.AbstractBaseExceptionEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class UploadResultBean implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("返回的状态码") + private String status = "ok"; + @ApiModelProperty("返回的信息") + private String data; + @ApiModelProperty("返回的数据") + private T result ; +} diff --git a/src/main/java/com/dd/admin/common/security/jwt/config/SecurityConfig.java b/src/main/java/com/dd/admin/common/security/jwt/config/SecurityConfig.java index 65ef2cb..5a05ec6 100644 --- a/src/main/java/com/dd/admin/common/security/jwt/config/SecurityConfig.java +++ b/src/main/java/com/dd/admin/common/security/jwt/config/SecurityConfig.java @@ -14,6 +14,8 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.firewall.DefaultHttpFirewall; +import org.springframework.security.web.firewall.HttpFirewall; /** * SecurityConfig 配置类 @@ -36,6 +38,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } + @Bean + public HttpFirewall allowUrlEncodedSlashHttpFirewall() { + DefaultHttpFirewall firewall = new DefaultHttpFirewall(); + firewall.setAllowUrlEncodedSlash(true); + return firewall; + } + @Override protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity diff --git a/src/main/java/com/dd/admin/common/utils/RandomXiaohongshuAuthorName.java b/src/main/java/com/dd/admin/common/utils/RandomXiaohongshuAuthorName.java new file mode 100644 index 0000000..9d1b653 --- /dev/null +++ b/src/main/java/com/dd/admin/common/utils/RandomXiaohongshuAuthorName.java @@ -0,0 +1,28 @@ +package com.dd.admin.common.utils; + +import java.util.Random; + +public class RandomXiaohongshuAuthorName { + // 定义一些风格词汇数组 + private static final String[] ADJECTIVES = {"甜系", "酷盖", "元气", "文艺", "清新", "时尚", "复古", "个性", "慵懒", "灵动"}; + private static final String[] NOUNS = {"喵星人", "星辰", "云朵", "花田", "森林", "梦境", "清风", "暖阳", "微光", "小确幸"}; + + public static void main(String[] args) { + String authorName = generateAuthorName(); + System.out.println(authorName); + } + + public static String generateAuthorName() { + Random random = new Random(); + // 随机选择一个形容词 + int adjectiveIndex = random.nextInt(ADJECTIVES.length); + String adjective = ADJECTIVES[adjectiveIndex]; + // 随机选择一个名词 + int nounIndex = random.nextInt(NOUNS.length); + String noun = NOUNS[nounIndex]; + // 随机生成一个数字后缀 + int number = random.nextInt(100); + + return adjective + noun + number; + } +} \ No newline at end of file diff --git a/src/main/java/com/dd/admin/common/utils/StringUtil.java b/src/main/java/com/dd/admin/common/utils/StringUtil.java index 186396e..a8bd4e3 100644 --- a/src/main/java/com/dd/admin/common/utils/StringUtil.java +++ b/src/main/java/com/dd/admin/common/utils/StringUtil.java @@ -52,6 +52,7 @@ public class StringUtil { return ret; } + public static String getQuotesStr(String v){ if(isEmpty(v)){ return v;