发布笔记 随机生成头像和id

This commit is contained in:
wxl 2024-12-18 23:26:31 +08:00
parent e6e35fda7e
commit 1420c8862f
7 changed files with 117 additions and 1 deletions

View File

@ -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();
}
}

View File

@ -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<FileVo> 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;
}
}

View File

@ -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<String> imgs;
}

View File

@ -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<T> implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("返回的状态码")
private String status = "ok";
@ApiModelProperty("返回的信息")
private String data;
@ApiModelProperty("返回的数据")
private T result ;
}

View File

@ -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

View File

@ -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;
}
}

View File

@ -52,6 +52,7 @@ public class StringUtil {
return ret;
}
public static String getQuotesStr(String v){
if(isEmpty(v)){
return v;